About this project

Archon encodes software development processes as YAML workflows, making AI-assisted coding repeatable and structured rather than dependent on an AI model's variable behavior. Workflows define phases, validation gates, and artifacts, while the AI provides intelligence at each step. Key capabilities include: - **Repeatable workflows**: Define a sequence (plan, implement, validate, review, PR) that runs the same way every time. - **Git worktree isolation**: Each workflow run gets its own isolated git worktree, enabling parallel work without conflicts. - **Composable nodes**: Mix deterministic nodes (bash scripts, tests, git operations) with AI nodes (planning, code generation, review). The AI only runs where it adds value. - **Portability**: Workflows are defined in `.archon/workflows/` and committed to your repo. They work from CLI, Web UI, Slack, Telegram, Discord, or GitHub. - **Human approval gates**: Workflows can pause and wait for human input at designated steps. - **Loop nodes**: AI can iterate on tasks until a condition is met (e.g., tests pass, all tasks complete, or human approval is given). Archon ships with 19 default workflows covering tasks like fixing GitHub issues, creating PRs, comprehensive multi-agent PR reviews, safe refactoring, architectural analysis, interactive PRD creation, and generating Remotion video compositions. Users can also author custom workflows. The project includes a web dashboard for chatting with coding agents, running workflows, and monitoring activity across all connected platforms. It features a visual drag-and-drop workflow builder for creating DAG workflows with loop nodes, and a dashboard for monitoring running and completed workflows. Archon supports multiple AI assistants (Claude, Codex, Pi) and uses SQLite or PostgreSQL for persistence. It is written in TypeScript/Bun and licensed under the MIT License. The previous Python-based version (task management + RAG) is preserved on a separate archive branch. Telemetry is collected anonymously (no PII, code, prompts, or messages) and can be disabled via environment variables.