AgentMachinist
AgentMachinist is a local-first, issue-to-reviewed-PR build pipeline for solo developers. It connects GitHub issues to Claude Code, OpenCode, Pi, or Codex, with a human-approved specification between planning and implementation.
issue + trigger label → spec commit → draft PR → SHA-bound approval
→ implementation → test gate → ready PR → human merge
The controller—not the harness—owns commits, pushes, PR transitions, and task records. AgentMachinist never merges.
Current release: AgentMachinist 0.2.0 on PyPI.
Install
uv tool install agentmachinist
You also need git, an authenticated gh, and one
supported harness executable (claude, opencode, pi, or codex).
Start
cd your-repository
machinist init
# Set tests.command in machinist.yaml, then:
machinist doctor
machinist watch
The default github.spec_source: local makes watch own spec generation.
Choose github-actions and run machinist sync-workflows if CI should own that
phase instead. Exactly one source is active, preventing duplicate spec runs.
Approval is bound to the exact PR head commit. Use either:
machinist approve 57
# or post the exact PR comment: /machinist-execute
Editing the spec after approval makes that approval stale and blocks execution until the new head is approved.
Commands
| Command | Purpose |
|---|---|
machinist init |
Create config, spec storage, labels, and managed workflows. |
machinist doctor |
Run read-only setup and workflow-drift diagnostics. |
machinist sync-workflows [--check] |
Write or verify config-derived workflows. |
machinist spec <issue> |
Generate a spec and open its draft PR. |
machinist approve <pr> |
Bind approval to the current PR head. |
machinist run <issue> |
Implement an approved spec and run the test gate. |
machinist watch [--once] |
Dispatch eligible tasks continuously or once. |
machinist status |
Show issue/PR lifecycle states. |
machinist retry <issue> [--phase spec|execute] |
Re-enable one failed Task Run. |
Documentation
- Getting started
- Visual first-run field guide
- Architecture and lifecycle
- Operator runbook
- Trust model
- Harness support
- Visual handbook
- Contributing
- Changelog
The trust model is deliberately narrower than “the agent cannot use git.” Harness flags, credential reduction, repository postconditions, and push leases reduce risk, but local harnesses still execute with the operating-system access of the user who launched them. Read the trust model before unattended use.
Releasing
Releases use PyPI Trusted Publishing. Bump pyproject.toml, update the
changelog, and publish a GitHub Release tagged v<version>. The release job
requires tag/version equality, runs the suite, builds both distributions,
installs and smoke-tests the wheel, and publishes last.
License
MIT — see LICENSE.
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 agentmachinist-0.2.0.tar.gz.
File metadata
- Download URL: agentmachinist-0.2.0.tar.gz
- Upload date:
- Size: 105.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc8c98452f1fc51fb598b9d4212da27c1549de1f5cd77d80302352f395dd8017
|
|
| MD5 |
2e28f7c6224a45f9b3a75635fc44efde
|
|
| BLAKE2b-256 |
465b6bfec2368bf096c89dbeee8ed2873c745e3608913dd2fa132f715b55bc1b
|
File details
Details for the file agentmachinist-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agentmachinist-0.2.0-py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83c1e6301203a3260effa74eb0d69ca7c3436b08bb27a01c89bf7d4edd5795bd
|
|
| MD5 |
f59a56e0c42f6525ca53796c19cbf3fd
|
|
| BLAKE2b-256 |
f6ba03e4bb03cbe9931064c3f4b04e37879f3e42a1c38d712b53d044d1552594
|