kdo

Workspace runtime for AI coding agents. Stop your agent from burning tokens exploring your repo.

~/my-monorepo
$ 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

Compile the monorepo. Serve it to the agent.

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.

polyglot-native

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.

one endpoint

Agent runtime over MCP

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.

token-burn defense

Loop guards

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.

kdo.toml workspace · committed
[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

Tasks with shape.

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

Built for agents, not humans.

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

One command. Two flavors.

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.

binary fastest, no Rust required
curl -fsSL https://vivekpal1.github.io/kdo/install.sh | bash -s -- --from-release
cargo explicit version for pre-releases
cargo install kdo --version "0.2.0-alpha.1"

Already installed? kdo upgrade pulls the latest binary in place.

use with your agent

One endpoint. Every 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.

claude code tested end-to-end

Claude Code

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.

one-command setup
bash
kdo setup claude --global
preview first (writes nothing)
bash
kdo setup claude --global --dry-run
MCP reference ↗
openclaw spec-compliant, untested

OpenClaw

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.

one-command setup
bash
kdo setup openclaw --global
preview first (writes nothing)
bash
kdo setup openclaw --global --dry-run
MCP reference ↗
other clients

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.