Khadim: An Open-Source, Local-First Coding Agent
Khadim is our working open-source coding agent. It runs locally, ships as a CLI today, and supports 19+ providers. Here is what it is, what it does today, and what is still in progress.
Khadim is our coding agent. It is open source under AGPL-3.0, it runs locally, and the CLI is working software today. This post is a factual update on where Khadim stands, what it does, and what is still in progress.
What Khadim is
Khadim is a local-first terminal coding agent. You point it at a task in plain language, and it plans the work, edits files, and runs your project’s own checks to confirm the result. It runs on your machine against your checkout; tools execute locally unless you opt into a remote runner. There is no account requirement and no telemetry call home.
The name comes from the Arabic word for “servant” or “assistant.” It reflects how we think about agents: they should serve the engineer and the codebase, not the other way around. The source lives at github.com/unravelaidk/khadim, and the docs at unravelaidk.github.io/khadim.
What it does today
The CLI coding agent is the stable entry point today. It supports:
- Interactive terminal and headless exec. A streaming terminal UI with slash commands, saved sessions, and provider/model switching. Or run a single task headless with
--promptand exec, and stream JSON events with--jsonfor scripts and CI. - Typed SDK and a normalized JSON event stream. Embed Khadim in Node.js apps with
runAgentStream. The same event stream —text_delta,step_start,step_update,step_complete,question,done,error— drives the CLI, desktop, and web. - 19+ providers, including local. OpenAI, Anthropic, Gemini, Groq, xAI, OpenRouter, Mistral, Cerebras, Copilot, Codex, and local-compatible options. Credentials are read from environment variables or the interactive settings panel.
- WASM plugin sandbox. Plugins are sandboxed WebAssembly modules that expose tools to the agent. A manifest requests
fs,http,store, and desktop UI capabilities. Tools run locally on your machine.
It is not a chatbot that talks about code. It is an agent that changes code and then proves the change works.
Local-first, by design
We chose local-first for a reason that is not aesthetic. The most useful place for a coding agent to run is on the same machine as the repository it edits, because that is where the build, the tests, and the editor already live. Running locally means:
- No source leaves your machine unless you push it. Khadim reads and writes files on disk like any other tool, and tool calls are inspectable.
- Your existing toolchain is the source of truth. It runs
deno task build,npm test,cargo build— whatever your project already uses — instead of inventing its own notion of correctness. - No account, no telemetry. There is no login step and no usage data sent to us. The agent is something you install and run, not something you sign up for.
This is the same model as the editors, linters, and build tools you already trust. Khadim fits next to them rather than replacing them.
How we use verification
Verification is the part that makes a coding agent worth running. An agent that only produces edits is a fast way to create regressions. Khadim treats your build and tests as the check on its own work:
- It reads the task and the relevant code.
- It makes the smallest set of edits it can.
- It runs the project’s own build or test command.
- If the check fails, it reads the output and either fixes the edit or reports the failure.
This loop is the difference between “the agent wrote something” and “the agent changed the codebase and the build is still green.” We do not ship edits that the project’s own checks reject.
What is still in progress
We are explicit about what is not shipped, so claims stay honest:
- CLI coding agent, agent engine & providers, documentation — shipped. These are the workhorse today.
- Desktop — Agents (Alpha). An Electron desktop prototype for agent runs and local projects. Actively in development.
- Desktop — Studio (Beta). An artifact workspace for documents, React sites, and canvases in the desktop prototype.
One shared agent engine and event stream power these surfaces. The CLI is the stable entry point; the desktop surfaces are tracked as Alpha and Beta, not as finished products.
Where Khadim fits with Blop
Khadim edits code. Blop, our other agent, drives a real browser to verify the product that code builds. They answer different questions: Khadim asks “does the code work,” Blop asks “does the running app work for a user.” We use them together — Khadim makes the change, Blop walks the running UI to confirm the user-visible behavior. Read the Blop post for the full picture.
Current status
Khadim is available and working as a CLI. It is open source under AGPL-3.0 and runs locally. Install the npm package or use the installer script; desktop and web arrive incrementally. See the Khadim product page for the full status table.
If you want to read the code, run it against a repository, or see the verification loop in action, the source is the place to start. Contact us if you want help getting started.
We will keep updates factual and short. This post will be edited to reflect Khadim’s current state rather than re-announced from scratch.