wow-agent
Terminal Coding Agent for Everyone
A simple, open, extensible terminal AI coding assistant
English | 简体中文
Quick Start · Features · Architecture · Docs
Why wow-agent?
Traditional AI coding loops look like this:
User → copy code → ask AI → edit yourself → ask again → infinite loop
wow-agent breaks the loop and joins your real workflow:
Give a goal → AI plans → tools execute → verify → done
It is not a chat toy — it is an AI pair programmer that works inside real codebases.
Why choose wow-agent?
| Core difference | Traditional tools | wow-agent |
|---|---|---|
| Model freedom | Locked to one vendor/model | Any OpenAI-compatible API + local models (Ollama / LM Studio) |
| Runtime | Tied to a specific IDE / cloud | Pure terminal, local execution, full data control |
| Architecture | x86 only | Native ARM64 (tested on Jetson Orin NX, edge-ready) |
| Safety | AI executes commands directly | Triple safety: network sandbox + egress guard + double confirm + one-click rollback |
| Extensibility | Closed ecosystem | MCP ecosystem + custom tools + sub-agents |
In one sentence: wow-agent gives you model choice, environment control, and safety decisions.
Architecture: four-layer design
┌─────────────────────────────────────────────────────┐
│ Layer 1: Agent Brain │
│ ├─ task planning · state machine · sub-agents │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ Layer 2: Developer Tools │
│ ├─ file CRUD / diff / undo / code index │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ Layer 3: Model Ecosystem │
│ ├─ cloud: DeepSeek / Qwen / OpenAI / Gemini / ... │
│ └─ local: Ollama / LM Studio │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ Layer 4: Safety System │
│ ├─ sandbox · egress guard · confirm · rollback │
└─────────────────────────────────────────────────────┘
| Layer | Capability | Key tech |
|---|---|---|
| Agent Brain | task decomposition, state machine, sub-agents | planning → executing → verifying → done/failed |
| Dev Tools | file ops, diff/undo, code index | AST Python symbol table, incremental index, diff visualization |
| Model Eco | unified cloud/local access | 16+ providers + Ollama/LM Studio, /model fetches lists online |
| Safety | sandbox / egress guard / confirm / rollback | unshare -n isolation, egress patterns, /undo |
🚀 Quick Start
Install (requires uv)
# Ubuntu / Debian / WSL
cd wow-agent && curl -LsSf https://astral.sh/uv/install.sh | sh && uv sync && uv run wow
# Windows (PowerShell, experimental)
cd wow-agent; irm https://astral.sh/uv/install.ps1 | iex
$env:Path += ";$env:USERPROFILE\.local\bin"
uv sync; uv run wow
Subsequent launches:
uv run wow # or .venv/bin/wow
First launch walks you through provider + API key setup, saved to
~/.wow-agent.env(mode 600).
✨ Core Features
🤖 Agent Brain
- Task tree + state machine: auto-decomposes multi-step tasks,
planning → executing → verifying → done/failed - Sub-agents: clean-context code research that returns only conclusions;
/reviewthree-level code review - State machine:
planning → executing → verifying → done/failedautomatic transitions
🛠 Developer Tools
- File operations: read / write / edit / delete / search;
code_indexbuilds a Python symbol table in one scan - Diff & Undo: colored diff visualization, single-step
/undo, full-task rollback on failure, snapshots survive restarts - Code index: AST-parsed Python symbols, incremental updates — query the index before reading files
🤝 Model Ecosystem
| Type | Supported |
|---|---|
| Cloud | DeepSeek / Qwen / Kimi / GLM / SiliconFlow / Doubao / Hunyuan / MiniMax / OpenRouter / Groq / Mistral / Grok / OpenAI / Gemini / OpenCode Zen |
| Local | Ollama / LM Studio (no API key needed) |
| Free tier | OpenCode Zen free tier (includes ox alpha x-preview-f-free) |
🛡 Safety System
- Network sandbox:
unshare -nnetwork namespace isolation, falls back to proxy blackhole - Egress guard: auto-blocks
curl POST/scp/git push/npm publishetc. - Double confirm:
rm -rf /,mkfs,dd, fork bombs,shutdown,chmod -R 777 /require typed confirmation - One-click rollback:
/undoreverts a single step; failed tasks roll back entirely
⚙️ Configuration
Config file: ~/.wow-agent.env (mode 600)
WOW_API_KEY= # API key
WOW_BASE_URL= # API base URL
WOW_MODEL= # model id
WOW_SAFE_MODE=1 # 0 disables sandbox
WOW_MAX_ITER=40 # max iterations per task
WOW_AUTO_COMPACT=55000 # auto-compact threshold
WOW_LANGUAGE=en # en/zh, default en
WOW_MODEL_CTX=128000 # model context length (for estimation)
WOW_CELL_ASPECT=2.0 # terminal cell aspect (logo scaling)
WOW_UPLOAD_GUARD=1 # egress guard switch
MCP servers: ~/.wow-agent/mcp.json
{
"servers": {
"fs": {"command": "npx", "args": ["-y", "@modelcontextprotocol/server-fs", "/tmp"]}
}
}
💡 Usage
$ wow
Enter auto mode? y/N # y = skip step-by-step confirms (dangerous/egress still require approval)
> Help me understand this project structure
Interaction basics:
!<command>: run shell directly without the model (e.g.!git status)/: fuzzy command completion,/helplists everything
| Command | Description |
|---|---|
/model |
provider/model wizard; /model <id> quick switch |
/status |
session status: context, task progress, undoable changes |
/compact [hint] |
compress history manually (auto-triggers past threshold) |
/mem save/use/rm/list/new |
long-term memory |
/resume |
restore a previous session |
/undo |
revert last change; full rollback on task failure |
/review [path] |
read-only review: 🔴 high risk / 🟡 suggestion / 🟢 polish |
/language [en|zh] |
switch language (default en, interactive menu) |
/safe |
toggle safe mode |
/clear /exit |
clear conversation / quit |
📚 Documentation
Full bilingual documentation is online: uuzjw.github.io/wow-agent
- Guide — intro, quick start, commands
- Architecture — state machine, sub-agents, code indexer
- Tools — file ops, diff/undo, MCP
- Safety — sandbox, egress guard, rollback
- 中文文档
🧪 Development & Testing
uv sync # install dependencies
uv run python tests_smoke.py # smoke tests (offline)
uv run python tests_e2e.py # e2e simulation (fake LLM, offline)
🤝 Contributing
All kinds of contributions are welcome!
- 🌐 New model/provider adapters — extend
PROVIDERSinconfig.py - 🎨 UI/UX improvements —
ui.py/tui.py(if revived) - 🔧 New tools — extend
TOOLS_SCHEMA+executeintools.py - 🐛 Bug fixes / docs — Issues / PRs welcome
Please make the tests pass before submitting:
uv run python tests_smoke.py
uv run python tests_e2e.py
License
MIT © uuzjw
Independently developed — unrelated to other open-source projects with the same name. Please report issues at GitHub Issues.
Metadata
Release files for wow-agent 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wow_agent-0.6.0.tar.gz | 679.0 kB | Without provenance | Details for wow_agent-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wow_agent-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for wow_agent-0.6.0-py3-none-any.whl |
Total release size: 799.2 kB
Release files / wow_agent-0.6.0.tar.gz
| Download URL | wow_agent-0.6.0.tar.gz |
|---|---|
| Size | 679.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01702169de47b4eb117c973cad78a163398216d34e850273e450c33877486b71
|
|
BLAKE2b-256 checksum How to use checksums |
df2fffc3a95b07b0a10870e8c254b4f3061790112b0a529cd7360877250648c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / wow_agent-0.6.0-py3-none-any.whl
| Download URL | wow_agent-0.6.0-py3-none-any.whl |
|---|---|
| Size | 120.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4819644707feb023fbc3f2eaf8e6bf0135c54231eb230a771e59e7ca42e19d6d
|
|
BLAKE2b-256 checksum How to use checksums |
4e6d983d258254f31daf2c60be98b6c0457592dec4b35960fae7e3ca74aad2ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for wow-agent 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.