NAME
@tlelabs/raw v0.1.0 MIT Node.js 22.13+
A local coding agent for models with limited context.
Each agent selects its own ordered tools, skills and hooks, so a request carries only what that agent was given. Run it in your terminal, from a local browser dashboard, or inside an editor over the Agent Client Protocol.
npm install -g @tlelabs/rawInstalls the raw command globally. Then run raw config init.
npx @tlelabs/raw --helpRuns once without a global install. Then run raw config init.
npm install -g github:lploc94/raw-cliBuilds the latest default branch from source. Then run raw config init.
◆ raw · agent raw · model local~/projects/api ❯ Why does the session test time out?◌ Thinking…↳ read_file tests/session.test.ts✓ read_file 41ms$ bash npm test -- session✓ bash 2.8s● The fixture never closes its socket, so the runner waits for the 3 s deadline. Close it in afterEach. ✓ Done · 6.4s · 2 tools Context ▰▰▰▱▱▱▱▱▱▱ ~9.6k / 32k · 30% used↪ raw --continue "Apply the fix"❯
SURFACES
One runtime, three ways in.
TERMINAL
$ raw "task"One-shot runs and a saved REPL
Stream Markdown answers and tool activity, then pick the session back up with --continue or --resume. Redirected output stays plain for scripts.
DASHBOARD
$ raw dashboardA local browser workspace
Chat, inspect reasoning and context usage, answer approvals, and manage agents, models, tools, skills, vars, MCP and packages. Setup works without a model connection.
ACP
$ raw --acp --stdioInside editors and parent agents
Serve the Agent Client Protocol over stdio or a local WebSocket. Parent agents can drive sessions and register temporary reverse tools.

raw dashboard serves this app from your machine. Nothing is hosted.DESCRIPTION
Composed per agent, not bundled.
models describe how to reach an upstream model. agents pick one model and decide exactly which tools, skills, hooks and variables that run may use. Several agents can share a model and still see different toolsets.
- ToolsEleven built-ins ship as editable plugins. Fork one into your config directory and select it like any other.
- SkillsMarkdown procedures an agent can list and load on demand, including seven packaged setup skills.
- HooksCommands on session, turn and tool events that can deny a prompt or tool call, with a receipt for every run.
- MCPSelected tools from Model Context Protocol servers sit alongside built-ins.
- VarsRead-only values from config, environment, files or executable providers.
- PackagesMove agents, tools and skills between machines as .rawpkg archives.
read_filewrite_filebashview_imagelist_skillsload_skilllist_varsread_vartodoask_userprocess
{
"default_agent": "raw",
"models": {
"local": {
"provider": "ollama",
"method": "openai-chat-completions",
"model_id": "YOUR_INSTALLED_MODEL",
"base_url": "http://127.0.0.1:11434/v1",
"context_window_tokens": 32768
}
},
"agents": {
"raw": {
"model": "local",
"tools": {
"use": ["builtin/read_file", "builtin/bash"],
"rules": [{ "match": "builtin/bash", "effect": "ask" }]
},
"compact": { "trigger_tokens": 24000 }
}
}
}MODELS
Bring the model. Raw keeps the budget visible.
Choose the wire API per model; it never follows from the provider name. Raw estimates current context every turn, shows reported input, output and cache reads when the provider supplies them, and can compact older turns automatically once a token threshold is reached.
Context and compaction →| method | typical service |
|---|---|
openai-chat-completions | OpenAI, DeepSeek, OpenRouter, Ollama, compatible gateways |
openai-responses | OpenAI |
anthropic-messages | Anthropic or compatible gateway |
google-generate-content | Gemini or compatible gateway |
CAVEATS
It runs as you.
Tool calls run automatically with your operating-system account's permissions. The working directory resolves relative paths; it is not a sandbox. Give an agent tools.rules toask before or deny specific tools and patterns — -y cannot bypass an explicit ask.
EXIT STATUS
- 0
- complete
- 1
- runtime error
- 2
- invalid input
- 3
- max steps
- 130
- cancelled
SEE ALSO
Start with one agent and one model.
npx @tlelabs/raw config init