Appearance
The Kadmo runtime
The Kadmo runtime is the part of Kadmo that runs on a computer: yours, or an agent's machine. It is one npm package, kadmo, holding the kadmo command, the MCP server, the agent service and its dashboard. It runs workflows, serves the skill packs installed on that computer to AI clients, and drives the computer's Chrome through the Kadmo extension.
Every Kadmo agent runs it. You run it on your own computer when you want Claude Code, Cursor or another MCP client to use your packs and your browser.
The three pieces
| Piece | What it is | Page |
|---|---|---|
kadmo serve | The agent service on http://localhost:9876: the dashboard, the REST API the extension and the dashboard use, the extension's WebSocket and the HTTP MCP endpoint for agents. Bare kadmo does the same. | Install the runtime, The dashboard |
kadmo mcp | The MCP server over stdio. Your MCP client starts it itself; it opens the extension's socket on loopback beside it. | The MCP server |
| The Kadmo extension | A Chrome extension that lets the runtime drive the browser: navigate, read and act on pages. Its only peer is the runtime on localhost:9876. | The Kadmo extension |
Workflow, run-log and pack tools work without the extension; the browser tools need it.
What the package is
- Compiled only: one minified bundle with the dashboard, no source, no sourcemaps and no prompts.
- No packs: a fresh install has no skill packs and no workflows. They come from the Kadmo app, the public catalogue, a registry, a git repository or a local directory (
kadmo install), or from YAML files you write. - Node.js 22 or newer.
- Proprietary: the published package carries the Kadmo EULA.
Where it keeps its data
Everything lives under ~/.kadmo: settings.json, the installed packs, registries, plugins, run logs and the token kadmo login stores. The layout is on Install the runtime.
Packs and which copy wins
Each pack is installed once per domain, under ~/.kadmo/skills/<domain>, and recorded with a layer. The layer decides which copy wins when two sources hold the same domain or the same workflow:
| Layer | Rank | Comes from |
|---|---|---|
override | highest | an account pack whose skill-pack.json says "layer": "override", and your own ~/.kadmo/roles/ files |
account | a registry, a git URL or a local directory | |
ops | the Kadmo app, for an agent: kadmo install agents with the agent's token | |
library | lowest | the public catalogue |
- An install onto a domain that a higher layer holds is kept as it is, even with
--force. A higher layer replaces a lower one. Within one layer the same version is skipped, and a different version needs--force. - The domain
agentsbelongs to the ops layer: a registry, a git repository, a local directory or the catalogue cannot install a pack with that domain. - A workflow id present in several packs runs the highest layer's copy. Workflows in
~/.kadmo/actions/and~/.kadmo/workflows/win over every pack. - Role guides of the same role are all given to the model, lowest layer first, so an account's
se.mdextends the one from the ops layer. A pack-root guide whose frontmatter saysreplace: truedrops the lower layers' pack-root guides of that role; a module's own guide is never dropped.
kadmo install --list shows each installed pack with its layer. What a pack contains and how to write one is on Skill packs.
Next steps
- Install the runtime — install, first start, settings
- Install the Kadmo extension — let the runtime drive Chrome
- Register the MCP server — Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf, Gemini CLI
- The kadmo commands — every command and flag