Skip to main content

Ortus

test

Ortus (Latin: "rising, origin, birth"), the point from which something begins.

Ortus autonomously closes a backlog of bd-tracked issues using Claude Code, Codex, Grok, or a model you serve yourself, one fresh subprocess per task. Inspired by the Ralph Loop concept: fresh window per task, drive the queue to zero, no context drift.

How it works

How Ortus works: plan once, then grind through ready issues one fresh worker at a time

Diagram source: docs/img/how-it-works.reladraw, rendered with reladraw docs/img/how-it-works.reladraw -o docs/img/how-it-works.svg.

Install

Requires uv on PATH. Ortus is distributed via PyPI and installed by uv; we don't auto-install uv.

One-liner (recommended):

curl -fsSL https://github.com/who/ortus/releases/latest/download/install.sh | sh

Direct PyPI:

uv tool install ortus
ortus --version

From source / pinned commit:

uv tool install git+https://github.com/who/ortus.git
# Pin a specific tag/branch:
uv tool install 'git+https://github.com/who/ortus.git@v0.1.0'

Troubleshooting:

Symptom Fix
uv: command not found Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh (see uv docs)
ortus: command not found after install uv tool update-shell then open a new shell
bd: command not found brew install beads (mac) or grab a release from https://github.com/gastownhall/beads/releases

Quick start

# Bootstrap YOUR project
cd your-project
ortus init .

# Verify prereqs for the configured backend
ortus check .

# Decompose a PRD into bd issues
ortus plan . path/to/feature.md

# Or run the idea→interview→PRD→tasks flow with no PRD path
ortus plan .

# Drive the bd queue to zero, one task per fresh agent subprocess
ortus grind .

# Override the project backend for one run
ortus grind . --backend codex

# Bounded: stop after N tasks
ortus grind . --tasks 5

# Prototype bar for one run: lint and syntax checks only, no behavioral tests
ortus grind . --prototype

Note: Ortus is a global CLI you install once and use everywhere, not a Python dependency. You don't clone this repository into your project. ortus init only adds a small set of per-project files to an existing directory, and host prose in AGENTS.md and CLAUDE.md outside the Ortus markers is left alone. See agent backends.

Prerequisites

Tool Why Install
uv install + run ortus docs.astral.sh/uv
bd (beads) v1.0.0+ issue tracking (Dolt-backed) brew install beads or GH release
claude, codex, or grok agent running inside ortus grind; Claude is the default Claude Code / Codex CLI / Grok Build
opencode (local is its older name) any OpenAI-compatible server exposing /v1/models and /v1/chat/completions, driven through the opencode CLI opencode + llama.cpp llama-server
jq bd JSON post-processing brew install jq / apt install jq
bwrap (Linux) or sandbox-exec (Mac) OS-level sandbox for ortus grind apt install bubblewrap / built into macOS

Required: CodeGraph. ortus init installs the index and pins codegraph = "required", and plan/grind abort before launching an agent when it is missing. For a repository CodeGraph cannot index, bootstrap without it using ortus init --codegraph off. See the CodeGraph lifecycle.

Platform Status Notes
Linux (Ubuntu/WSL2) full requires bubblewrap for ortus grind
macOS full Seatbelt (sandbox-exec) is built-in

Windows is not supported (decision 2026-05-17). Windows users should run ortus inside WSL2 (Windows Subsystem for Linux), where ortus runs as a normal Linux process.

The verbs

Verb Purpose
ortus init <repo> Bootstrap a fresh repo and pin a concrete run backend in .ortusrc
ortus check <repo> Verify bd, the run backend, sandbox, backend config, and managed agent files; strictly read-only
ortus plan <repo> [<PRD>] Decompose a PRD into bd issues, or interview-then-PRD-then-decompose if no PRD path
ortus ingest <repo> File one readiness schema v1 issue from a packet directory or stdin JSON
ortus validate <repo> [<id>...] Report whether bd issues satisfy readiness schema v1 before grinding
ortus grind <repo> Drive the bd queue, one task per fresh Claude, Codex, Grok, or opencode subprocess
ortus tail <repo> Follow logs/grind-*.log with stream-json filtering
ortus dashboard <repo> Watch one grind run in a read-only live view

Seven more verbs — interview, human, unlock, spec, cost, eval and prompt — and every flag are in the command reference. Run ortus <verb> --help for flags, ortus --version for the installed version.

Why ortus

  • One install, all projects. uv tool install ortus once; every repo uses the same canonical tooling. No per-repo vendor copies to chase.
  • bd ready IS the queue. No README task lists, no TodoWrite scratchpads. The queue is data.
  • The scheduler is the loop. Backend output is advisory; observable bd state decides whether an iteration succeeded, orphaned a claim, or made no change.
  • Sandboxed by default. ortus grind refuses to launch unless bwrap/Seatbelt is available, and each backend gets the strongest posture it supports.

Configuration

An optional <repo>/.ortusrc (TOML) overrides ~/.ortusrc. Every key has a working default:

prefix = "myproj"       # bd issue-id prefix
project_type = "python" # python | typescript | go | rust | polyglot
backend = "claude"      # claude | codex | grok | opencode (older name: local)
codegraph = "required"  # off | auto | required
verification = "full"   # full | prototype
integration_branch = "main"

[profiles.claude.implement]
model = "sonnet"

The full key reference, per-phase profiles, and the prototype verification bar are in configuration.

Documentation

Development

uv sync --all-extras
uv run pytest -m fast -n auto --test-timeout=30
uv run pytest -m integration -n auto --test-timeout=60

See the test-gate guide for changed-path selection, verifier expansion, CI timing evidence, and tagged network/live-provider release smoke.

License

MIT

Metadata

Release files for ortus 0.5.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 ortus 0.5.0
File Size Uploaded
ortus-0.5.0.tar.gz 373.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ortus 0.5.0
File Interpreter ABI Platform
ortus-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 762.1 kB

Release files / ortus-0.5.0.tar.gz

Download URL ortus-0.5.0.tar.gz
Size 373.8 kB
Tags Source
SHA-256 checksum
How to use checksums
fa4dcd226c6430501900682235f5fdef10f94ec178fc96aff38cea458b9bec34
BLAKE2b-256 checksum
How to use checksums
dbfd000f08ef3783c336dc33f60382aedef5e5f22a54accb8018914e1ce1d99f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 11, 2026.

Transparency log

Release files / ortus-0.5.0-py3-none-any.whl

Download URL ortus-0.5.0-py3-none-any.whl
Size 388.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
072cda10f43bfb8e08c25bfba5272551a7dd12e01c74fe7eeb2662f0345d5214
BLAKE2b-256 checksum
How to use checksums
3cccb01bfcf62873dc5c2bce3f96964f13f01cf113bc317613105f164c3652bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

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