// bone agent
A fast, hackable terminal AI agent.
Built in Rust, extended in Lua — runs anywhere a binary can.
Installation
Install via npm:
npm install -g bone-agentOr use without installing:
npx bone-agentOr build from source:
git clone https://github.com/vincentm65/bone cd bone && cargo build --releaseThe npm wrapper downloads a prebuilt Rust binary for your platform.
Requires:
├── Node.js 18+ (npm install only)
├── Rust toolchain (build from source only)
└── Python + uv (optional: web_search & cron)
LLM Providers
├── cloud
│ ├── openai (gpt-4o-mini)
│ ├── anthropic (claude-3.5-sonnet)
│ ├── gemini (gemini-1.5-flash)
│ ├── deepseek (deepseek-v4-pro)
│ ├── openrouter (50+ models)
│ ├── glm (GLM-5)
│ ├── kimi (moonshot-v1-8k)
│ ├── minimax (MiniMax-M2.7)
│ └── codex (gpt-5.5)
└── llama.cpp (local, any GGUF model)
Set keys in providers.yaml or via /config.
│ ├── openai (gpt-4o-mini)
│ ├── anthropic (claude-3.5-sonnet)
│ ├── gemini (gemini-1.5-flash)
│ ├── deepseek (deepseek-v4-pro)
│ ├── openrouter (50+ models)
│ ├── glm (GLM-5)
│ ├── kimi (moonshot-v1-8k)
│ ├── minimax (MiniMax-M2.7)
│ └── codex (gpt-5.5)
└── llama.cpp (local, any GGUF model)
Set keys in providers.yaml or via /config.
Tools
├── read_file read files
├── write_file create new files
├── edit_file edit existing files
├── shell run commands
├── web_search search online
├── subagents parallel background jobs
├── task_list manage tasks
├── ask_user ask the user
├── cron scheduled jobs
└── Lua plugin system extend with your own
Approval workflows for dangerous operations.
├── write_file create new files
├── edit_file edit existing files
├── shell run commands
├── web_search search online
├── subagents parallel background jobs
├── task_list manage tasks
├── ask_user ask the user
├── cron scheduled jobs
└── Lua plugin system extend with your own
Approval workflows for dangerous operations.
Configuration
Settings live in ~/.bone-rust — providers.yaml for keys and models, config/*.yaml for app settings, command-policy.yaml for shell command safety tiers, and memory.md for persistent preferences. Run /config to view and edit. Extend bone at startup with init.lua.
Commands
├── /provider switch provider
├── /model set or show model
├── /config change settings
├── /stats token dashboard
├── /tools enable or disable tools
├── /compact compact context
├── /memory build preferences
├── /usage token usage
├── /review review changes
├── /history conversation history
├── /customize customize config
└── /help show help
Use /help in-app for full menu.
├── /model set or show model
├── /config change settings
├── /stats token dashboard
├── /tools enable or disable tools
├── /compact compact context
├── /memory build preferences
├── /usage token usage
├── /review review changes
├── /history conversation history
├── /customize customize config
└── /help show help
Use /help in-app for full menu.
[Select a menu item above]