The simplest way to run AI agents.
One native binary. Your own API key. Linux and macOS.
No account, no telemetry, nothing hosted for you.
❯Draft a market brief on specialty-coffee subscriptions from the sample figures in brief.md, then build me a one-page dashboard.
▸thinking
Every number I need is in brief.md. I will hand the extraction to a subagent so the raw notes stay out of this context, then build the dashboard from its summary.
●Readbrief.md✓
todo
▶Extract the headline figures
○Build dashboard.html
○Check the figures and summarise
◎Scope the brief
●Subagentmarket-scout - pull the headline figures✓
●Writedashboard.html +214✓
todo
▶Build dashboard.html
○Check the figures and summarise
◎Scope the brief
◎Extract the headline figures
●Bashpython3 tools/check_figures.py dashboard.html✓
└7 figures - 2 tables - 1 chart - no dangling references
Done. The dashboard is one page: the headline figures first, then the channel mix. Every number traces back to brief.md.
┌───────────────────────┬───────┬───────┬─────────┐
│ Metric │ 2025 │ 2026e │ Change │
├───────────────────────┼───────┼───────┼─────────┤
│ Subscribers │ 6.8M │ 8.9M │ +31% │
│ Average monthly spend │ $24 │ $26 │ +8% │
│ Annual churn │ 7.1% │ 6.4% │ -0.7 pt │
│ Market value │ $2.4B │ $3.1B │ +29% │
└───────────────────────┴───────┴───────┴─────────┘
❯
NORMALready12.4k tok100%
localhost:18080
Draft a market brief on specialty-coffee subscriptions from the sample figures in brief.md, then build me a one-page dashboard.
▸thinking
Every number I need is in brief.md. I will hand the extraction to a subagent so the raw notes stay out of this context, then build the dashboard from its summary.
Readbrief.mdrunningok
TodoWriteExtract the headline figuresrunningupdated
▶Extract the headline figures
○Build dashboard.html
○Check the figures and summarise
◎Scope the brief
Subagentmarket-scout - pull the headline figuresrunningok
Writedashboard.html +214runningok
TodoWriteBuild dashboard.htmlrunningupdated
▶Build dashboard.html
○Check the figures and summarise
◎Scope the brief
◎Extract the headline figures
Bashpython3 tools/check_figures.py dashboard.htmlrunningok
✓7 figures - 2 tables - 1 chart - no dangling references
Done. The dashboard is one page: the headline figures first, then the channel mix. Every number traces back to brief.md.
| Metric | 2025 | 2026e | Change |
|---|---|---|---|
| Subscribers | 6.8M | 8.9M | +31% |
| Average monthly spend | $24 | $26 | +8% |
| Annual churn | 7.1% | 6.4% | -0.7 pt |
| Market value | $2.4B | $3.1B | +29% |
# Channel mix, 2026e
Direct ████████████░░░░░░░░░░ 54%
Retail ██████░░░░░░░░░░░░░░░░ 27%
Gifting ████░░░░░░░░░░░░░░░░░░ 19%Message klawed
SendOne native binary
Compiled C11, self-contained. Untar and run.
Any provider
OpenAI, Anthropic, Bedrock, DeepSeek, Kimi, Z.AI, or anything OpenAI-compatible.
Built-in tools
Read, Write, Edit, Bash, Grep, Glob, TODO, Subagent.
Subagents
Delegation in a fresh context, on a model of its own.
Memory
Persistent across sessions, with automatic compaction. A session runs indefinitely.
Browser client
Free and self-hosted: the same agent, on any screen.
Running it
export OPENAI_API_KEY="sk-..."
klawed --model gpt-5.4 "explain how the request path is wired up"Providers, tools, commands, keys and the browser client are in the docs.
The same agent, in your browser.
klawed ships a web client, and you host it. Run one command, pick a folder, and you have a thread - the agent, its tools and its memory, reached from any browser. Free and ungated: nothing of ours in the middle.
- A thread per folder, each backed by its own agent that keeps working with the tab closed.
- Reads the same ~/.klawed/config.json as the terminal, so providers and settings are set up once.
- The phone and tablet client is the same page, laid out for a small touch screen.
klawed --web-server 8080Binding it, credentials and the API are in the web client docs.