Argus: The AI coding assistant with PM/SE/AP/C roles β never gets stuck, never forgets.
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.
One Core, Multiple Roles
Argus features a unified core architecture with shared memory and role-based prompt switching:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Argus V2 Core β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β ArgusCore (Unified Brain) β β
β β β β
β β SharedMemory β Full-context visibility β β
β β βββ user: "Create hello.go" β β
β β βββ pm: "This is a coding task" β β
β β βββ se: "write_file + exec" β β
β β βββ ap: "Approved" β β
β β β β
β β PromptKit (Role Switching) β β
β β βββ PM Hat: Analyze requirements β β
β β βββ SE Hat: Generate & execute code β β
β β βββ AP Hat: Review & approve results β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β Executor (Hands) β β CMonitor (Watchdog) β β
β β β β β β
β β write_file β β - Timeout detection β β
β β exec β β - Hang recovery β β
β β read β β - Idle alerts β β
β ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Complete Pipeline: USR Input β PM Analysis β SE Execution β PM Code Review β AP Final Approval (OA)
**5-Phase Workflow:**
βββββββββββββββββββββββββββββββββββββββββββββββ β π€ 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 β βββββββββββββββββββββββββββββββββββββββββββββββ
| Role | Prefix | Intelligence | Responsibility |
|------|--------|-------------|----------------|
| **π€ USR** | `USR` | Human | Provides requirements, makes decisions |
| **π― PM** | `PM` | AI (LLM) | Task planning, routing, quality control |
| **π» SE** | `SE` | AI (LLM) | Code generation, file operations, command execution |
| **π AP** | `AP` | AI (LLM) | Independent approval, QA verification, veto power |
| **π C** | `Sys_C` | Mechanical | Health monitoring, change detection, handover fallback |
---
## π₯ Core Features
### β
Implemented Capabilities
#### 1οΈβ£ Four-Role AI Collaboration (Unique)
- **Natural language interaction**: Chat with PM in Chinese/English; PM automatically breaks down tasks for SE
- **@mention routing**: Use `@PM`, `@SE`, `@AP` to direct messages to specific agents
- **Triple quality assurance**:
- PM Code Review (mandatory review of SE output, verified with tools)
- AP Independent Approval (uninfluenced by PM, personally runs compile/test)
- SE Self-test Verification (must pass before submission)
- **AP Veto Power**: If AP rejects, the task cannot be closed β SE must rework
#### 2οΈβ£ SSE Streaming Output
- **Real-time visibility into AI thinking process**: Token-by-token display
- **Event-driven push**: pm_started β se_started β writing_file β executing β done
- **Heartbeat keep-alive mechanism**: Automatic disconnect recovery
#### 3οΈβ£ Complete Task Lifecycle Management
- **Four-state state machine**: idle β running β done β approved
- **Anti-infinite-loop mechanism**: PM review max 10 rounds, SE execution threshold
- **Crash recovery system**: SQLite persistence + task memory recovery
#### 4οΈβ£ Robust Stability Assurance
- **Rate limiting & circuit breaker protection**: Prevents API overload and cascading failures
- **C monitoring system**: 30s health checks, Git change detection, progressive timeouts, handover fallback
- **Path security sandbox**: File operations restricted to working directory
#### 5οΈβ£ Rich Integration Capabilities
- **Multi-model support**: OpenAI-compatible API (Qwen, DeepSeek, GLM, GPT, Claude, etc.)
- **Multi-config management**: Switch API providers anytime
- **IM multi-channel integration**: DingTalk (bidirectional, Stream mode), Enterprise WeChat/Feishu (interface reserved)
- **Git integration**: View changes, manual commits, SE output verification
#### 6οΈβ£ User Experience
- **Modern GUI**: Wails desktop app (no CLI/TUI)
- **Role-differentiated display**: Color-coded messages (USR/PM/SE/Sys_C/Sys_SE)
- **Monaco editor**: VS Code's editor with syntax highlighting
- **Embedded terminal**: xterm.js terminal
- **File tree browser**: Sidebar project navigation
- **Draggable windows**: Freely arrange panels
- **Internationalization**: Chinese/English interface
- **Multi-level notifications**: Silent / Popup / Emergency (IM push)
- **Dark theme**
#### 7οΈβ£ Security & Permission Control
- **Three-tier decision authority**: Auto / Ask / Block
- **IM switch guard**: No accidental messages
- **Message deduplication**: Frontend + backend filtering
- **Auto-backup**: Before file modification, backup to `.argus/backups/`
- **Global panic recovery**: Goroutine panic protection
---
## π Quick Start
### Download Pre-built Binary (Recommended)
For 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.
### Build from Source
#### Prerequisites
- **Go** 1.22+
- **Node.js** 18+
- **Wails CLI**: `go install github.com/wailsapp/wails/v2/cmd/wails@latest`
- **OS**: Windows (primary; macOS/Linux builds may work but are untested)
``` bash
go version # go1.22.0+
node --version # v18.0.0+
wails doctor # should pass all checks
build.bat
git clone https://github.com/ArgusTek/argus.git
cd argus
cd frontend && npm install && cd ..
cd frontend && npm run build && cd ..
wails build
./build/bin/argus-desktop.exe
β οΈ After modifying frontend code, you must runnpm run build
first, thenwails build
.
Configure in the app Settings panel, or copy and edit the template:
cp config/config.example.json config/config.json
{
"apiConfigs": [
{
"id": "1",
"name": "Qwen Turbo",
"provider": "qwen",
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "sk-your-api-key-here",
"modelName": "qwen-turbo",
"isDefault": true
}
]
}
See config/config.example.json
for the full configuration template.
Settings β IM Integration, or copy and edit:
cp config/dingtalk.example.json config/dingtalk.json
{
"enabled": true,
"clientId": "your-dingtalk-app-client-id",
"clientSecret": "your-dingtalk-app-client-secret"
}
See config/dingtalk.example.json
for the full template.
| Input Example | Effect |
|---|---|
Help me write a Hello World |
|
| Send to PM (default), PM analyzes then assigns to SE for execution | |
@PM analyze this project's architecture |
|
| Explicitly send to PM | |
@SE fix the bug at line 20 in main.go |
|
| Directly ask SE to execute fix task | |
@AP review the current changes |
|
| Request AP to perform independent review |
| Shortcut | Action |
|---|---|
Ctrl+Enter |
|
| Send message | |
Ctrl+L |
|
| Clear chat history | |
Ctrl+S |
|
| Save current file | |
Esc |
|
| Stop current task |
π€ User: Create a Go REST API
β
π― PM: I'll break this down:
1. Create main.go with HTTP server framework
2. Add /health endpoint
3. Add /api/users endpoint
@SE please start with task 1
β
π» SE: [Creates main.go, writes HTTP server code]
@PM Task 1 complete, file created
β
π― PM: [Reviews main.go using read_file/exec tools] β Passed
@SE please continue with task 2
β
π» SE: [Adds /health endpoint]
@PM Task 2 complete
β
π― PM: [Reviews again] β All passed
@AP Task verified, please perform final quality approval
β
π AP: [Independent Code Review + runs compile/test]
β
Project approved
β
π€ User: Received completion notification! REST API is ready
π Project Structure (click to expand)
argus/
βββ main.go # Wails application entry point
βββ app.go # Core business logic & API bindings
βββ terminal.go # Terminal management
βββ http_server.go # HTTP API server
βββ wails.json # Wails configuration
βββ build.bat # One-click build script
βββ go.mod / go.sum # Go dependencies
β
βββ cmd/ # CLI tools (testing/debugging)
β βββ argus/ # Main launcher
β βββ pm/ # Standalone PM test
β βββ se/ # Standalone SE test
β βββ test/ # Integration tests
β
βββ config/ # Configuration files
β βββ config.example.json # API configuration template
β βββ dingtalk.example.json # DingTalk configuration template
β
βββ internal/
β βββ ai/ # AI client & prompts
β β βββ client.go # OpenAI-compatible API client
β β βββ pm_prompt.go # PM system prompt & processor
β β βββ se_prompt.go # SE system prompt & processor
β β βββ se_prompt_test.go # SE prompt tests
β β βββ ap_prompt.go # AP approval prompt & processor
β βββ chat/ # Chat management
β β βββ manager.go # Unified ChatManager (PM/SE/AP/C orchestration)
β β βββ router.go # @mention message router
β β βββ sse_bridge.go # SSE streaming bridge
β β βββ sse_bridge_test.go # SSE bridge tests
β βββ monitor/ # Background monitoring
β β βββ c_monitor.go # C monitor (health, git, alerts, handover fallback)
β βββ memory/ # Memory & context system
β β βββ manager.go # SQLite-backed memory store
β β βββ compressor.go # Context compression
β β βββ context.go # Context builder
β β βββ session.go # Session management
β β βββ working.go # Working memory
β βββ executor/ # Command executor
β β βββ executor.go # Secure command execution with sandboxing
β βββ pm/ # PM executor
β β βββ executor.go # Task management
β βββ se/ # SE executor
β β βββ executor.go # Code generation & file operations
β βββ board/ # Task board (Kanban)
β β βββ board.go # Board state management
β βββ dingtalk/ # DingTalk integration
β β βββ dingtalk.go # Bot client
β β βββ stream.go # Stream mode handler
β βββ limiter/ # Rate limiting & safety
β β βββ ratelimit.go # API rate limiter
β β βββ circuit_breaker.go # Circuit breaker
β β βββ logger.go # Request logger
β βββ git/ # Git operations
β β βββ git.go # Git integration (status, diff, commit)
β βββ i18n/ # Internationalization
β β βββ i18n.go # Locale management
β βββ types/ # Shared type definitions
β βββ types.go
β
βββ frontend/ # Vue 3 frontend
β βββ src/
β β βββ App.vue # Root component
β β βββ main.ts # Vue entry point
β β βββ style.css # Global styles
β β βββ components/ # UI components
β β β βββ ChatPanel.vue # Chat interface
β β β βββ EditorArea.vue # Monaco editor
β β β βββ FileTreeWindow.vue # File browser
β β β βββ TerminalWindow.vue # xterm.js terminal
β β β βββ GitWindow.vue # Git status panel
β β β βββ SettingsDialog.vue # Settings modal
β β β βββ StatusBar.vue # Bottom status bar
β β β βββ ... # 22+ components
β β βββ composables/
β β βββ useDraggable.ts # Drag & drop
β βββ wailsjs/ # Auto-generated Wails bindings
β βββ package.json
β βββ vite.config.ts
β
βββ build/ # Build output (gitignored)
βββ bin/
βββ argus-desktop.exe
Windows only(macOS/Linux builds possible but untested)** Test coverage**: low, mostly manual testing** Solo project**: one maintainer, so response time varies
Discussions:https://github.com/ArgusTek/Argus/discussionsβ Q&A, ideas, chat** Issues**:https://github.com/ArgusTek/Argus/issuesβ bug reports, feature requests
We welcome all forms of contribution! Whether it's code, documentation, bug reports, or feature suggestions.
- Fork this repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Create a Pull Request
- Check Good First Issuefor beginner-friendly tasks - Feel free to open an issue for any bug report or feature request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by a solo developer
One actor, multiple roles, brilliant performance