little-coder: Lightweight Local Coding Agent
A coding agent tuned for small local models, powered by a 30+ extension harness and benchmark suite, enabling laptops to run capable coding AI offline.
Evidence shows: permission control has built-in whitelist and write protection, but default allows bash execution, and user confirmation flow relies on pi. Data flow transparency is limited, no detailed explanation of how data is processed. Sensitive data handling is not explicit. Dependency security has overrides but not audited. External effects are clearly described. Rollback mechanism is not explicit. Source attribution has author and repository info. Deductions: insufficient data flow transparency, unclear sensitive data handling, un-audited dependency security.
Evidence shows: README and package.json are consistent, dependencies are clearly declared, but failure messages are not detailed. Deduction: insufficient failure messages.
Evidence shows: clear target audience for small local models, clear capability boundaries, clear trigger methods, detailed environment adaptation. Deduction: no major deductions.
Evidence shows: clear information architecture, detailed installation instructions, stable naming, examples and FAQ present, known limitations partially mentioned, clear license, versioning and changelog present, clear maintenance responsibility. Deduction: incomplete known limitations.
Evidence shows: output usability described, marginal value has benchmark data, cost-benefit analysis present. Deduction: no major deductions.
Evidence shows: claims have links, but cross-source verification is limited, facts and inferences are separated. Deduction: insufficient cross-source verification.
- Bash execution is allowed by default; configure permission mode carefully.
- Data flow transparency is limited; review data handling practices.
- Dependency security is not audited; check for vulnerabilities.
What does this agent do, and when should you use it?
little-coder is an open-source coding agent built on pi that optimizes small local language models (e.g., Qwen3.6-35B-A3B). It does not fork pi; instead, it treats pi as a dependency and enhances it with over 30 TypeScript extensions under `.pi/extensions/`, 30 skill markdown files in `skills/`, and a Python benchmark harness in `benchmarks/`. Core mechanisms include read/write guards, skill injection, output parsing, quality monitoring, thinking budget, and permission gating, ensuring small models work efficiently and safely. It achieves impressive benchmark scores on Aider Polyglot, Terminal-Bench, and GAIA, all run on consumer laptops with 8GB VRAM. Installation is straightforward, supports multiple model providers, but is optimized for llama.cpp and Ollama local servers.
little-coder runs as a terminal-based interactive agent: it reads project files, uses built-in tools (Read/Write/Edit/Bash) to modify code and run commands, and spawns sub-agents for research and deep research. It includes a Plan Mode, sub-agent dispatch, prompt history, and session management. Benchmark drivers (e.g., benchmarks/aider_polyglot.py) start pi in RPC mode and run tasks. Its permission system uses a whitelist to restrict shell commands, enhancing safety. Extensions inject skills and knowledge per turn, monitor model output quality, and automatically compact context when needed.
- Local developers: Use Qwen3.6-35B-A3B for daily coding on a laptop without cloud dependencies, leveraging Plan Mode and automatic context management.
- Small teams: Maintain a local knowledge base (e.g., medical, athletic, educational) with many markdown files, using little-coder to read and update them in a token-efficient way.
- Benchmark enthusiasts: Researchers can use the built-in harness to evaluate small models on Aider Polyglot, Terminal-Bench 2.0, and GAIA, and submit results to leaderboards.
- Privacy-sensitive scenarios: Run fully offline with llama.cpp or Ollama to avoid sending code to the cloud.
- Multi-machine setups: Run inference on a GPU server and connect from a laptop over LAN using environment variables like LLAMACPP_BASE_URL.
- AI agent researchers: Developers can clone the repo to reproduce the paper results or study scaffold-model fit.
What are this agent's strengths and limitations?
- Optimized for small models, runs on 8GB VRAM laptops and outperforms larger cloud models on Aider Polyglot (45.56% vs baseline 19.11%).
- Modular architecture: extensions and skills are independent and easily customizable.
- Four-benchmark baseline (Aider Polyglot, Terminal-Bench, GAIA) with reproducible results.
- Security: shell whitelist, write protection, and context management prevent accidental mistakes.
- Supports multiple local servers (llama.cpp, Ollama, LM Studio) and cloud models, offering flexibility.
- Dependency on pi framework; extending requires learning pi's API.
- Requires Node.js 22.19+ and Python for benchmarks; some technical overhead.
- Default configuration targets Qwen3.6-35B-A3B; switching models may require tuning.
- Local inference performance depends on hardware; slower without a good GPU.
- Community-recommended models update frequently, but the official models.json does not track them.
How do you install or deploy this agent?
Requires Node.js 22.19+. One-line install: curl -fsSL https://raw.githubusercontent.com/itayinbarr/little-coder/main/install.sh | bash, or via npm install -g little-coder or bun add -g little-coder. After installation, the little-coder command is available.
How do you use this agent?
In a project directory, run little-coder to launch with the default model (requires a local llama.cpp server at http://127.0.0.1:8888/v1), or specify a model with --model, e.g., little-coder --model anthropic/claude-haiku-4-5. Before using, set API key env vars (e.g., LLAMACPP_API_KEY=noop) for local providers. Interactive features: ctrl+q toggles Plan Mode, f2 triggers deep research, /resume lists sessions. Model configuration can be overridden via ~/.config/little-coder/models.json.
How does this agent compare with similar options?
When compared to other coding agents like Aider, little-coder performs better on small models, but its architecture based on pi may appeal more to users familiar with pi.