Skip to content

Capability reference

Every privileged thing a plugin can do. A plugin declares these in its manifest.json; the user grants them at install and can revoke any of them individually afterwards.

The security boundary is the Rust process, not the JavaScript context. These constrain what leaves your machine and what touches your disk. They do not isolate a plugin from the application's interface — a plugin sharing the DOM can read the open document. That is by design and is stated plainly in the security policy.

CapabilityWhat granting it allowsSensitive
fs:projectRead and change files in this project.no
fs:readRead files at a specific location outside this project.no
fs:writeChange files at a specific location outside this project.yes
netConnect to the internet, limited to the hosts it declares.yes
processRun programs on your computer: the binaries it declares.yes
mcp:clientTalk to the tools you have connected: the servers it declares.yes
zoteroRead your Zotero library.no
obsidianRead your Obsidian vault.no
clipboardRead and change the clipboard.no
notificationsShow desktop notifications.no
shell:openOpen links and files with your other applications.no
credentialKeep a sign-in for this service in your system keychain.yes

"Sensitive" ones are emphasised in the install dialog. Network access is limited to explicitly declared hosts — a wildcard is rejected at manifest validation, because a capability that grants "the internet" is not a capability.

See ADR-0006.

Application AGPL-3.0-or-later · @yaz/api MIT · docs CC BY-SA 4.0