A coding agent for local models on consumer hardware
Fortified with industry-grade system prompts from Claude & OpenCode
- GPU 1: NVIDIA V100 SXM2 (w/ PCIe Adaptor) 32GB for attention layers
- GPU 2: NVIDIA RTX 3080 (20GB MOD) for MoE expert layers
- CPU: AMD Ryzen 5 7500X3D
- RAM: 32GB DDR5 (The X3D suffices for RAM shortage and single channel implications D:)
Currently running Qwen-3.6-35B-A3B Q5 with llama.cpp.
Also compile llama.cpp yourself for better custom tailoring!
git clone https://github.com/exoad/bibo.git
cd bibo
npm installBibo uses a provider.json file to configure model providers. The llama-cpp-provider extension reads this file at startup.
First, create your config:
cp provider.json.example provider.jsonThen edit provider.json to point at your model endpoints:
| Field | Purpose | Default |
|---|---|---|
baseUrl |
Model server endpoint | http://127.0.0.1:6969/v1 |
apiKey |
API key (if required) | noop |
Local llama.cpp (running on this machine):
{
"providers": [
{
"name": "jackbox",
"api": "openai-completions",
"baseUrl": "http://127.0.0.1:6969/v1",
"apiKey": "noop"
}
]
}Remote server (your own model host):
{
"providers": [
{
"name": "jackbox",
"api": "openai-completions",
"baseUrl": "http://<your-server-ip>:6969/v1",
"apiKey": "noop"
}
]
}Tip
provider.json is ignored by VCS — keep it local. Use provider.json.example as a template.
Note
If provider.json doesn't exist, the extension falls back to environment variables:
LLAMACPP_BASE_URL, LLAMACPP_API_KEY, OLLAMA_BASE_URL, OLLAMA_API_KEY.
./bin/bibo.shBibo includes a web-based dashboard that shows sessions, brain memory, vault notes, and quests in real-time.
bibo # Start with dashboard
bibo "your prompt" # Start with a specific promptThe dashboard runs on http://127.0.0.1:3000 and auto-starts when you run bibo.
To use bibo from anywhere, add this to your ~/.zshrc (or equivalent shell config):
alias bibo='~/bibo/bin/bibo.sh'On Windows, use:
doskey bibo=C:\bibo\bin\bibo.cmd $*The llama-cpp-provider extension (.pi/extensions/llama-cpp-provider/index.ts) reads provider.json at startup and registers providers dynamically.
If provider.json doesn't exist, it falls back to environment variables:
LLAMACPP_BASE_URL- llama.cpp OpenAI-compatible endpointLLAMACPP_API_KEY- API key (leave asnoopif no auth)OLLAMA_BASE_URL- Ollama endpoint (default:http://127.0.0.1:11434/v1)OLLAMA_API_KEY- Ollama API key (default:noop)
See .pi/settings.json for model profiles, compaction, and retry settings.
| Path | Purpose |
|---|---|
bin/ |
Cross-platform bibo launcher (macOS/Linux/Windows) |
dashboard/ |
Web dashboard for sessions, brain, vault, and quests |
.pi/extensions/ |
20 TypeScript extensions (auto-discovered) |
skills/ |
Markdown cheat sheets injected on demand |
AGENTS.md |
Project system prompt |
SYSTEM.md |
Extended system prompt |
SELF.md |
Internal architecture reference |
.pi/settings.json |
Per-model profiles, compaction, retry settings |
Local extensions (.pi/extensions/):
benchmark-profiles- profiling benchmarksbreathing-border- animated chatbox borderbrowser- browser extractionbrowser-extract-retention- retention-aware extractioncheckpoint- session checkpointingcontext-mode- context management (inlined from npm)cost-tracker- fake cost counterevidence- evidence collectionevidence-compact- compact evidence bridgeextra-tools- additional tool integrationshello- greeting widgetknowledge-inject- knowledge injectionllama-cpp-provider- llama.cpp model provideroutput-parser- structured output parsingpermission-gate- tool permission gatingquality-monitor- repeated tool call detectionshell-session- persistent shell sessionsskill-inject- skill injectionthinking-budget- thinking token budgettimer- session timertool-gating- tool access controlturn-cap- turn limitingwrite-guard- write operation protection
NPM packages (.pi/settings.json):
@feniix/pi-code-reasoning- code reasoningpi-gsd- GSD workflow systempi-web-access- web search/fetchpi-markdown-preview- markdown preview@rhobot-dev/rho- rho agent frameworkpi-token-burden- token budgeting@feniix/pi-statusline- statusline widgetpi-review-loop- automated code reviewpi-quests- quest/task managementpi-tool-display- tool displaypi-mermaid- mermaid diagramspi-rtk-optimizer- RTK optimizer
- Extensions - each under
.pi/extensions/<name>/. Disable by removing the directory or editing.pi/settings.json. Add your own as a TypeScript module. - Skills - auto-discovered from
.pi/skills/andskills/. Disable with--no-skills. - Settings - see pi settings docs.
Fork of little-coder → built on pi.
- pi - Apache 2.0 / MIT
- little-coder - Apache 2.0
