bone-agent
v1.4.0
Published
A terminal-based AI coding assistant powered by OpenAI-style function calling
Maintainers
Readme
bone-agent
A CLI-based AI coding assistant capable of codebase search, file editing, computer use, and web search.
Features
- Multiple LLM Provider Support: bone-agent (built-in proxy), OpenAI, Anthropic, OpenRouter, GLM, Gemini, Kimi, MiniMax, and local models
- Tool-Based Interaction: Code search (
rg), file editing, directory operations, and web search - Multiple Modes: Edit (full access), Plan (read-only), and Learn (documentation style)
- Parallel Execution: Run multiple tools concurrently for efficiency
- Conversation History: Markdown logging with context compaction
- Approval Workflows: Safety checks for dangerous commands
Installation
Option 1: npm install (Recommended)
# Install globally (requires Python 3.9+)
npm install -g bone-agent
# Run bone
boneOr use npx without installing:
npx boneWhat Gets Installed
The npm package automatically:
- Checks for Python 3.9+ on your system
- Installs Python dependencies via pip
- Creates
~/.bone/config.yamlfromconfig.yaml.exampleif missing (persists across updates) - Sets up the
bonecommand globally
Requirements:
- Node.js 14+ (for npm)
- Python 3.9+ (for the application)
- pip (to install Python dependencies)
If Python is not found, the installer will guide you through installing it.
Option 2: Git Clone
# Clone the repository
git clone https://github.com/vincentm65/bone-agent.git
cd bone-agent
# Install Python dependencies
pip install -r requirements.txt
# Run bone-agent
python src/ui/main.pyRequirements:
- Python 3.9+
- pip (to install Python dependencies)
Configuration
Setting API Keys
You have three options to set your API keys:
Option 1: Interactive Commands (Recommended)
Run the app and use the built-in commands:
> /key sk-your-api-key-here
> /provider openaiOption 2: Edit config.yaml Directly
Edit ~/.bone/config.yaml and add your keys:
# OpenAI
OPENAI_API_KEY: "sk-your-key-here"
OPENAI_MODEL: gpt-4o-mini
# Anthropic (Claude)
ANTHROPIC_API_KEY: "sk-ant-your-key-here"
ANTHROPIC_MODEL: claude-3-5-sonnet-20241022
# Or any other supported provider...Note: Config is stored at ~/.bone/config.yaml — it persists across npm updates and is never tracked by git.
Option 3: Environment Variables
Set environment variables (they take precedence over ~/.bone/config.yaml):
export OPENAI_API_KEY="sk-your-key-here"
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
boneAvailable Environment Variables
ANTHROPIC_API_KEY- Anthropic (Claude) API keyOPENAI_API_KEY- OpenAI API keyGLM_API_KEY- GLM (Zhipu AI) API keyGEMINI_API_KEY- Google Gemini API keyOPENROUTER_API_KEY- OpenRouter API keyKIMI_API_KEY- Kimi (Moonshot AI) API keyMINIMAX_API_KEY- MiniMax API keyBONE_API_KEY- bone-agent (proxy) API key (auto-set via/signup)BONE_API_BASE- bone-agent (proxy) API base URL (default:https://api.vmcode.dev)
Commands
/provider <name>- Switch LLM provider/model <name>- Set model for current provider/key <api_key>- Set API key for current provider/mode <edit|plan|learn>- Switch interaction mode/config- Show all configuration settings/signup <email>- Create a bone-agent account and get API key/account- View your bone-agent account and plan details/plan- View available plans and pricing/upgrade- Upgrade your subscription/skills list [query]- List saved skills, optionally filtered by name or content/skills show <name>- Display a saved skill/skills add <name>- Create a reusable prompt skill in your editor/skills edit <name>- Open a saved skill in your editor/skills modify <name> [prompt]- Update an existing saved skill inline or in your editor/skills load <name>- Load a saved skill into the current chat/skills use <name>- Alias for/skills load/skills remove <name>- Delete a saved skill/skills dir- Print the skills directory path/help- Display all available commands
Example:
/skills add frontend_design
/skills modify frontend_design Use restrained, production-quality UI patterns.
/skills use frontend_design/help Menu:
Project Structure
bone-agent/
├── bin/
│ ├── npm-wrapper.js # npm entry point
│ ├── rg # ripgrep binary (Linux/macOS)
│ └── rg.exe # ripgrep binary (Windows)
├── config.yaml.example # Configuration template
├── requirements.txt # Python dependencies
├── package.json # npm package definition
├── .npmignore # npm package exclusions
├── .gitignore # git exclusions
├── src/
│ ├── core/ # Core orchestration and state management
│ ├── llm/ # LLM client and provider configurations
│ ├── ui/ # CLI interface and commands
│ └── utils/ # Utilities (file ops, search, validation)
└── tests/ # Test suite (for development)bone-agent Plan (Built-in Proxy)
bone-agent offers a built-in proxy provider for a seamless setup experience. Create an account and start coding without configuring third-party API keys.
> /signup [email protected]Available plans: Free, Lite, and Pro. Use /plan to see details and /upgrade to change plans.
Paid plans coming soon.
Security
- User config lives at
~/.bone/config.yaml— outside the repo and git, persists across updates - Never commit API keys or sensitive configuration
- Use environment variables for CI/CD or shared environments
Development
bone-agent is currently in active development. Production readiness is in progress with focus on:
- Comprehensive test coverage
- Documentation
- Error handling improvements
- Performance optimizations
