Repository navigation
v0.22.0
Installed extensions grow up: they are plain Claude Code plugins, configurable, installable from a catalog in the chats, and safe to share with a workspace. The documentation has a new Extensions section, with a tutorial that builds an extension with its own MCP server from scratch.
New features
- Extensions are valid Claude Code plugins. The kit's own data (labels, capabilities, read-only tools, help, catalog look) moves under
metadata["agent-kit"]inplugin.json, which Claude Code ignores, so one folder serves both. - Options. An extension's
userConfigsettings are asked at install (extension add … --set key=value), set withextension configor/extensions config, kept per scope (secrets apart, out of the file tools' reach), and applied live: only that extension's servers restart. - npx servers. A server declared as
npx -y <package>@<exact version>is fetched by the kit into the agent's folder, checked against its integrity and run with the agent's own Node: no npx needed, also inside a packaged desktop app. - The catalog in the chats.
/extensions search|install|update|remove|reload, and the chat controller'sextensionCatalog(),extensionImage(),installExtension(),updateExtension(),removeExtension(),extensionOptions(),setExtensionOptions()andreopen()for a host of its own. Extensions carry topics, a logo and a banner;catalogTopicsfilters what an agent offers, andofficialMarketplacenames the agent's own marketplace, installed from without a question. - Workspaces. A project scope keeps only its lock; the code lives in the agent's store and is fetched with
extension restore. A workspace's extensions run only once trusted (extension trust,/extensions trust, the controller'strustWorkspace()), and trust is lost when their code changes. - MCP elicitation. A server can ask the person a form, through a port's
askForm(field by field where there's none), never through the model. - Plan mode trusts
readOnlyHintfor an installed server whose manifest lists no read-only tools. - The marketplace catalog's contract. JSON schemas for
metadata["agent-kit"]and for a marketplace'scatalog.jsonship inschemas/, and the new package@falkenslab/agent-kit-catalogwrites and checks a marketplace'scatalog.json(npx @falkenslab/agent-kit-catalog --check).
Fixes
- An extension's hash no longer counts text files' line endings, so a checkout with CRLF matches its lock.
Breaking changes
metadata["agent-kit"]. The kit's fields inplugin.json(kit,provides,requires,needs,readOnlyTools,labels,help) move undermetadata["agent-kit"]. Move them there;claude plugin validate --strictmust pass.- Hashes changed. Extensions installed with 0.21 no longer match their lock: reinstall them (
extension remove <name>, thenextension add …), including the jokebook in~/.captain-whiskers. - Workspace layout. A project scope keeps only
extensions.lock.json; its extensions' code goes to the agent's store and its data to<agent>/.projects/. Reinstall a project's extensions with--project, thenextension trust. - SDK 0.3.300 (CLI 2.1.300), needed for
userConfigoptions.
Captain Whiskers
Captain Whiskers 0.3.0, the example agent built on agent-kit 0.22.0, as a Windows app: download the installer. It's unsigned, so SmartScreen warns about it; it asks for a Claude key on first start and keeps everything in ~/.captain-whiskers. New: an extensions drawer with the catalog (logos, topics, search), settings, updates and uninstall, and his jokebook from his own marketplace.