coleam00

    coleam00/Archon

    The first open-source harness builder for AI coding. Make AI coding deterministic and repeatable.

    ai
    automation
    cli
    developer-tools
    bun
    claude
    coding-assistant
    typescript
    workflow-engine
    yaml
    TypeScript
    MIT
    17.8K stars
    2.8K forks
    17.8K watching
    Updated 4/14/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +3.6K

    +20.4% this week

    Contributors

    1

    Total contributors

    Open Issues

    140

    Generated Insights

    About Archon

    Archon Main Graphic

    Power up your AI coding assistants with your own custom knowledge base and task management as an MCP server

    Quick StartWhat's IncludedArchitecture


    🎯 What is Archon?

    Archon is currently in beta! Expect things to not work 100%, and please feel free to share any feedback and contribute with fixes/new features! Thank you to everyone for all the excitement we have for Archon already, as well as the bug reports, PRs, and discussions. It's a lot for our small team to get through but we're committed to addressing everything and making Archon into the best tool it possibly can be!

    Archon is the command center for AI coding assistants. For you, it's a sleek interface to manage knowledge, context, and tasks for your projects. For the AI coding assistant(s), it's a Model Context Protocol (MCP) server to collaborate on and leverage the same knowledge, context, and tasks. Connect Claude Code, Kiro, Cursor, Windsurf, etc. to give your AI agents access to:

    • Your documentation (crawled websites, uploaded PDFs/docs)
    • Smart search capabilities with advanced RAG strategies
    • Task management integrated with your knowledge base
    • Real-time updates as you add new content and collaborate with your coding assistant on tasks
    • Much more coming soon to build Archon into an integrated environment for all context engineering

    This new vision for Archon replaces the old one (the agenteer). Archon used to be the AI agent that builds other agents, and now you can use Archon to do that and more.

    It doesn't matter what you're building or if it's a new/existing codebase - Archon's knowledge and task management capabilities will improve the output of any AI driven coding.

    Quick Start

    Prerequisites

    Setup Instructions

    1. Clone Repository:

      git clone https://github.com/coleam00/archon.git
      
      cd archon
      
    2. Environment Configuration:

      cp .env.example .env
      # Edit .env and add your Supabase credentials:
      # SUPABASE_URL=https://your-project.supabase.co
      # SUPABASE_SERVICE_KEY=your-service-key-here
      

      NOTE: Supabase introduced a new type of service key but use the legacy one (the longer one).

      OPTIONAL: If you want to enable the reranking RAG strategy, uncomment lines 20-22 in python\requirements.server.txt. This will significantly increase the size of the Archon Server container which is why it's off by default.

    3. Database Setup: In your Supabase project SQL Editor, copy, paste, and execute the contents of migration/complete_setup.sql

    4. Start Services (choose one):

      Full Docker Mode (Recommended for Normal Archon Usage)

      docker compose up --build -d
      # or, to match a previously used explicit profile:
      docker compose --profile full up --build -d
      # or
      make dev-docker # (Alternative: Requires make installed )
      

      This starts all core microservices in Docker:

      • Server: Core API and business logic (Port: 8181)
      • MCP Server: Protocol interface for AI clients (Port: 8051)
      • Agents (coming soon!): AI operations and streaming (Port: 8052)
      • UI: Web interface (Port: 3737)

      Ports are configurable in your .env as well!

    5. Configure API Keys:

      • Open http://localhost:3737
      • Go to Settings → Select your LLM/embedding provider and set the API key (OpenAI is default)
      • Test by uploading a document or crawling a website

    🚀 Quick Command Reference

    CommandDescription
    make devStart hybrid dev (backend in Docker, frontend local) ⭐
    make dev-dockerEverything in Docker
    make stopStop all services
    make testRun all tests
    make lintRun linters
    make installInstall dependencies
    make checkCheck environment setup
    make cleanRemove containers and volumes (with confirmation)

    🔄 Database Reset (Start Fresh if Needed)

    If you need to completely reset your database and start fresh:

    ⚠️ Reset Database - This will delete ALL data for Archon!
    1. Run Reset Script: In your Supabase SQL Editor, run the contents of migration/RESET_DB.sql

      ⚠️ WARNING: This will delete all Archon specific tables and data! Nothing else will be touched in your DB though.

    2. Rebuild Database: After reset, run migration/complete_setup.sql to create all the tables again.

    3. Restart Services:

      docker compose --profile full up -d
      
    4. Reconfigure:

      • Select your LLM/embedding provider and set the API key again
      • Re-upload any documents or re-crawl websites

    The reset script safely removes all tables, functions, triggers, and policies with proper dependency handling.

    🛠️ Installing Make (OPTIONAL)

    Make is required for the local development workflow. Installation varies by platform:

    Windows

    # Option 1: Using Chocolatey
    choco install make
    
    # Option 2: Using Scoop
    scoop install make
    
    # Option 3: Using WSL2
    wsl --install
    # Then in WSL: sudo apt-get install make
    

    macOS

    # Make comes pre-installed on macOS
    # If needed: brew install make
    

    Linux

    # Debian/Ubuntu
    sudo apt-get install make
    
    # RHEL/CentOS/Fedora
    sudo yum install make
    

    ⚡ Quick Test

    Once everything is running:

    1. Test Web Crawling: Go to http://localhost:3737 → Knowledge Base → "Crawl Website" → Enter a doc URL (such as https://ai.pydantic.dev/llms-full.txt)
    2. Test Document Upload: Knowledge Base → Upload a PDF
    3. Test Projects: Projects → Create a new project and add tasks
    4. Integrate with your AI coding assistant: MCP Dashboard → Copy connection config for your AI coding assistant

    📚 Documentation

    Core Services

    ServiceContainer NameDefault URLPurpose
    Web Interfacearchon-uihttp://localhost:3737Main dashboard and controls
    API Servicearchon-serverhttp://localhost:8181Web crawling, document processing
    MCP Serverarchon-mcphttp://localhost:8051Model Context Protocol interface
    Agents Servicearchon-agentshttp://localhost:8052AI/ML operations, reranking

    What's Included

    🧠 Knowledge Management

    • Smart Web Crawling: Automatically detects and crawls entire documentation sites, sitemaps, and individual pages
    • Document Processing: Upload and process PDFs, Word docs, markdown files, and text documents with intelligent chunking
    • Code Example Extraction: Automatically identifies and indexes code examples from documentation for enhanced search
    • Vector Search: Advanced semantic search with contextual embeddings for precise knowledge retrieval
    • Source Management: Organize knowledge by source, type, and tags for easy filtering

    🤖 AI Integration

    • Model Context Protocol (MCP): Connect any MCP-compatible client (Claude Code, Cursor, even non-AI coding assistants like Claude Desktop)
    • 10 MCP Tools: Comprehensive yet simple set of tools for RAG queries, task management, and project operations
    • Multi-LLM Support: Works with OpenAI, Ollama, and Google Gemini models
    • RAG Strategies: Hybrid search, contextual embeddings, and result reranking for optimal AI responses
    • Real-time Streaming: Live responses from AI agents with progress tracking

    📋 Project & Task Management

    • Hierarchical Projects: Organize work with projects, features, and tasks in a structured workflow
    • AI-Assisted Creation: Generate project requirements and tasks using integrated AI agents
    • Document Management: Version-controlled documents with collaborative editing capabilities
    • Progress Tracking: Real-time updates and status management across all project activities

    🔄 Real-time Collaboration

    • WebSocket Updates: Live progress tracking for crawling, processing, and AI operations
    • Multi-user Support: Collaborative knowledge building and project management
    • Background Processing: Asynchronous operations that don't block the user interface
    • Health Monitoring: Built-in service health checks and automatic reconnection

    Architecture

    Microservices Structure

    Archon uses true microservices architecture with clear separation of concerns:

    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
    │   Frontend UI   │    │  Server (API)   │    │   MCP Server    │    │ Agents Service  │
    │                 │    │                 │    │                 │    │                 │
    │  React + Vite   │◄──►│    FastAPI +    │◄──►│    Lightweight  │◄──►│   PydanticAI    │
    │  Port 3737      │    │    SocketIO     │    │    HTTP Wrapper │    │   Port 8052     │
    │                 │    │    Port 8181    │    │    Port 8051    │    │                 │
    └─────────────────┘    └─────────────────┘    └─────────────────┘    └─────────────────┘
             │                        │                        │                        │
             └────────────────────────┼────────────────────────┼────────────────────────┘
                                      │                        │
                             ┌─────────────────┐               │
                             │    Database     │               │
                             │                 │               │
                             │    Supabase     │◄──────────────┘
                             │    PostgreSQL   │
                             │    PGVector     │
                             └─────────────────┘
    

    Service Responsibilities

    ServiceLocationPurposeKey Features
    Frontendarchon-ui-main/Web interface and dashboardReact, TypeScript, TailwindCSS, Socket.IO client
    Serverpython/src/server/Core business logic and APIsFastAPI, service layer, Socket.IO broadcasts, all ML/AI operations
    MCP Serverpython/src/mcp/MCP protocol interfaceLightweight HTTP wrapper, 10 MCP tools, session management
    Agentspython/src/agents/PydanticAI agent hostingDocument and RAG agents, streaming responses

    Communication Patterns

    • HTTP-based: All inter-service communication uses HTTP APIs
    • Socket.IO: Real-time updates from Server to Frontend
    • MCP Protocol: AI clients connect to MCP Server via SSE or stdio
    • No Direct Imports: Services are truly independent with no shared code dependencies

    Key Architectural Benefits

    • Lightweight Containers: Each service contains only required dependencies
    • Independent Scaling: Services can be scaled independently based on load
    • Development Flexibility: Teams can work on different services without conflicts
    • Technology Diversity: Each service uses the best tools for its specific purpose

    🔧 Configuring Custom Ports & Hostname

    By default, Archon services run on the following ports:

    • archon-ui: 3737
    • archon-server: 8181
    • archon-mcp: 8051
    • archon-agents: 8052
    • archon-docs: 3838 (optional)

    Changing Ports

    To use custom ports, add these variables to your .env file:

    # Service Ports Configuration
    ARCHON_UI_PORT=3737
    ARCHON_SERVER_PORT=8181
    ARCHON_MCP_PORT=8051
    ARCHON_AGENTS_PORT=8052
    ARCHON_DOCS_PORT=3838
    

    Example: Running on different ports:

    ARCHON_SERVER_PORT=8282
    ARCHON_MCP_PORT=8151
    

    Configuring Hostname

    By default, Archon uses localhost as the hostname. You can configure a custom hostname or IP address by setting the HOST variable in your .env file:

    # Hostname Configuration
    HOST=localhost  # Default
    
    # Examples of custom hostnames:
    HOST=192.168.1.100     # Use specific IP address
    HOST=archon.local      # Use custom domain
    HOST=myserver.com      # Use public domain
    

    This is useful when:

    • Running Archon on a different machine and accessing it remotely
    • Using a custom domain name for your installation
    • Deploying in a network environment where localhost isn't accessible

    After changing hostname or ports:

    1. Restart Docker containers: docker compose down && docker compose --profile full up -d
    2. Access the UI at: http://${HOST}:${ARCHON_UI_PORT}
    3. Update your AI client configuration with the new hostname and MCP port

    🔧 Development

    Quick Start

    # Install dependencies
    make install
    
    # Start development (recommended)
    make dev        # Backend in Docker, frontend local with hot reload
    
    # Alternative: Everything in Docker
    make dev-docker # All services in Docker
    
    # Stop everything (local FE needs to be stopped manually)
    make stop
    

    Development Modes

    Best for active development with instant frontend updates:

    • Backend services run in Docker (isolated, consistent)
    • Frontend runs locally with hot module replacement
    • Instant UI updates without Docker rebuilds

    Full Docker Mode - make dev-docker

    For all services in Docker environment:

    • All services run in Docker containers
    • Better for integration testing
    • Slower frontend updates

    Testing & Code Quality

    # Run tests
    make test       # Run all tests
    make test-fe    # Run frontend tests
    make test-be    # Run backend tests
    
    # Run linters
    make lint       # Lint all code
    make lint-fe    # Lint frontend code
    make lint-be    # Lint backend code
    
    # Check environment
    make check      # Verify environment setup
    
    # Clean up
    make clean      # Remove containers and volumes (asks for confirmation)
    

    Viewing Logs

    # View logs using Docker Compose directly
    docker compose logs -f              # All services
    docker compose logs -f archon-server # API server
    docker compose logs -f archon-mcp    # MCP server
    docker compose logs -f archon-ui     # Frontend
    

    Note: The backend services are configured with --reload flag in their uvicorn commands and have source code mounted as volumes for automatic hot reloading when you make changes.

    🔍 Troubleshooting

    Common Issues and Solutions

    Port Conflicts

    If you see "Port already in use" errors:

    # Check what's using a port (e.g., 3737)
    lsof -i :3737
    
    # Stop all containers and local services
    make stop
    
    # Change the port in .env
    

    Docker Permission Issues (Linux)

    If you encounter permission errors with Docker:

    # Add your user to the docker group
    sudo usermod -aG docker $USER
    
    # Log out and back in, or run
    newgrp docker
    

    Windows-Specific Issues

    • Make not found: Install Make via Chocolatey, Scoop, or WSL2 (see Installing Make)
    • Line ending issues: Configure Git to use LF endings:
      git config --global core.autocrlf false
      

    Frontend Can't Connect to Backend

    • Check backend is running: curl http://localhost:8181/health
    • Verify port configuration in .env
    • For custom ports, ensure both ARCHON_SERVER_PORT and VITE_ARCHON_SERVER_PORT are set

    Docker Compose Hangs

    If docker compose commands hang:

    # Reset Docker Compose
    docker compose down --remove-orphans
    docker system prune -f
    
    # Restart Docker Desktop (if applicable)
    

    Hot Reload Not Working

    • Frontend: Ensure you're running in hybrid mode (make dev) for best HMR experience
    • Backend: Check that volumes are mounted correctly in docker-compose.yml
    • File permissions: On some systems, mounted volumes may have permission issues

    📈 Progress

    Star History Chart

    📄 License

    Archon Community License (ACL) v1.2 - see LICENSE file for details.

    TL;DR: Archon is free, open, and hackable. Run it, fork it, share it - just don't sell it as-a-service without permission.

    Discover Repositories

    Search across tracked repositories by name or description