Autonomous AI software project manager
Project description
Romyq
Autonomous AI software project manager.
Give Romyq a software goal. It plans, codes, commits, audits, and keeps improving until you stop it.
Run
romyq uito launch the live dashboard whileromyq runis active.
Install
pip install romyq
60-Second Quick Start
mkdir my-project
cd my-project
git init
cp .env.example .env
# Open .env and add your DEEPSEEK_API_KEY
romyq attach
# Edit mission.md — describe what you want built
romyq doctor
romyq run
That's it. Romyq takes over from here.
What Happens Next
- Romyq reads
mission.md - DeepSeek generates a task plan
- Claude Code implements each task
- Every successful task creates a git commit
- Romyq audits progress and keeps improving the project
Commands
Setup
| Command | Description |
|---|---|
romyq attach |
Attach Romyq to an existing git repository |
romyq init |
Create a new managed workspace (runs interactive wizard) |
romyq init --no-wizard |
Non-interactive init (legacy behavior) |
romyq init --no-vcs |
Init without running git init |
romyq doctor |
Validate environment and configuration |
Running
| Command | Description |
|---|---|
romyq run |
Start the autonomous development loop |
romyq run --approval |
Prompt for approval before each Claude execution |
romyq note "message" |
Inject a steering note into the next task |
romyq steer "instruction" |
Send a live operator instruction to the planner |
romyq rules |
List active project rules and promotion suggestions |
romyq rules add "TEXT" |
Add a project rule (e.g. "Never use SQLite") |
romyq rules remove "TEXT" |
Remove a project rule by text or ID |
romyq pause |
Pause the loop after the current task finishes |
romyq resume |
Resume a paused loop |
romyq stop |
Request graceful shutdown after the current task |
Observability
| Command | Description |
|---|---|
romyq health |
High-level health summary: tasks, failures, findings, heartbeat |
romyq report |
Full project report: mission, progress, commits, notes, findings |
romyq status |
Raw state: current task, last commit, heartbeat timestamp |
romyq logs |
Per-task history with success/failure and validation reason |
romyq info |
Detected language, frameworks, test suite, and build commands |
romyq stats [--json] |
Long-run operational statistics: tasks, validator rates, runtime |
romyq timeline [--last N] [--json] |
Human-readable event timeline |
Governance & Visibility (0.9.0)
| Command | Description |
|---|---|
romyq readiness |
Mission readiness score: Core Functionality, Testing, Security, Operations |
romyq capabilities |
Show the project capability model (what's missing/partial/complete) |
romyq capabilities set <name> <status> |
Manually set a capability: missing | partial | complete |
romyq capabilities infer |
Infer capabilities from task history |
romyq project-timeline [--last N] |
Project evolution timeline ("Added Authentication", not "Task #17") |
romyq constitution |
Generate .romyq/project.md — single document view of the whole project |
Intelligence & Diagnostics
| Command | Description |
|---|---|
romyq learn |
Generate or refresh .romyq/context.md from static analysis |
romyq planning [--json] |
Planning diagnostics: memory signals, knowledge signals, loop detection |
romyq memory [--json] |
Execution memory: failure rates, retry patterns, mission outcomes |
romyq knowledge [--json] |
Knowledge base: synthesized lessons and extracted patterns |
romyq patterns [--json] |
Extracted failure and success patterns from the knowledge base |
romyq plan [--json] |
Show the current mission task plan with status |
romyq decisions [--json] |
Show the governance decision log |
romyq explain |
Full diagnostic picture: state, failures, recovery guidance |
Meta
| Command | Description |
|---|---|
romyq version |
Show version, install type, and Python version |
romyq ui |
Launch the Textual TUI dashboard (coming soon) |
Configuration
Copy the example file and fill in your keys:
cp .env.example .env
.env.example:
DEEPSEEK_API_KEY=
ROMYQ_CLAUDE_TIMEOUT=1800
Advanced Usage
Run against an existing repository:
romyq attach /path/to/repo
romyq run /path/to/repo
Set workspace via environment variable:
ROMYQ_WORKSPACE=/path/to/repo romyq run
Requirements
- Python 3.10+
- Claude Code installed and authenticated
- DeepSeek API key
- Git initialized in your project directory
Dashboard
romyq ui opens a live Textual dashboard that reads state files while romyq run is active in another terminal.
┌─ romyq /path/to/project ● running tasks:12 hb:30s commit:abc1234 ─┐
│ │
│ Current Task │ Claude Output │
│ ───────────────────────── │ ────────────────────────────────── │
│ Implement JWT authentication │ Created auth/jwt.py │
│ for the admin API. Add │ Added TokenMiddleware to app.py │
│ middleware to validate all │ All 24 tests passing │
│ protected routes. │ Committed: feat: add JWT auth │
│ ───────────────────────── │ │
│ Task History │ ────────────────────────────────── │
│ ───────────────────────── │ Findings │ Notes │
│ ✓ 15:42 impl Add OAuth... │ ───────────────────────────────── │
│ ✗ 15:40 impl Add tests... │ [HIGH] Repeated failure: progress │
│ ✓ 15:38 audi Fix vulns... │ [MEDI] Missing input validation │
│ ✓ 15:35 impl Add models... │ │
│ │ │
└──────────────────────────────────────────────────────────────────────────┘
│ q quit r refresh │
Install the dashboard:
pip install 'romyq[ui]'
Launch alongside a running loop:
# Terminal 1
romyq run
# Terminal 2
romyq ui
The dashboard polls state files every 2 seconds. No changes to the running loop are required.
Rate Limit Handling
When Claude hits a session or usage limit, Romyq detects it automatically instead of treating it as a task failure:
- Parses the reset time from Claude's output (e.g.
resets 5:50am (Asia/Calcutta)) - Logs the reset time and timezone
- Sets
status: rate_limitedin state (visible inromyq uiandromyq status) - Sleeps until the reset time plus a 5-minute safety buffer
- Retries the same task — no new DeepSeek call is wasted
- Falls back to a 30-minute sleep if the reset time cannot be parsed
The loop can be stopped early during a rate-limit sleep with romyq stop.
Loop Control
Run these from any terminal while romyq run is active in another:
romyq pause # idle after current task (loop keeps running)
romyq resume # resume a paused loop
romyq stop # exit gracefully after current task (or wake from rate-limit sleep)
These commands write flags to .romyq/state.json. The loop reads them between tasks.
Changelog
See CHANGELOG.md.
License
MIT
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 romyq-0.10.3.tar.gz.
File metadata
- Download URL: romyq-0.10.3.tar.gz
- Upload date:
- Size: 210.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24118f0bb6e0992410af1bd6f86bb406e73fceaf19fa982dff6cd5757346b50a
|
|
| MD5 |
421d2e68ac48273df842d1722f299e8e
|
|
| BLAKE2b-256 |
46c7e590585b52fc0dac4be9f3b62efe80367d18c209ab2ecea1b70873c06bbe
|
Provenance
The following attestation bundles were made for romyq-0.10.3.tar.gz:
Publisher:
release.yml on Webrowse/romyq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
romyq-0.10.3.tar.gz -
Subject digest:
24118f0bb6e0992410af1bd6f86bb406e73fceaf19fa982dff6cd5757346b50a - Sigstore transparency entry: 1889846829
- Sigstore integration time:
-
Permalink:
Webrowse/romyq@4c421e5bfea13c0df00cdb5be48f8089318ac69d -
Branch / Tag:
refs/tags/v0.10.3 - Owner: https://github.com/Webrowse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4c421e5bfea13c0df00cdb5be48f8089318ac69d -
Trigger Event:
push
-
Statement type:
File details
Details for the file romyq-0.10.3-py3-none-any.whl.
File metadata
- Download URL: romyq-0.10.3-py3-none-any.whl
- Upload date:
- Size: 133.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35ba188e6088dada771b3c2d597bec1d1f7b773d05d747725c15c1d1286ee73c
|
|
| MD5 |
72e254feb84c8556c427c6899cefe070
|
|
| BLAKE2b-256 |
a2949216ca02dcc3442a57ccdf80d19b8ebbf0ff42e3f4bd08975516201f003e
|
Provenance
The following attestation bundles were made for romyq-0.10.3-py3-none-any.whl:
Publisher:
release.yml on Webrowse/romyq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
romyq-0.10.3-py3-none-any.whl -
Subject digest:
35ba188e6088dada771b3c2d597bec1d1f7b773d05d747725c15c1d1286ee73c - Sigstore transparency entry: 1889846930
- Sigstore integration time:
-
Permalink:
Webrowse/romyq@4c421e5bfea13c0df00cdb5be48f8089318ac69d -
Branch / Tag:
refs/tags/v0.10.3 - Owner: https://github.com/Webrowse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4c421e5bfea13c0df00cdb5be48f8089318ac69d -
Trigger Event:
push
-
Statement type: