Permissions

Permissions are declared in the manifest and displayed before installation. An update that adds a permission needs fresh confirmation.

Declare only what you use

JSON
{
  "permissions": ["network", "worktree-observation"],
  "contributes": {
    "worktreeInsights": [{
      "id": "com.terminay.gitea/gitea",
      "displayName": "Gitea"
    }]
  }
}

Permissions are a closed list. An unknown or repeated permission fails manifest validation. Extensions are trusted server-side Node packages, not an operating-system sandbox, so a permission describes intent and gates host APIs. It does not confine Node itself.

Permissions that gate a contribution

A manifest that declares the contribution without its permission fails validation with missing_permission, and the host refuses the registration.

PermissionRequired forGrants
agent-observationagentSessionSourcesRegister session sources and publish live agent session snapshots.
mcp-registrationmcpInstallTargetsRegister install targets that receive the Terminay MCP server command.
worktree-observationworktreeInsightsReceive repository contexts, publish worktree properties, and request sign-in for a forge origin.

Language server contributions need no permission.

Other accepted permissions

The manifest schema also accepts the permissions below, and the install preview lists them. No member of the 3.1 ExtensionContext is gated by them.

PermissionNotes
networkDeclares that the extension makes network requests. The bundled Gitea extension declares it for its HTTPS calls to Gitea servers.
configuration:read, configuration:write, data:read, data:write, cache:writeAccepted by validation. No bundled extension declares them.
secrets:resolveAccepted by validation. No bundled extension declares it.

Not granted by any permission

  • Renderer components, themes, routes, CSS, or arbitrary external navigation.
  • Raw application-protocol handlers, client envelopes, store mutation, or host bridges.
  • Terminal output, raw PTYs, or the decision of which terminal a session belongs to.
  • Vault enumeration or another extension's secrets.
  • Private Terminay packages or Electron internals.