High-stakes engineering project execution for AI coding agents
Project description
Keshro
Plan and run high-stakes engineering projects with AI agents.
pip install keshro
keshro login # opens browser to authenticate
keshro create # scan project, create the right migration/project
keshro continue # agents execute in parallel if possible
Keshro is built for migrations first. It scans the repo, asks the follow-up questions that actually matter for the migration, creates the right migration or project, then coordinates agents to execute it safely.
Works with your existing coding agent. Use Claude Code or Codex for planning, migration intake, and parallel execution.
Examples:
- AWS Batch -> Airflow
- Terraform -> Pulumi
- Jenkins -> GitHub Actions
- Express -> Fastify
- Apache Iceberg -> ClickHouse
What Keshro does:
- Builds a migration-aware execution context with risks, open questions, task ordering, and acceptance criteria
- Runs agents in parallel in isolated git worktrees
- Carries learnings from one task into related future tasks
- Tracks progress, decisions, and rollback points through execution
Create a migration or project
keshro create
Keshro scans the project, detects whether this is a migration, asks the follow-up questions that matter, and creates the right migration or project with a linked execution context.
If Keshro stops to ask follow-up questions in /keshro or another agent session, surface those questions back to the user and resume with the generated --answers-file command instead of building a giant shell command by hand.
Execute
Keshro drives the full execution loop — picks up the next task, gives the agent context, validates the result, marks it done, and moves to the next one. You don't manage it.
keshro continue
By default, keshro continue runs the next ready wave in parallel when the environment supports it. Use --no-parallel only when you explicitly want one task at a time.
Monitor
keshro status
Works with
Planning, execution, and parallel mode work with Claude Code and Codex. Both agents run in isolated git worktrees during parallel mode. If one agent is rate-limited, Keshro suggests switching and supports a saved default via keshro config set --agent ....
Cursor is supported for in-editor context via .cursorrules (keshro setup-cursor), but does not have a headless CLI, so it cannot be used as an execution agent.
Keshro can also create general projects from repos, issues, and freeform descriptions, but the primary workflow is migrations.
License
MIT
Releases
Publish the CLI with one GitHub Actions run after you bump pyproject.toml:
gh workflow run "Publish CLI"
That workflow reads the package version from pyproject.toml, publishes the package to PyPI, then creates the matching vX.Y.Z GitHub release automatically.
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 keshro-0.1.19.tar.gz.
File metadata
- Download URL: keshro-0.1.19.tar.gz
- Upload date:
- Size: 106.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8478d82cd753b4a0ed1811a75598afbdb14491d1df76796cba984c4ffec078e6
|
|
| MD5 |
860ca05c6d77352f48858503a41daeb2
|
|
| BLAKE2b-256 |
fdd36825bb09d94311e52a4f68fdc63f2352733e8da23fdb2eccd32b2831f5a0
|
Provenance
The following attestation bundles were made for keshro-0.1.19.tar.gz:
Publisher:
publish.yml on jlewitt1/keshro-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keshro-0.1.19.tar.gz -
Subject digest:
8478d82cd753b4a0ed1811a75598afbdb14491d1df76796cba984c4ffec078e6 - Sigstore transparency entry: 1206133041
- Sigstore integration time:
-
Permalink:
jlewitt1/keshro-cli@4bf9b0ac0d041127ddb7e698613a4cfbd415adec -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jlewitt1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4bf9b0ac0d041127ddb7e698613a4cfbd415adec -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file keshro-0.1.19-py3-none-any.whl.
File metadata
- Download URL: keshro-0.1.19-py3-none-any.whl
- Upload date:
- Size: 83.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34bebaf08bed1c0909e6f85c146ed016ea18d7254c8021d3b99e5db0fc13598c
|
|
| MD5 |
fbfa5c6b709a9b98d53e9f5cf36e29b7
|
|
| BLAKE2b-256 |
6c1aa5f9cadb2549b909d0d430f14fbdec60be66980243b4f22c2f6aec496bfc
|
Provenance
The following attestation bundles were made for keshro-0.1.19-py3-none-any.whl:
Publisher:
publish.yml on jlewitt1/keshro-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keshro-0.1.19-py3-none-any.whl -
Subject digest:
34bebaf08bed1c0909e6f85c146ed016ea18d7254c8021d3b99e5db0fc13598c - Sigstore transparency entry: 1206133053
- Sigstore integration time:
-
Permalink:
jlewitt1/keshro-cli@4bf9b0ac0d041127ddb7e698613a4cfbd415adec -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jlewitt1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4bf9b0ac0d041127ddb7e698613a4cfbd415adec -
Trigger Event:
workflow_dispatch
-
Statement type: