The smallest possible app
CLAUDE.md
A fuller Claude Code app
| Path | Owned by | Purpose |
|---|---|---|
CLAUDE.md | harness | Shared instructions and context for every agent. |
.claude/agents/*.md | harness | Specialist agents, discovered automatically. |
.claude/skills/ | harness | Skills agents can invoke. |
.claude/settings.json | harness | Tools, permissions, MCP servers - standard Claude Code config. |
karta.toml | Karta | The agent’s name, deploy gate, and build hints - its local identity. |
karta.jsonc | Karta | CLI, harness, and runtime settings. |
.claude/ are standard Claude Code - nothing
Karta-specific. That’s the design: examples from the harness’s own docs work
unchanged, and Karta reads your definitions rather than asking you to restate
them.
The OpenCode equivalent
.claude//CLAUDE.md → Claude Code, .opencode/ →
OpenCode.
Multiple agents in one repo
One repo can hold several agents - each a folder with its ownCLAUDE.md and
its own karta.toml:
karta.toml carries its own name and deploy = true. One
karta deploy (or git push karta) builds every enabled agent in the tree,
each from its own subdirectory. See karta.toml and
the deploy loop.
Run it locally
karta dev runs the folder behind the consumer session API, with a chat REPL
and hot reload:
Define agents
The frontmatter format for specialist agents.
karta.toml
Build hints for publishing a release.

