Minimalist autonomous agent runner
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Zen Mode 🧘
A minimalist, file-based autonomous agent runner.
Orchestrates claude to scout, plan, code, and verify tasks using the file system as memory.
The Philosophy:
- Files are Database: No SQL, no vector stores, no hidden state.
- Markdown is API: Plans, logs, and context are just markdown files you can read and edit.
- Aggressive Cleanup: Designed for legacy codebases. It deletes old code rather than deprecating it.
- Contract First: Enforces architectural rules via a "psychological linter."
- Slow is Fast: Upfront planning costs tokens now to save thousands of "debugging tokens" later.
Prerequisites
1. Install Claude CLI (Required): The agent uses the official Anthropic CLI to interface with the LLM.
npm install -g @anthropic-ai/claude-cli
claude login
Installation
Option A: The Package (Recommended)
Best for general use. Zero dependencies.
pip install zen-mode
Option B: The Scripts (For Hackers)
Best if you want to modify the agent's internal logic.
Download zen.py and zen_lint.py from the scripts folder to your project root.
Workflow
1. Initialize
Run this in your project root to generate the config.
zen init
Creates .zen/ directory and CLAUDE.md (The Constitution).
2. Define the Task
Create a simple text file (e.g., task.md) describing what you want:
"Refactor the auth module to use JWTs instead of sessions. Delete the old session middleware."
3. Run the Agent
zen task.md
The agent will loop through five phases:
- Scout: Maps relevant code (writes to
.zen/scout.md). - Plan: Drafts a step-by-step plan (writes to
.zen/plan.md). - Implement: Executes steps one by one.
- Verify: Runs tests to confirm.
- Judge: Architectural review.
4. Intervention (The "Human in the Loop")
Since state is just files, you are in control:
- Don't like the plan? Open
.zen/plan.md, edit the text, and runzen task.mdagain. It resumes automatically. - Stuck on a step? Run
zen task.md --retryto clear the step completion marker. - Total restart? Run
zen task.md --resetto nuke the.zenfolder.
The Hidden Token Economy
At first glance, Zen Mode's five-phase process seems token-intensive. In practice, it is net-positive because it eliminates the "Debug Spiral."
Traditional "Shotgun" Approach (~4,700 tokens):
- Generate broken code (1000)
- Debug session identifying issues (1500)
- Fix attempt #1 (800)
- Still broken, more debugging (1200)
- Final verification (500)
The Zen Approach (~2,800 tokens):
- Scout + Plan + Implement (2000)
- Judge phase / Architectural gates (800)
The Result: You spend ~40% fewer tokens to achieve architectural coherence that would usually take 3-4 manual iterations.
Advanced
The Eject Button
Started with the package but want to hack the source code?
zen eject
This copies the internal logic (zen.py and zen_lint.py) into your local directory. The zen command will now use your local versions.
Configuration
Env vars (optional):
export ZEN_MODEL_BRAIN=opus # For planning
export ZEN_MODEL_HANDS=sonnet # For coding
export ZEN_MODEL_EYES=haiku # For summaries
export ZEN_TIMEOUT=600 # Max seconds per step
export ZEN_LINTER_TIMEOUT=120 # Max seconds for linter
export ZEN_RETRIES=2 # Max retries per step
export ZEN_JUDGE_LOOPS=2 # Max code review steps
Upgrade After Eject
After ejecting, you're on your own for updates. Compare your local files against the scripts folder to see what changed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zen_mode-1.0.2.tar.gz.
File metadata
- Download URL: zen_mode-1.0.2.tar.gz
- Upload date:
- Size: 58.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ae4bf7cb8e293799ebadad1029c83ebb06223c7b5793b06e7b7f1068813d1da
|
|
| MD5 |
571e327fe188cdaf5e92e6f781501ab6
|
|
| BLAKE2b-256 |
88aa09caff82ee3e526e2baf8c419d08bd8f5896f589718d40c4c46d633c847b
|
File details
Details for the file zen_mode-1.0.2-py3-none-any.whl.
File metadata
- Download URL: zen_mode-1.0.2-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e46d02d6fe237ed53d70d178f953a7d9da53107a21b2a79fc457359a46bc809
|
|
| MD5 |
9df10cc134ee26fd9935c2187eae24c8
|
|
| BLAKE2b-256 |
431710b4d2d199a17d52dbf47b44246cc50fb4c607eefbe007ddae6de027dfd4
|