Orchestrator that walks tasks through composable process pipelines using AI agents
Project description
hyperloop
Walks tasks through composable process pipelines using AI agents. You write specs, it creates tasks, implements them, verifies the work, and merges the results.
Prerequisites
- Python 3.12+
- Claude Code CLI (
claudeon PATH) - kustomize (
kustomizeon PATH) gitghCLI (optional, for GitHub PR operations)tmux(optional, forruntime: tmux)
Install
pip install hyperloop
Quickstart
mkdir my-project && cd my-project && git init && git commit --allow-empty -m init
# Write a spec
cat > specs/auth.md << 'EOF'
# User Authentication
Implement JWT-based auth. POST /auth/login, POST /auth/register, GET /auth/me.
Passwords hashed with bcrypt. JWTs expire after 24h.
EOF
# Initialize hyperloop structure
hyperloop init
# Run the orchestrator
hyperloop run
# With GitHub PR support
hyperloop run --repo owner/repo
# With tmux (observable worker sessions)
# Set runtime: tmux in .hyperloop.yaml, then:
hyperloop run
tmux attach -t hyperloop-my-project
Project Structure
After hyperloop init, your repo has:
my-project/
├── .hyperloop.yaml # orchestrator config
├── .hyperloop/
│ ├── agents/
│ │ ├── kustomization.yaml # composition point (base + process component)
│ │ └── process/
│ │ └── kustomization.yaml # empty Component (process-improver writes here)
│ ├── state/
│ │ ├── tasks/ # task metadata files (YAML frontmatter)
│ │ └── reviews/ # per-round review files
│ └── checks/ # executable check scripts
└── specs/
└── *.spec.md # product specs (your domain)
specs/ is yours — product specs only. .hyperloop/ is orchestrator-managed.
Prompt Composition
Three layers, all resolved via a single kustomize build:
| Layer | Source | What it provides |
|---|---|---|
| Base | hyperloop repo base/ |
Core agent prompts |
| Project overlay | gitops repo or in-repo patches | Project-specific guidelines, persona |
| Process overlay | .hyperloop/agents/process/ |
Learned rules from process-improver |
Agent resources have a guidelines field — additive by convention. At compose time: prompt + guidelines + spec + findings.
The process-improver writes kustomize patches targeting guidelines. The orchestrator re-runs kustomize build after the process-improver, guaranteeing updated guidelines reach all subsequent workers.
Configuration
# .hyperloop.yaml
overlay: .hyperloop/agents/ # path to kustomization dir
base_ref: github.com/org/hyperloop//base?ref=v1 # remote base for `hyperloop init`
target:
repo: owner/repo # GitHub repo (omit for local-only)
base_branch: main
runtime:
default: local # local | tmux
max_workers: 6
merge:
auto_merge: true
strategy: squash
delete_branch: true
poll_interval: 30
max_task_rounds: 50
max_cycles: 200
max_rebase_attempts: 3
observability:
log_format: console # console | json
log_level: info
matrix: # optional
homeserver: https://matrix.example.com
registration_token_env: MATRIX_REG_TOKEN
verbose: false
Runtimes
| Runtime | Workers | Serial agents | Observability |
|---|---|---|---|
local |
Headless subprocesses in worktrees | Subprocess on trunk | Logs only |
tmux |
Named tmux windows in worktrees | Tmux window on trunk | tmux attach -t hyperloop-{repo} |
Custom Processes
Override the default pipeline (implement → verify → merge):
# process-patch.yaml
kind: Process
name: default
pipeline:
- loop:
- role: implementer
- role: verifier
- gate: human-pr-approval
- action: merge-pr
Four primitives: role (spawn agent), gate (wait for signal), loop (retry on failure), action (terminal op). Loops nest.
Development
uv sync --all-extras
uv run pytest
uv run ruff check . && ruff format --check .
uv run pyright
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 hyperloop-0.13.0.tar.gz.
File metadata
- Download URL: hyperloop-0.13.0.tar.gz
- Upload date:
- Size: 156.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fd41615a5ded19a023eea4b703ccd6d223068b327ee036015f3a96b28350cb8
|
|
| MD5 |
b224d2f4a47b31ae107ef0023ac4e015
|
|
| BLAKE2b-256 |
2d444647e2d610e9d57d1c1606d097f65766184d7feea3e5ce22f5f2b3aed4f9
|
Provenance
The following attestation bundles were made for hyperloop-0.13.0.tar.gz:
Publisher:
release.yaml on jsell-rh/hyperloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperloop-0.13.0.tar.gz -
Subject digest:
9fd41615a5ded19a023eea4b703ccd6d223068b327ee036015f3a96b28350cb8 - Sigstore transparency entry: 1318766901
- Sigstore integration time:
-
Permalink:
jsell-rh/hyperloop@2c50a54f1bb109322e4dfa16f0566eeef5aad804 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jsell-rh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@2c50a54f1bb109322e4dfa16f0566eeef5aad804 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hyperloop-0.13.0-py3-none-any.whl.
File metadata
- Download URL: hyperloop-0.13.0-py3-none-any.whl
- Upload date:
- Size: 61.2 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 |
abb0254eac8ca157961d70fba0ff908ae32c72a9bebb78be3108a71f842aa19a
|
|
| MD5 |
51c2bf08147c2dd0bc98c4b0774741a4
|
|
| BLAKE2b-256 |
4d0708df5613d5c5df617dc60c13050ad43adc49bb2242f6f340779f04713fe7
|
Provenance
The following attestation bundles were made for hyperloop-0.13.0-py3-none-any.whl:
Publisher:
release.yaml on jsell-rh/hyperloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperloop-0.13.0-py3-none-any.whl -
Subject digest:
abb0254eac8ca157961d70fba0ff908ae32c72a9bebb78be3108a71f842aa19a - Sigstore transparency entry: 1318767029
- Sigstore integration time:
-
Permalink:
jsell-rh/hyperloop@2c50a54f1bb109322e4dfa16f0566eeef5aad804 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jsell-rh
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@2c50a54f1bb109322e4dfa16f0566eeef5aad804 -
Trigger Event:
push
-
Statement type: