BYOM AI Agents - A terminal-based AI coding agent that works with any LLM provider (OpenAI, Anthropic, Google, etc.)
Project description
BYOM AI Agents
Bring Your Own Model - A terminal-based AI coding agent that works with ANY LLM provider.
🎯 What is BYOM AI Agents?
BYOM AI Agents is a powerful, terminal-based AI coding assistant that puts YOU in control. Unlike other AI coding tools that lock you into a single provider, BYOM lets you:
- Use Any LLM: OpenAI, Anthropic Claude, Google Gemini, Ollama, LM Studio, OpenRouter
- Keep Your Data Private: Run everything locally with Ollama or LM Studio
- Stay Flexible: Switch between providers without changing your workflow
- Work Your Way: Terminal-first interface with rich formatting and progress indicators
✨ Features
🔌 Universal LLM Support (BYOM!)
Cloud Providers:
- OpenAI: GPT-4, GPT-4 Turbo, GPT-3.5
- Anthropic: Claude 3.5 Sonnet, Opus, Haiku
- Google AI: Gemini Pro, Gemini 1.5 Pro
- OpenRouter: Access 200+ models through one API (GPT-4, Claude, Llama, Mistral, etc.)
Local Providers (Privacy-First!):
- 🏠 Ollama: Run Llama 3, Mistral, CodeLlama, DeepSeek, and 100+ models locally
- 🏠 LM Studio: Local models with a beautiful GUI
- 🏠 Any OpenAI-compatible server: vLLM, LocalAI, etc.
Smart Features:
- ✅ Auto-detection: Automatic provider selection based on model name
- ✅ Easy Setup: Interactive wizard guides you through configuration
- ✅ Flexible: Switch providers anytime without changing your workflow
- ✅ No lock-in: Your data, your models, your choice
🛠️ Powerful Built-in Tools
- File Operations: Read, write, edit files with smart diff display
- Search & Navigation: Grep, glob, and recursive file finding
- Shell Integration: Execute commands with approval workflows
- Web Research: Built-in web search and URL fetching
- Task Management: Persistent todos with status tracking
- Memory System: Remember user preferences across sessions
- MCP Support: Integrate Model Context Protocol servers
💡 Smart Features
- Context Management: Automatic conversation compression when needed
- Loop Detection: Prevents the agent from getting stuck
- Approval Policies: Control which actions require confirmation
- Session Persistence: Save and resume conversations
- Checkpoints: Create snapshots of your work
- Rich TUI: Beautiful terminal UI with syntax highlighting
📦 Installation
Using pip (Recommended)
pip install byom-ai-agents
From Source
git clone https://github.com/abhishek-dev/byom-ai-agents.git
cd byom-ai-agents
pip install -e .
Using uv (Development)
git clone https://github.com/abhishek-dev/byom-ai-agents.git
cd byom-ai-agents
uv sync
🚀 Quick Start
First Run - Interactive Setup
When you first run BYOM, you'll see an interactive setup wizard:
byom
The wizard will help you:
- Choose your LLM provider (Ollama, LM Studio, OpenRouter, OpenAI, Anthropic, Google)
- Configure API keys or local server settings
- Select your preferred model
- Set approval policies
- Create all necessary config files
Provider-Specific Setup
🏠 Ollama (Recommended for Local/Privacy)
# 1. Install Ollama
# Download from: https://ollama.ai
# 2. Pull a model
ollama pull llama3
# 3. Run BYOM (Ollama runs automatically on localhost:11434)
byom
🏠 LM Studio
# 1. Download LM Studio from https://lmstudio.ai
# 2. Download and load a model in the app
# 3. Start the local server (Server tab in LM Studio)
# 4. Run BYOM
byom
☁️ OpenRouter
# 1. Get API key from https://openrouter.ai/keys
# 2. Set environment variable
export OPENROUTER_API_KEY=your-key-here
# 3. Run BYOM
byom
☁️ OpenAI
export OPENAI_API_KEY=your-key-here
byom
☁️ Anthropic
export ANTHROPIC_API_KEY=your-key-here
byom
Basic Usage
# Interactive mode
byom
# Single query mode
byom "What files are in this directory?"
# Specify working directory
byom --cwd /path/to/project
# Show version
byom --version
⚙️ Configuration
BYOM uses a layered configuration system:
- System Config:
~/.config/byom-ai/config.toml - Project Config:
.byom/config.tomlin your project - Environment Variables: Override with env vars
Example Configurations
Ollama (Local)
# ~/.config/byom-ai/config.toml
[model]
name = "llama3"
provider = "openai" # Ollama uses OpenAI-compatible API
temperature = 0.7
[api]
base_url = "http://localhost:11434/v1"
# No API key needed for local!
[behavior]
approval_policy = "auto"
max_turns = 25
LM Studio (Local)
[model]
name = "local-model" # Whatever you've loaded
provider = "openai"
[api]
base_url = "http://localhost:1234/v1"
# No API key needed!
[behavior]
approval_policy = "auto"
OpenRouter
[model]
name = "anthropic/claude-3.5-sonnet"
provider = "openai"
[api]
base_url = "https://openrouter.ai/api/v1"
# Set via env: export OPENROUTER_API_KEY=your-key
[behavior]
approval_policy = "auto"
OpenAI
[model]
name = "gpt-4-turbo"
provider = "openai"
# API key via environment variable:
# export OPENAI_API_KEY=your-key
[behavior]
approval_policy = "auto"
🔑 Environment Variables
All providers support environment variables for API keys:
# OpenAI
export OPENAI_API_KEY=sk-...
# Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
# Google
export GOOGLE_API_KEY=...
# OpenRouter
export OPENROUTER_API_KEY=sk-or-...
# Local providers (Ollama, LM Studio) don't need API keys!
📚 Available Models
Ollama (Local)
llama3,llama3:70b- Meta's Llama 3codellama,codellama:34b- Code-specialized Llamamistral,mixtral- Mistral AI modelsdeepseek-coder- DeepSeek's coding modelqwen2.5-coder- Qwen coding modelphi3- Microsoft's Phi-3- And 100+ more at https://ollama.ai/library
OpenRouter (Cloud)
anthropic/claude-3.5-sonnet- Claude 3.5 Sonnetopenai/gpt-4-turbo- GPT-4 Turbogoogle/gemini-pro-1.5- Gemini 1.5 Prometa-llama/llama-3-70b-instruct- Llama 3 70Bmistralai/mixtral-8x7b-instruct- Mixtral 8x7Bdeepseek/deepseek-coder- DeepSeek Coder- Browse all 200+ models at https://openrouter.ai/models
OpenAI
gpt-4-turbo,gpt-4,gpt-3.5-turbo
Anthropic
claude-3-5-sonnet-20241022,claude-3-opus-20240229,claude-3-haiku-20240307
Google AI
gemini-pro,gemini-1.5-pro,gemini-1.5-flash
📖 Usage Examples
Interactive Session
$ byom
______ ______ __ ___ ___ ____
/ __ ) \/ / __ \/ |/ / / | / _/
/ __ |\ / / / / /|_/ / / /| | / /
/ /_/ / / / /_/ / / / / / ___ |_/ /
/_____/ /_/\____/_/ /_/ /_/ |_/___/
v0.1.0
Welcome to BYOM AI Agents
version: 0.1.0
model: llama3 (via Ollama)
cwd: /Users/you/project
commands: /help /config /approval /model /exit
[user]> Help me add a feature to this codebase
Available Commands
/help- Show help information/config- Display current configuration/model <name>- Switch model/approval <policy>- Change approval policy/stats- Show session statistics/tools- List available tools/mcp- Show MCP server status/save- Save current session/sessions- List saved sessions/resume <id>- Resume a saved session/checkpoint- Create a checkpoint/restore <id>- Restore from checkpoint/clear- Clear conversation history/exit- Exit the program
💰 Cost Comparison
| Provider | Type | Cost | Privacy | Models |
|---|---|---|---|---|
| Ollama | 🏠 Local | FREE | ⭐⭐⭐⭐⭐ | 100+ |
| LM Studio | 🏠 Local | FREE | ⭐⭐⭐⭐⭐ | Any GGUF |
| OpenRouter | ☁️ Cloud | Pay-as-you-go | ⭐⭐⭐ | 200+ |
| OpenAI | ☁️ Cloud | $$$ | ⭐⭐ | GPT models |
| Anthropic | ☁️ Cloud | $$$ | ⭐⭐ | Claude models |
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for details.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🐛 Reporting Issues
Found a bug? Have a feature request? Please open an issue on GitHub.
⭐ Show Your Support
Give a ⭐️ if this project helped you!
Made with ❤️ by developers, for developers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file byom_ai_agents-0.1.6.tar.gz.
File metadata
- Download URL: byom_ai_agents-0.1.6.tar.gz
- Upload date:
- Size: 74.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6484a3329d13f44dff474af4de8dfffe54aa8497722bc67c1b146360ca1f6cdd
|
|
| MD5 |
9b5de854ae0d183e28a9c65f8a5459e7
|
|
| BLAKE2b-256 |
622411fdbfbe8ab6e75a02725cd26335df3412fe60cc957c69844b3b90d16f3d
|
File details
Details for the file byom_ai_agents-0.1.6-py3-none-any.whl.
File metadata
- Download URL: byom_ai_agents-0.1.6-py3-none-any.whl
- Upload date:
- Size: 86.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e9107824922d07e44706dd4b3694d7d9c4163a16572dee6d14043993e262f90
|
|
| MD5 |
b3c776f0f7f2e812213c7734d70165b0
|
|
| BLAKE2b-256 |
564e6279a0c507725246c8510ea0fea80c8115dbec9b5f04a285531c46f19288
|