Permissions and capabilities

Permissions are declared in the manifest and displayed before installation. They bound host-issued APIs; they do not grant renderer access, direct store mutation, or another extension’s identity.

Declare only what you use

JSON
{
  "permissions": [
    "secrets:resolve",
    "ssh-agent:use",
    "provider:depend"
  ],
  "extensionDependencies": [
    { "extensionId": "terminay.ssh", "apiRange": "^1.0.0" }
  ]
}

Terminay validates compatibility and permissions before activation. Extensions are trusted server-side Node packages, not an operating-system sandbox: package review still matters.

Extension permissions

PermissionGranted host capability
configuration:readRead the extension’s own configuration namespace.
configuration:writeWrite the extension’s own configuration namespace.
data:readRead the extension’s private durable data area.
data:writeWrite the extension’s private durable data area.
cache:writeWrite the extension’s private cache area.
networkUse network access declared by the package.
secrets:resolveResolve an owned, profile-bound secret through secrets.withValue().
ssh-agent:useList approved SSH identities and request bounded authentication signatures.
provider:dependCall a compatible extension’s manifest-declared provider operation.
external-resources:manageManage external resources owned by the extension.
agent-observationReceive a terminal-scoped agent context and publish canonical agent lifecycle events.

Agent observation capabilities

An agent provider declares agent-observation plus the exact capabilities it needs in contributes.agentProviders[].requiredEnvironmentCapabilities.

CapabilityWhat it enables
process-observationForeground/descendant process facts, open-file facts, and manifest-declared process environment variables.
filesystem-observationBounded, environment-routed directory and file observation through opaque handles.
agent-journalObservation of agent journal data where the environment supports it.

The permission grants agent-context delivery; it does not grant a raw terminal, raw PTY, arbitrary paths, client authority, or direct access to Terminay’s agent-status store.

Environment capabilities

Project-environment providers declare the services they provide. These are separate from an agent provider’s required observation capabilities.

CapabilityService area
terminalTerminal sessions.
filesystem, filesystem-observationFilesystem operations and bounded observation.
gitGit operations.
process-observation, agent-journalProcess facts and agent journals.
mcp-bridge, infrastructure, shell-discoveryMCP bridge, infrastructure, and shell discovery services.

Not granted by permissions

  • Renderer components, themes, routes, CSS, or arbitrary external navigation.
  • Raw application-protocol handlers, client envelopes, canonical-store mutation, or host bridges.
  • Vault enumeration, another extension’s secret bindings, or terminal data beyond an issued observation scope.
  • Private Terminay packages, Electron internals, or unrestricted host APIs through this SDK.