Multi-Provider AI Coding Assistant with Advanced Tool Integration
π Quick Start β’ π Documentation β’ π€ Contributing β’ π License
πΊ EVE is a sophisticated, AI-powered coding assistant that seamlessly integrates with multiple AI providers (Anthropic Claude, Google Gemini, OpenAI) to help you:
- π Read & Analyze code files and project structures
- βοΈ Edit & Modify code with precision and safety
- β‘ Execute Commands safely in your terminal
- π Search Codebase with powerful pattern matching
- π Make API Calls to external services
- π·οΈ Scrape Webpages for data extraction
- π§ Remember Conversations across sessions
- π Switch Providers on-the-fly for optimal performance
Built with a clean provider abstraction layer, EVE gives you the flexibility to choose the best AI model for your specific coding tasks while maintaining a consistent, powerful interface.
- π§ Anthropic Claude - Excellent for complex reasoning and code analysis
- β‘ Google Gemini - Fast and efficient for quick tasks
- π¨ OpenAI GPT - Versatile for creative coding solutions
- π Easy Switching - Change providers with a single environment variable
- π File Operations - Read, edit, create, and manage files
- π» Terminal Commands - Execute shell commands safely with output capture
- π Code Search - Find patterns across your entire codebase using ripgrep
- π Directory Exploration - Navigate and understand project structure
- π API Caller - Make HTTP requests to external services
- π·οΈ Web Scraper - Extract data from webpages using CSS selectors
- π§ Memory Persistence - Save and load conversation history
- π Provider Abstraction - Clean interface for adding new AI providers
- π§° Tool System - Extensible tool framework with JSON schema validation
- βοΈ Configuration Management - Environment-based setup with validation
- π Verbose Logging - Detailed debugging and monitoring capabilities
- Go 1.24.2+ or devenv (recommended for easy setup)
- At least one AI provider API key:
- Anthropic API Key (recommended)
- Google Gemini API Key (optional)
- OpenAI API Key (optional)
# Clone the repository
git clone https://github.com/ghuntley/how-to-build-a-coding-agent.git
cd how-to-build-a-coding-agent
# Use devenv for reproducible environment (recommended)
devenv shell# Clone the repository
git clone https://github.com/ghuntley/how-to-build-a-coding-agent.git
cd how-to-build-a-coding-agent
# Install dependencies manually
go mod tidy# Choose your preferred provider
export LLM_PROVIDER="anthropic" # Options: anthropic, gemini, openai
# Set your API keys (at least one required)
export ANTHROPIC_API_KEY="your-anthropic-key-here"
export GEMINI_API_KEY="your-gemini-key-here"
export OPENAI_API_KEY="your-openai-key-here"# Run the full-featured multi-provider agent
go run agent.go
# Or explore individual tools
go run chat.go # Basic chat interface
go run read.go # With file reading capabilities
go run list_files.go # With directory exploration
go run bash_tool.go # With terminal command execution
go run edit_tool.go # With file editing capabilities
go run code_search_tool.go # With code search functionalitygo run chat.goYou: Hello, can you help me write a function?
EVE: I'd be happy to help you write a function! What kind of function are you thinking of?
go run read.goYou: Read the main.go file and explain what it does
EVE: Let me read that file for you...
[Reads file content]
This appears to be the main entry point for a Go application that...
go run edit_tool.goYou: Add error handling to the database connection function
EVE: I'll help you add proper error handling. Let me first read the current implementation...
[Analyzes code and makes targeted edits]
I've added comprehensive error handling to your database connection function.
go run bash_tool.goYou: Run the test suite and show me the results
EVE: I'll execute the test command for you.
[Running: go test ./...]
Test results: 15 passed, 2 failed...
βββββββββββββββββββ ββββββββββββββββββββ
β EVE β β Provider β
β Agent βββββΊβ Abstraction β
β β β Layer β
βββββββββββββββββββ ββββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β Tool System β β Anthropic β
β β β Claude β
β β’ File Reader β ββββββββββββββββββββ€
β β’ Code Editor β β Google Gemini β
β β’ Terminal β ββββββββββββββββββββ€
β β’ Search β β OpenAI GPT β
βββββββββββββββββββ ββββββββββββββββββββ
agent.go- Main multi-provider agent with tool orchestrationllm.go- Provider interfaces and shared types with JSON schema generationconfig.go- Configuration management with environment variable validation- Provider implementations - Anthropic, Gemini, OpenAI with unified interfaces
- Tool implementations - File operations, terminal commands, code search
Each agent follows this event loop:
- π₯ Waits for your input
- π€ Sends it to your chosen AI provider (Claude, Gemini, or GPT)
- π€ AI responds directly or requests tool usage
- β‘ Executes tools (read files, run commands, etc.)
- π¨ Returns results back to the AI
- π¬ Provides final answer to you
make build # Build all binaries
make fmt # Format code
make check # Run linting and checks
make clean # Clean build artifacts- Implement the
LLMProviderinterface inllm.go - Add provider type to
config.go - Update environment variable handling
- Add to the provider factory in
config.go
- Define tool schema in
llm.gousing struct tags - Implement tool execution logic
- Register tool with the agent
- Update tool definitions and help text
# Run all tests
go test ./...
# Run with verbose output
go test -v ./...
# Run specific test
go test -run TestAnthropicProvider ./...- π Web UI interface - Browser-based interface for EVE
- π Plugin system - Custom tools and extensions
- π§ Memory features - Conversation persistence and context
- π» IDE integration - VS Code, IntelliJ, and other editors
- π Advanced analytics - Code analysis and insights
- π Multi-language support - Python, JavaScript, Rust, etc.
- π Security enhancements - Sandboxed execution
- π Performance optimization - Caching and parallel processing
We welcome contributions! Please see our Contributing Guide for details.
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/amazing-feature) - π» Make your changes
- β Add tests if applicable
- π€ Submit a pull request
# Fork and clone
git clone https://github.com/yourusername/how-to-build-a-coding-agent.git
cd how-to-build-a-coding-agent
# Set up development environment
devenv shell
# Run tests
make checkEVE is open source software licensed under the MIT License.
- Anthropic for the Claude API
- Google for the Gemini API
- OpenAI for the GPT API
- BurntSushi for ripgrep (code search)
- The Go Community for excellent tooling
Built with β€οΈ for developers, by developers
What is EVE β’ Features β’ Quick Start β’ Architecture β’ Contributing
Transform your coding workflow with AI-powered assistance