Skip to content

Artifact-Virtual/EVE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

e🌷e

Multi-Provider AI Coding Assistant with Advanced Tool Integration

Go Version License Go Report Card GitHub Stars GitHub Issues Contributions Welcome Build Status

πŸš€ Quick Start β€’ πŸ“š Documentation β€’ 🀝 Contributing β€’ πŸ“„ License

✨ What is EVE?

🌺 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.


πŸš€ Key Features

πŸ€– Multi-Provider Support

  • 🧠 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

πŸ› οΈ Powerful Tool Integration

  • πŸ“ 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

πŸ—οΈ Clean Architecture

  • πŸ”Œ 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

🏁 Quick Start

πŸ“‹ Prerequisites

πŸ”§ Setup Environment

Option 1: Recommended (using devenv)

# 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

Option 2: Manual setup

# 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

πŸ” Configure API Keys

# 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 EVE

# 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 functionality

πŸ’¬ Example Usage

Basic Chat

go run chat.go
You: 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?

File Analysis

go run read.go
You: 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...

Code Editing

go run edit_tool.go
You: 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.

Terminal Operations

go run bash_tool.go
You: 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...

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     EVE         β”‚    β”‚  Provider        β”‚
β”‚   Agent         │◄──►│  Abstraction     β”‚
β”‚                 β”‚    β”‚  Layer           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚
         β–Ό                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Tool System   β”‚    β”‚  Anthropic       β”‚
β”‚                 β”‚    β”‚  Claude          β”‚
β”‚ β€’ File Reader   β”‚    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β€’ Code Editor   β”‚    β”‚  Google Gemini   β”‚
β”‚ β€’ Terminal      β”‚    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β€’ Search        β”‚    β”‚  OpenAI GPT      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Core Components

  • agent.go - Main multi-provider agent with tool orchestration
  • llm.go - Provider interfaces and shared types with JSON schema generation
  • config.go - Configuration management with environment variable validation
  • Provider implementations - Anthropic, Gemini, OpenAI with unified interfaces
  • Tool implementations - File operations, terminal commands, code search

How It Works

Each agent follows this event loop:

  1. πŸ“₯ Waits for your input
  2. πŸ“€ Sends it to your chosen AI provider (Claude, Gemini, or GPT)
  3. πŸ€” AI responds directly or requests tool usage
  4. ⚑ Executes tools (read files, run commands, etc.)
  5. πŸ“¨ Returns results back to the AI
  6. πŸ’¬ Provides final answer to you

πŸ”§ Development

Building

make build    # Build all binaries
make fmt      # Format code
make check    # Run linting and checks
make clean    # Clean build artifacts

Adding New Providers

  1. Implement the LLMProvider interface in llm.go
  2. Add provider type to config.go
  3. Update environment variable handling
  4. Add to the provider factory in config.go

Adding New Tools

  1. Define tool schema in llm.go using struct tags
  2. Implement tool execution logic
  3. Register tool with the agent
  4. Update tool definitions and help text

Testing

# Run all tests
go test ./...

# Run with verbose output
go test -v ./...

# Run specific test
go test -run TestAnthropicProvider ./...

οΏ½ Roadmap

  • 🌐 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

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

How to Contribute

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’» Make your changes
  4. βœ… Add tests if applicable
  5. πŸ“€ Submit a pull request

Development Setup

# 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 check

πŸ“„ License

EVE is open source software licensed under the MIT License.


πŸ™ Acknowledgments

  • 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

About

EVE is a multiplayer, AI-powered coding assistant that seamlessly integrates with multiple AI providers.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors