Skip to main content

Autonomous CLI supervisor for staged AI workflows

Project description

cybervisor

cybervisor is an autonomous CLI supervisor for development runs. It executes a default 5-stage pipeline with Gemini CLI, Claude Code, or a mock agent, supports customizing stages in YAML config, installs runtime hooks for non-interactive execution, enforces optional stage-result contracts, and keeps audit logs in JSONL.

What it does

  • Runs the default five ordered stages: Spec, Review Spec, Implement, Review Code, Verify
  • Allows custom stage lists in cybervisor.yaml
  • Supports optional structured stage-result contracts and artifact-driven routing
  • Fails fast when the selected agent CLI or hook verifier credentials are missing
  • Writes non-secret hook runtime metadata and settings snapshots under .cybervisor/hooks/ for non-mock runs
  • Keeps verifier credentials in inherited CYBERVISOR_LLM_* env vars instead of persisting them under .cybervisor/hooks/
  • Snapshots .gemini/settings.json or .claude/settings.json and restores the exact pre-run content on exit
  • Streams live agent output to stderr and persists per-stage logs under .cybervisor/
  • Exits with 130 on SIGINT or SIGTERM after cleanup

Requirements

  • Python 3.11+
  • uv
  • One of:
    • gemini on PATH
    • claude on PATH
    • mock mode for local deterministic runs
  • CYBERVISOR_LLM_API_KEY for non-mock runs

Optional local env loading is supported from .env in the working directory. cybervisor reads only CYBERVISOR_LLM_BASE_URL, CYBERVISOR_LLM_API_KEY, and CYBERVISOR_LLM_MODEL, and does not override variables already exported in the shell.

Install

Install the CLI onto your PATH:

uv tool install -e .

After installation, verify:

cybervisor --version

Developer fallback if you do not want to install the CLI globally:

uv run cybervisor --version

Setup

uv sync
cp .env.example .env

Set at least:

CYBERVISOR_LLM_API_KEY=...
# Optional overrides
# CYBERVISOR_LLM_BASE_URL=https://api.openai.com/v1
# CYBERVISOR_LLM_MODEL=auto

Usage

Minimal run:

cybervisor "Create a 360 feedback system" --config cybervisor.yaml

Start from a specific stage:

cybervisor "Create a 360 feedback system" --start-stage "Implement"

Stop before a specific stage:

cybervisor "Create a 360 feedback system" --start-stage "Implement" --end-before "Verify"

Version and help:

cybervisor --version
cybervisor --help

More detail lives in:

Development

Validation commands used by this repo:

uv run mypy --strict src
uv run pytest

Useful focused runs:

uv run pytest tests/integration/test_pipeline_e2e.py
uv run pytest tests/unit/test_hooks.py tests/unit/test_pipeline.py tests/unit/test_signals.py

Specs Directory

Feature folders under specs/ are archival implementation artifacts after delivery. The current source of truth for runtime behavior is the checked-in code plus the main project docs and constitution.

Repository layout

src/cybervisor/        Core CLI package
src/cybervisor/core_hooks/ Hook runtime and verifier logic
scripts/               Demo bootstrap and end-to-end scripts
templates/demo/        Demo project scaffold
tests/                 Unit and integration coverage
specs/                 Speckit feature artifacts
.specify/              Constitution, templates, and repo scripts
AGENTS.md              Symlink to .specify/memory/constitution.md
GEMINI.md              Symlink to AGENTS.md
CLAUDE.md              Symlink to AGENTS.md

Agent docs

The agent mandate files are symlinked by design:

  • AGENTS.md -> .specify/memory/constitution.md
  • GEMINI.md -> AGENTS.md
  • CLAUDE.md -> AGENTS.md

If mandate content needs to change, update .specify/memory/constitution.md, not the symlinks.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cybervisor-0.1.4.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cybervisor-0.1.4-py3-none-any.whl (44.6 kB view details)

Uploaded Python 3

File details

Details for the file cybervisor-0.1.4.tar.gz.

File metadata

  • Download URL: cybervisor-0.1.4.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cybervisor-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1e549c52d16cc3b31f0698013eccd7a5e4334c1db52bbc68ecd8fe8d14fa6361
MD5 f2d0c05c27e570c99df67659ea6dc4ad
BLAKE2b-256 2e87e02b2c8b1262a2d611daacfc97302f03cf01d14764eb5606e36044e3b30e

See more details on using hashes here.

File details

Details for the file cybervisor-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: cybervisor-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 44.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cybervisor-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8c0c1f93a4c1511c9181f7ed6a5b5de22881887eb9da713d95e6970716f2f464
MD5 2dc93b76ef700fe8addc2621ccce0764
BLAKE2b-256 6f268bca448cb39d346e1774b5d76a8f1745cf63cef731a6c3829fc322825d74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page