Shape the cockpit around your work.
Add panels, project tabs, skills, and MCP servers without modifying Zana core. Start with the marketplace, then build only as much as your workflow needs. Plugins run in-process after a loud full-trust confirm.
Every surface a plugin can own.
The same annotated map as Plugins → Plugin Guide in the app: wireframes, numbered chips, and Copy for agent.
App shell
Global sidebar, Projects header, and rail footer.
Drafted. Two rough edges left in pairing — reply with what to fold in.
The retries cluster in two suites. Failure rate by suite:
::your-directiveFixed by isolating the Stripe mock per test.
Copy Your actioncheckout.spec.ts · Open with pluginChecklist is in the side panel when the plugin action runs.
Hello
A friendly example plugin.
Configuration
Plugin-owned React on this hub page, not in Global Settings.
Agent capabilities
Host services
Runtime
Install a plugin
Use the marketplace for published capabilities, or install a folder, git, or npm source when you already have the plugin.
Build your first panel
Start with a TypeScript plugin that registers a nav panel. Plugins are full-trust after a loud install confirm.
Learn the SDK boundary
Use @zana-ai/zcc-plugin-sdk for slots on the app side and ZccPluginApi on the server. Host-daemon tokens stay on the server.
Discover a capability, then confirm full trust.
Marketplace entries describe what a plugin contributes. Official catalogs install offline; community catalogs list npm/git pointers only. After install, plugins run in-process on the server.
- Install published plugins from the same catalog the app reads
- Use a local folder, git, or npm source for private development workflows
- Confirm the full-trust install before the plugin loads
Build locally. Reload live. Keep core untouched.
A local plugin is an ordinary disk plugin with an editable source folder. Author package.json zcc, then zcc plugin dev watches, rebuilds, and reloads.
- Use @zana-ai/zcc-plugin-sdk instead of internal app modules
- Register app.slots.navPanel and optional server hooks
- A failed reload keeps the last good generation
Short path to action. Deep documentation behind it.
Use the task guides for a focused workflow, then move into the maintained reference for contracts, permissions, lifecycle details, and publishing.