Polyglot graph
Rust, TypeScript, Python, Go, Anchor in one dependency graph. Discovery is parallel, deterministic, and respects every .gitignore in the tree. The monorepo reality no one else handles well for agents.
Workspace runtime for AI coding agents.
Stop your agent from burning tokens exploring your repo.
$ kdo init
discovering workspace…
✓ 11 projects found (rust · ts · python · go)
✓ graph built: 14 edges, 0 cycles
✓ context generated: 11 files, 28k tokens
$ kdo setup claude --global
✓ registered kdo with Claude Code (user scope)
✓ wrote ~/.claude/CLAUDE.md
$ kdo run ci --filter api
[api:lint] cargo clippy --all-targets -- -D warnings
[api:lint] done
[api:test] cargo nextest run
[api:test] 42 passed in 1.8s why kdo
Coding agents read too much. They open a repo, traverse the filesystem, and load files the task never needed. kdo compiles your workspace into an agent-readable shape and serves it over MCP, so the agent gets the signal without the noise.
Rust, TypeScript, Python, Go, Anchor in one dependency graph. Discovery is parallel, deterministic, and respects every .gitignore in the tree. The monorepo reality no one else handles well for agents.
Seven tools plus a resources endpoint over MCP stdio. Claude Code, OpenClaw, Cursor, and any MCP client read structured context instead of walking the filesystem.
Every tools/call passes through a sliding-window detector. Duplicate calls return a structured error, so OpenClaw stops burning a day's budget retrying the same mistake.
[workspace]
name = "my-monorepo"
projects = ["apps/*", "crates/*"]
[aliases]
b = "build"
t = "test"
[env]
RUST_BACKTRACE = "1"
[tasks.build]
command = "cargo build"
depends_on = ["^build"]
inputs = ["src/**", "Cargo.toml"]
outputs = ["target/debug/"]
[tasks.dev]
command = "cargo watch -x run"
persistent = true
[projects.api.tasks]
build = "cargo build --release" config that grows with you
Bare strings work. Pipelines with depends_on,
env merging, aliases, and per-project overrides also work. Same file, gradient of complexity.
^task runs the task in every upstream dep first.
Topological build orchestration in one character.
//task fans the task across the whole workspace.
CI in one line.
--dry-run prints the resolved plan with env, persistent
markers, and the exact command kdo would run.
[projects.<name>] overrides any task or env for
one project. Anchor, Bun, and Cargo coexist in the same file.
honest comparison
Turbo, Nx, Moon, and Bun optimize for developers running builds. kdo optimizes for agents reading code. It runs alongside your package manager, not instead of it.
| Feature | kdo | turbo | nx | bun | pnpm |
|---|---|---|---|---|---|
| Polyglot graph | ● | ○ | ◐ | ○ | ○ |
| MCP server built-in | ● | ○ | ○ | ○ | ○ |
| Token-budgeted context | ● | ○ | ○ | ○ | ○ |
| Task pipelines (^task / //task) | ● | ◐ | ● | ○ | ○ |
| Per-project task overrides | ● | ● | ● | ○ | ○ |
| Single static binary | ● | ○ | ○ | ● | ○ |
| Package install / lockfile | ○ | ○ | ○ | ● | ● |
● full · ◐ partial · ○ not supported · alpha software, comparisons reflect kdo 0.1.0-alpha.3
install
Pre-0.1.0, so cargo needs the
version flag. Once stable ships, plain
cargo install kdo will work.
Then run kdo setup claude or
kdo setup openclaw to wire your agent.
curl -fsSL https://vivekpal1.github.io/kdo/install.sh | bash -s -- --from-release cargo install kdo --version "0.2.0-alpha.1"
Already installed?
kdo upgrade pulls the
latest binary in place.
use with your agent
Install kdo once, register it once. Every MCP-compatible agent you open reads the same workspace intelligence.
Claude Code and OpenClaw get tuned profiles; everything else works via
--agent generic.
Re-running kdo setup converges to the same state.
One command registers kdo globally, updates CLAUDE.md with the usage block, and seeds shared memory. Verified end to end: MCP handshake + tool calls round-trip.
kdo setup claude --global kdo setup claude --global --dry-run Installs kdo as an AgentSkills-spec skill and registers the MCP server in ~/.openclaw/openclaw.json. OpenClaw-tuned profile: tighter token budgets, 3-call loop guard, short tool descriptions.
kdo setup openclaw --global kdo setup openclaw --global --dry-run
Cursor, Zed, Cline, Continue, and anything else speaking the MCP spec: point them at
kdo serve --transport stdio --agent generic.
No dedicated setup command yet; follow the client's own MCP-server config path.