Skip to main content

Agent Wave (agvv)

agvv is a lightweight task orchestrator for coding agents. It gives each task an isolated git worktree, runs the agent in a detached tmux session, and tracks lifecycle state in SQLite.

What It Does

  • Isolates task changes with git worktree (main + per-feature worktrees).
  • Runs agent sessions in background tmux so work continues after terminal disconnect.
  • Persists task state/events in SQLite (pending, running, done, failed, timed_out, cleaned).
  • Provides operational commands: task run/status/retry/cleanup and daemon run.

Requirements

  • Python >=3.10
  • git
  • tmux
  • A coding agent CLI in PATH:
    • codex (default)
    • claude (used when --agent claude or --agent claude_code)
  • uv (recommended for install/run)

Agent provider note:

  • --agent claude and --agent claude_code are equivalent inputs.
  • Both normalize to the internal provider claude_code and invoke the claude CLI binary.

Install

From PyPI:

uv tool install agent-wave
agvv --help

From source:

uv sync --dev
uv run agvv --help

Quick Start

1) Create task.md

Write the detailed coding requirement in Markdown.

2) Create task.json

Minimal valid spec:

{
  "project_name": "demo",
  "feature": "feat_demo",
  "task_doc": "./task.md"
}

task_doc or requirements must be present (at least one).

3) Start a task

For an existing local repository:

agvv task run --spec ./task.json --project-dir /path/to/repo

For a new managed project (under current directory):

agvv task run --spec ./task.json

Use Claude Code instead of Codex:

agvv task run --spec ./task.json --agent claude

--agent claude_code is also valid and behaves the same as --agent claude.

4) Monitor and reconcile state

agvv task status
agvv daemon run --once

Run daemon run --once repeatedly to move states forward (running -> done/timed_out).

5) Retry or cleanup

Retry:

agvv task retry --task-id <task_id>

Force restart an existing tmux session during retry:

agvv task retry --task-id <task_id> --force-restart

Cleanup worktree resources:

agvv task cleanup --task-id <task_id>

Force cleanup even with dirty worktree:

agvv task cleanup --task-id <task_id> --force

task.json Contract (CLI)

Required fields

  • project_name: ^[A-Za-z0-9_-]+$
  • feature: ^[A-Za-z0-9_-]+$, and must not be main or repo.git
  • One of:
    • task_doc (must end with .md)
    • requirements (non-empty string)

Common optional fields

  • repo: optional repository slug/identifier
  • from_branch: base branch for feature worktree (default: main)
  • session: custom tmux session name
  • ticket: optional ticket identifier (for task metadata)
  • constraints: list of extra constraints
  • timeout_minutes: session timeout in minutes (default: 240)
  • agent_extra_args: extra args passed to the agent command

Important runtime behavior

  • task_id is generated at runtime; user-provided task_id is ignored.
  • agent/agent_model in spec are reset by runtime; choose provider via CLI --agent.
  • base_dir in spec is overridden by runtime:
    • no --project-dir: current working directory
    • with --project-dir: parent directory of that project

CLI Summary

agvv task run --spec <path> [--db-path <path>] [--agent <codex|claude|claude_code>] [--agent-non-interactive|--agent-interactive] [--project-dir <path>]
agvv task status [--db-path <path>] [--task-id <id>] [--state <pending|running|done|failed|timed_out|cleaned>]
agvv task retry --task-id <id> [--db-path <path>] [--session <name>] [--force-restart]
agvv task cleanup --task-id <id> [--db-path <path>] [--force]
agvv daemon run [--db-path <path>] [--once] [--interval-seconds <n>] [--max-loops <n>] [--max-workers <n>]

Data and Layout

  • Default DB path: ~/.agvv/tasks.db
  • Override DB path with --db-path or environment variable AGVV_DB_PATH
  • Managed project layout:
<runtime_base>/<project_name>/
  repo.git/      # bare repository
  main/          # main worktree
  <feature>/     # feature worktree for one task

Notes

  • daemon run --once is required to reconcile background task state.
  • task cleanup removes the feature worktree and deletes the feature branch in managed repo.

Release files for agent-wave 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-wave 0.2.0
File Size Uploaded
agent_wave-0.2.0.tar.gz 80.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-wave 0.2.0
File Interpreter ABI Platform
agent_wave-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 110.2 kB

Release files / agent_wave-0.2.0.tar.gz

Download URL agent_wave-0.2.0.tar.gz
Size 80.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0761dfebc809e19420d9e63d1bd90128c1a06fa6c574711322e4b922425386fd
BLAKE2b-256 checksum
How to use checksums
2e3bdcc06c187e510ee7e55552a106da174a075582ee6101e40eccd890fbbbdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.

Transparency log

Release files / agent_wave-0.2.0-py3-none-any.whl

Download URL agent_wave-0.2.0-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
758e4dd5ab37d1f991b50297c4a6ab0d741c395fb2927d46b985bd6c2a89a30f
BLAKE2b-256 checksum
How to use checksums
7646548d0846b17e14a4fb41c1dfa8b1ed59acd662a94acd49f6bbcfb8787e37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page