{"slug": "argus-open-source-ai-coding-assistant-with-built-in-code-review", "title": "Argus: Open-source AI coding assistant with built-in code review", "summary": "Argus, an open-source AI coding assistant, was released featuring a four-role architecture (PM, SE, AP, C) that autonomously executes coding tasks with built-in code review and approval. The tool uses a unified core with shared memory and role-based prompt switching to ensure code quality through a five-phase workflow including independent final approval.", "body_md": "**Argus: The AI coding assistant with PM/SE/AP/C roles – never gets stuck, never forgets.**\n\n**Vibe Coding Platform** — A desktop coding assistant powered by a four-role AI Agent architecture (PM / SE / AP / C) that understands your intent and executes coding tasks autonomously, with a built-in independent approver to ensure code quality.\n\n**One Core, Multiple Roles**\n\nArgus features a **unified core architecture** with shared memory and role-based prompt switching:\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    Argus V2 Core                            │\n│                                                             │\n│  ┌─────────────────────────────────────────────────────┐   │\n│  │              ArgusCore (Unified Brain)               │   │\n│  │                                                      │   │\n│  │   SharedMemory ← Full-context visibility             │   │\n│  │      ├── user: \"Create hello.go\"                     │   │\n│  │      ├── pm: \"This is a coding task\"                 │   │\n│  │      ├── se: \"write_file + exec\"                     │   │\n│  │      └── ap: \"Approved\"                              │   │\n│  │                                                      │   │\n│  │   PromptKit (Role Switching)                          │   │\n│  │      ├── PM Hat: Analyze requirements                │   │\n│  │      ├── SE Hat: Generate & execute code             │   │\n│  │      └── AP Hat: Review & approve results            │   │\n│  └─────────────────────────────────────────────────────┘   │\n│                            ↓                              │\n│  ┌──────────────────┐    ┌──────────────────────────────┐  │\n│  │  Executor (Hands) │    │  CMonitor (Watchdog)         │  │\n│  │                  │    │                              │  │\n│  │  write_file      │    │  - Timeout detection          │  │\n│  │  exec            │    │  - Hang recovery              │  │\n│  │  read            │    │  - Idle alerts                │  │\n│  └──────────────────┘    └──────────────────────────────┘  │\n│                                                             │\n└─────────────────────────────────────────────────────────────┘\n```\n\n**Complete Pipeline:** USR Input → PM Analysis → SE Execution → **PM Code Review** → **AP Final Approval (OA)**\n\n```\n**5-Phase Workflow:**\n```\n\n┌─────────────────────────────────────────────┐ │ 👤 USR │ │ (You - Provide Requirements) │ └──────────────┬──────────────────────────────┘ │ Natural Language Input ▼ ┌─────────────────────────────────────────────┐ │ 🎯 PM │ │ Phase 1: Analyze Requirements │ │ • Understands your requirements │ │ • Breaks down tasks & plans execution │ │ • Communicates plan with you │ └──────────────┬──────────────────────────────┘ │ Task Assignment ▼ ┌─────────────────────────────────────────────┐ │ 💻 SE │ │ Phase 2: Execute Code │ │ • Generates code │ │ • Writes/edits files │ │ • Executes commands │ │ • Self-testing verification │ └──────────────┬──────────────────────────────┘ │ SE Complete → Handover to PM ▼ ┌─────────────────────────────────────────────┐ │ 🎯 PM │ │ Phase 3: Code Review (Second PM Pass) │ │ • Reviews SE's work output │ │ • Uses tools to verify correctness │ │ • Approves or requests fixes │ └──────────────┬──────────────────────────────┘ │ PM Review Passed ▼ ┌─────────────────────────────────────────────┐ │ 🔍 AP │ │ Phase 4: Final Approval (OA) │ │ • Independent Code Review (uninfluenced) │ │ • QA Verification (runs compile/test) │ │ • Veto Power (AP says no → task not done) │ │ • Up to 3 rounds of tool calls │ └─────────────────────────────────────────────┘ ▲ ┌──────────────┴──────────────────────────────┐ │ 📊 C │ │ (Background Monitor) │ │ • Monitors PM/SE health status │ │ • Detects Git changes + auto-commit │ │ • Identifies stalls and alerts │ │ • PM→AP handover timeout fallback │ │ • Read-only — never acts autonomously │ └─────────────────────────────────────────────┘\n\n```\n| Role | Prefix | Intelligence | Responsibility |\n|------|--------|-------------|----------------|\n| **👤 USR** | `USR` | Human | Provides requirements, makes decisions |\n| **🎯 PM** | `PM` | AI (LLM) | Task planning, routing, quality control |\n| **💻 SE** | `SE` | AI (LLM) | Code generation, file operations, command execution |\n| **🔍 AP** | `AP` | AI (LLM) | Independent approval, QA verification, veto power |\n| **📊 C** | `Sys_C` | Mechanical | Health monitoring, change detection, handover fallback |\n\n---\n\n## 🔥 Core Features\n\n### ✅ Implemented Capabilities\n\n#### 1️⃣ Four-Role AI Collaboration (Unique)\n- **Natural language interaction**: Chat with PM in Chinese/English; PM automatically breaks down tasks for SE\n- **@mention routing**: Use `@PM`, `@SE`, `@AP` to direct messages to specific agents\n- **Triple quality assurance**:\n  - PM Code Review (mandatory review of SE output, verified with tools)\n  - AP Independent Approval (uninfluenced by PM, personally runs compile/test)\n  - SE Self-test Verification (must pass before submission)\n- **AP Veto Power**: If AP rejects, the task cannot be closed — SE must rework\n\n#### 2️⃣ SSE Streaming Output\n- **Real-time visibility into AI thinking process**: Token-by-token display\n- **Event-driven push**: pm_started → se_started → writing_file → executing → done\n- **Heartbeat keep-alive mechanism**: Automatic disconnect recovery\n\n#### 3️⃣ Complete Task Lifecycle Management\n- **Four-state state machine**: idle → running → done → approved\n- **Anti-infinite-loop mechanism**: PM review max 10 rounds, SE execution threshold\n- **Crash recovery system**: SQLite persistence + task memory recovery\n\n#### 4️⃣ Robust Stability Assurance\n- **Rate limiting & circuit breaker protection**: Prevents API overload and cascading failures\n- **C monitoring system**: 30s health checks, Git change detection, progressive timeouts, handover fallback\n- **Path security sandbox**: File operations restricted to working directory\n\n#### 5️⃣ Rich Integration Capabilities\n- **Multi-model support**: OpenAI-compatible API (Qwen, DeepSeek, GLM, GPT, Claude, etc.)\n- **Multi-config management**: Switch API providers anytime\n- **IM multi-channel integration**: DingTalk (bidirectional, Stream mode), Enterprise WeChat/Feishu (interface reserved)\n- **Git integration**: View changes, manual commits, SE output verification\n\n#### 6️⃣ User Experience\n- **Modern GUI**: Wails desktop app (no CLI/TUI)\n- **Role-differentiated display**: Color-coded messages (USR/PM/SE/Sys_C/Sys_SE)\n- **Monaco editor**: VS Code's editor with syntax highlighting\n- **Embedded terminal**: xterm.js terminal\n- **File tree browser**: Sidebar project navigation\n- **Draggable windows**: Freely arrange panels\n- **Internationalization**: Chinese/English interface\n- **Multi-level notifications**: Silent / Popup / Emergency (IM push)\n- **Dark theme**\n\n#### 7️⃣ Security & Permission Control\n- **Three-tier decision authority**: Auto / Ask / Block\n- **IM switch guard**: No accidental messages\n- **Message deduplication**: Frontend + backend filtering\n- **Auto-backup**: Before file modification, backup to `.argus/backups/`\n- **Global panic recovery**: Goroutine panic protection\n\n---\n\n## 🚀 Quick Start\n\n### Download Pre-built Binary (Recommended)\n\nFor the quickest experience, download the latest `argus-desktop.exe` from the [Releases](https://github.com/ArgusTek/argus/releases) page. No build required — just run the exe.\n\n### Build from Source\n\n#### Prerequisites\n\n- **Go** 1.22+\n- **Node.js** 18+\n- **Wails CLI**: `go install github.com/wailsapp/wails/v2/cmd/wails@latest`\n- **OS**: Windows (primary; macOS/Linux builds may work but are untested)\n\n``` bash\ngo version        # go1.22.0+\nnode --version    # v18.0.0+\nwails doctor      # should pass all checks\nbuild.bat\n# Clone\ngit clone https://github.com/ArgusTek/argus.git\ncd argus\n\n# Install frontend deps\ncd frontend && npm install && cd ..\n\n# Configure AI API (see Configuration section)\n\n# Build frontend\ncd frontend && npm run build && cd ..\n\n# Build Go app\nwails build\n\n# Run\n./build/bin/argus-desktop.exe\n```\n\n⚠️ After modifying frontend code, you must run`npm run build`\n\nfirst, then`wails build`\n\n.\n\nConfigure in the app Settings panel, or copy and edit the template:\n\n```\ncp config/config.example.json config/config.json\n{\n  \"apiConfigs\": [\n    {\n      \"id\": \"1\",\n      \"name\": \"Qwen Turbo\",\n      \"provider\": \"qwen\",\n      \"baseUrl\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n      \"apiKey\": \"sk-your-api-key-here\",\n      \"modelName\": \"qwen-turbo\",\n      \"isDefault\": true\n    }\n  ]\n}\n```\n\nSee `config/config.example.json`\n\nfor the full configuration template.\n\nSettings → IM Integration, or copy and edit:\n\n```\ncp config/dingtalk.example.json config/dingtalk.json\n{\n  \"enabled\": true,\n  \"clientId\": \"your-dingtalk-app-client-id\",\n  \"clientSecret\": \"your-dingtalk-app-client-secret\"\n}\n```\n\nSee `config/dingtalk.example.json`\n\nfor the full template.\n\n| Input Example | Effect |\n|---|---|\n`Help me write a Hello World` |\nSend to PM (default), PM analyzes then assigns to SE for execution |\n`@PM analyze this project's architecture` |\nExplicitly send to PM |\n`@SE fix the bug at line 20 in main.go` |\nDirectly ask SE to execute fix task |\n`@AP review the current changes` |\nRequest AP to perform independent review |\n\n| Shortcut | Action |\n|---|---|\n`Ctrl+Enter` |\nSend message |\n`Ctrl+L` |\nClear chat history |\n`Ctrl+S` |\nSave current file |\n`Esc` |\nStop current task |\n\n```\n👤 User: Create a Go REST API\n   ↓\n🎯 PM: I'll break this down:\n     1. Create main.go with HTTP server framework\n     2. Add /health endpoint\n     3. Add /api/users endpoint\n     @SE please start with task 1\n   ↓\n💻 SE: [Creates main.go, writes HTTP server code]\n     @PM Task 1 complete, file created\n   ↓\n🎯 PM: [Reviews main.go using read_file/exec tools] ✓ Passed\n     @SE please continue with task 2\n   ↓\n💻 SE: [Adds /health endpoint]\n     @PM Task 2 complete\n   ↓\n🎯 PM: [Reviews again] ✓ All passed\n     @AP Task verified, please perform final quality approval\n   ↓\n🔍 AP: [Independent Code Review + runs compile/test]\n     ✅ Project approved\n   ↓\n👤 User: Received completion notification! REST API is ready\n```\n\n**📁 Project Structure (click to expand)**\n\n```\nargus/\n├── main.go                  # Wails application entry point\n├── app.go                   # Core business logic & API bindings\n├── terminal.go              # Terminal management\n├── http_server.go           # HTTP API server\n├── wails.json               # Wails configuration\n├── build.bat                # One-click build script\n├── go.mod / go.sum          # Go dependencies\n│\n├── cmd/                     # CLI tools (testing/debugging)\n│   ├── argus/               # Main launcher\n│   ├── pm/                  # Standalone PM test\n│   ├── se/                  # Standalone SE test\n│   └── test/                # Integration tests\n│\n├── config/                  # Configuration files\n│   ├── config.example.json  # API configuration template\n│   └── dingtalk.example.json # DingTalk configuration template\n│\n├── internal/\n│   ├── ai/                  # AI client & prompts\n│   │   ├── client.go        # OpenAI-compatible API client\n│   │   ├── pm_prompt.go     # PM system prompt & processor\n│   │   ├── se_prompt.go     # SE system prompt & processor\n│   │   ├── se_prompt_test.go # SE prompt tests\n│   │   └── ap_prompt.go     # AP approval prompt & processor\n│   ├── chat/                # Chat management\n│   │   ├── manager.go       # Unified ChatManager (PM/SE/AP/C orchestration)\n│   │   ├── router.go        # @mention message router\n│   │   ├── sse_bridge.go    # SSE streaming bridge\n│   │   └── sse_bridge_test.go # SSE bridge tests\n│   ├── monitor/             # Background monitoring\n│   │   └── c_monitor.go     # C monitor (health, git, alerts, handover fallback)\n│   ├── memory/              # Memory & context system\n│   │   ├── manager.go       # SQLite-backed memory store\n│   │   ├── compressor.go    # Context compression\n│   │   ├── context.go       # Context builder\n│   │   ├── session.go       # Session management\n│   │   └── working.go       # Working memory\n│   ├── executor/            # Command executor\n│   │   └── executor.go      # Secure command execution with sandboxing\n│   ├── pm/                  # PM executor\n│   │   └── executor.go      # Task management\n│   ├── se/                  # SE executor\n│   │   └── executor.go      # Code generation & file operations\n│   ├── board/               # Task board (Kanban)\n│   │   └── board.go         # Board state management\n│   ├── dingtalk/            # DingTalk integration\n│   │   ├── dingtalk.go      # Bot client\n│   │   └── stream.go        # Stream mode handler\n│   ├── limiter/             # Rate limiting & safety\n│   │   ├── ratelimit.go     # API rate limiter\n│   │   ├── circuit_breaker.go # Circuit breaker\n│   │   └── logger.go        # Request logger\n│   ├── git/                 # Git operations\n│   │   └── git.go           # Git integration (status, diff, commit)\n│   ├── i18n/                # Internationalization\n│   │   └── i18n.go          # Locale management\n│   └── types/               # Shared type definitions\n│       └── types.go\n│\n├── frontend/                # Vue 3 frontend\n│   ├── src/\n│   │   ├── App.vue          # Root component\n│   │   ├── main.ts          # Vue entry point\n│   │   ├── style.css        # Global styles\n│   │   ├── components/      # UI components\n│   │   │   ├── ChatPanel.vue      # Chat interface\n│   │   │   ├── EditorArea.vue     # Monaco editor\n│   │   │   ├── FileTreeWindow.vue # File browser\n│   │   │   ├── TerminalWindow.vue # xterm.js terminal\n│   │   │   ├── GitWindow.vue      # Git status panel\n│   │   │   ├── SettingsDialog.vue # Settings modal\n│   │   │   ├── StatusBar.vue      # Bottom status bar\n│   │   │   └── ...                # 22+ components\n│   │   └── composables/\n│   │       └── useDraggable.ts    # Drag & drop\n│   ├── wailsjs/             # Auto-generated Wails bindings\n│   ├── package.json\n│   └── vite.config.ts\n│\n└── build/                   # Build output (gitignored)\n    └── bin/\n        └── argus-desktop.exe\n```\n\n**Windows only**(macOS/Linux builds possible but untested)** Test coverage**: low, mostly manual testing** Solo project**: one maintainer, so response time varies\n\n**Discussions**:[https://github.com/ArgusTek/Argus/discussions](https://github.com/ArgusTek/Argus/discussions)— Q&A, ideas, chat** Issues**:[https://github.com/ArgusTek/Argus/issues](https://github.com/ArgusTek/Argus/issues)— bug reports, feature requests\n\nWe welcome all forms of contribution! Whether it's code, documentation, bug reports, or feature suggestions.\n\n- Fork this repository\n- Create a feature branch (\n`git checkout -b feature/amazing-feature`\n\n) - Commit your changes (\n`git commit -m 'Add amazing feature'`\n\n) - Push to the branch (\n`git push origin feature/amazing-feature`\n\n) - Create a Pull Request\n\n- Check\n[Good First Issue](/argustek/Argus/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)for beginner-friendly tasks - Feel free to open an issue for any bug report or feature request\n\nThis project is licensed under the MIT License - see the [LICENSE](/argustek/Argus/blob/main/LICENSE) file for details.\n\n**Built with ❤️ by a solo developer**\n\n*One actor, multiple roles, brilliant performance*", "url": "https://wpnews.pro/news/argus-open-source-ai-coding-assistant-with-built-in-code-review", "canonical_source": "https://github.com/ArgusTek/Argus", "published_at": "2026-06-14 15:56:12+00:00", "updated_at": "2026-06-14 16:13:01.880659+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "developer-tools"], "entities": ["Argus"], "alternates": {"html": "https://wpnews.pro/news/argus-open-source-ai-coding-assistant-with-built-in-code-review", "markdown": "https://wpnews.pro/news/argus-open-source-ai-coding-assistant-with-built-in-code-review.md", "text": "https://wpnews.pro/news/argus-open-source-ai-coding-assistant-with-built-in-code-review.txt", "jsonld": "https://wpnews.pro/news/argus-open-source-ai-coding-assistant-with-built-in-code-review.jsonld"}}