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
{
"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
| Permission | Granted host capability |
|---|---|
configuration:read | Read the extension’s own configuration namespace. |
configuration:write | Write the extension’s own configuration namespace. |
data:read | Read the extension’s private durable data area. |
data:write | Write the extension’s private durable data area. |
cache:write | Write the extension’s private cache area. |
network | Use network access declared by the package. |
secrets:resolve | Resolve an owned, profile-bound secret through secrets.withValue(). |
ssh-agent:use | List approved SSH identities and request bounded authentication signatures. |
provider:depend | Call a compatible extension’s manifest-declared provider operation. |
external-resources:manage | Manage external resources owned by the extension. |
agent-observation | Receive 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.
| Capability | What it enables |
|---|---|
process-observation | Foreground/descendant process facts, open-file facts, and manifest-declared process environment variables. |
filesystem-observation | Bounded, environment-routed directory and file observation through opaque handles. |
agent-journal | Observation 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.
| Capability | Service area |
|---|---|
terminal | Terminal sessions. |
filesystem, filesystem-observation | Filesystem operations and bounded observation. |
git | Git operations. |
process-observation, agent-journal | Process facts and agent journals. |
mcp-bridge, infrastructure, shell-discovery | MCP 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.