The intelligent execution layer for AI agents — CLI interface
Project description
Keshro
Migration execution for AI coding agents. Structured plans, parallel execution, and cross-task learning for complex stack moves.
pip install keshro
keshro login # opens browser to authenticate
keshro create # scan project, generate plan
keshro config set --agent codex # optional: default prompt agent
keshro continue --all # agents execute in parallel
The problem
Your AI agent is good at one task at a time. Migrations are not one task.
An AWS Batch to Airflow move, Terraform to Pulumi rewrite, or Jenkins to GitHub Actions cutover usually means:
- discovery across the repo and infrastructure definitions
- migration-specific risks and open questions
- staged execution with dependency ordering
- multiple agents touching related code without stepping on each other
Run that manually and you're the bottleneck. Run it in parallel without coordination and agents conflict. The more edge cases the migration has, the worse this gets.
What it's built for
- Stack and platform migrations — Express to Fastify, Terraform to Pulumi, Jenkins to GitHub Actions, AWS Batch to Airflow, Docker Compose to Kubernetes, and similar moves where configuration, runtime behavior, and rollout sequencing all change together.
- Migration planning with execution attached — not just “what should we do,” but “what are the blockers, what still needs answering, and what should run first.”
- Adjacent multi-task engineering work — monolith decomposition, infrastructure overhauls, auth refactors, and other projects where one agent session cannot hold all the context.
What Keshro does
- Builds a migration-aware plan — generates a dependency graph with task ordering, file assignments, acceptance criteria, migration risks, and open questions
- Runs agents in parallel — each in an isolated git worktree, respecting dependency order
- Shares context across tasks — when one agent discovers something, related future tasks inherit that knowledge
- Tracks everything — git checkpoints before each task, decision audit trails, one-command rollback
Create a migration
keshro create --path aws-batch-to-airflow # migration template
keshro create --path aws-batch-to-airflow --agent codex # use Codex for discovery
keshro create # detect migration intent from repo + prompt
Keshro scans the project, asks follow-up questions, and creates a migration with analysis, risks, open questions, and a linked execution plan.
Use --agent claude, --agent codex, or save a default with keshro config set --agent ....
Create from other inputs
keshro create # current directory
keshro create https://github.com/org/repo # GitHub repo
keshro create https://github.com/org/repo/issues/42 # GitHub issue
keshro create https://linear.app/team/issue/PROJ-123 # Linear issue
Keshro can still create general execution plans from issues, repos, and freeform project descriptions, but migrations are the primary workflow.
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 # execute next task, then the next, then the next
keshro continue -m <migration-id> # execute a migration by migration ID
keshro continue -p <plan-id> # execute a standalone plan by plan ID
keshro continue --all # run everything — parallel agents, each in its own worktree
keshro continue --all -c 10 # cap at 10 concurrent agents
keshro continue --dry-run # preview what would run
keshro continue --no-parallel --agent codex
For migration workflows, use -m. Keshro resolves the migration ID to the linked execution plan behind the scenes. -p remains available for standalone plans and backward compatibility.
Monitor
keshro status # progress summary
keshro status --tui # live terminal dashboard
keshro migration view <id> # migration detail, risks, unknowns, linked plan
keshro explain <task-id> # decision audit trail
keshro rollback <task-id> # revert to pre-task state
Works with
Parallel execution currently requires Claude Code. Planning, migration intake, single-task resume prompts, task tracking, and the web dashboard work with any setup. If Claude is rate-limited during prompt-based flows, Keshro now suggests switching agents and supports a saved default via keshro config set --agent ....
License
MIT
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.7.tar.gz.
File metadata
- Download URL: keshro-0.1.7.tar.gz
- Upload date:
- Size: 91.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6763ee4e44c6194cc63383f1926daed631d5c2ebe5b52c997a507d7a0efa6ff
|
|
| MD5 |
a5074e485f72f89945dc750a850ea07b
|
|
| BLAKE2b-256 |
db56c00f5f437519778dda62a66d02cfb4a41d6ae36efd6c3e70634178056280
|
Provenance
The following attestation bundles were made for keshro-0.1.7.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.7.tar.gz -
Subject digest:
d6763ee4e44c6194cc63383f1926daed631d5c2ebe5b52c997a507d7a0efa6ff - Sigstore transparency entry: 1201240290
- Sigstore integration time:
-
Permalink:
jlewitt1/keshro-cli@02cb128e9232092e7fca89fddd1611f7f3df9793 -
Branch / Tag:
refs/heads/codex/cli-prompt-and-template-fixes - Owner: https://github.com/jlewitt1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@02cb128e9232092e7fca89fddd1611f7f3df9793 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file keshro-0.1.7-py3-none-any.whl.
File metadata
- Download URL: keshro-0.1.7-py3-none-any.whl
- Upload date:
- Size: 74.3 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 |
a8656d324ff2b26ef199592b84bd91c5537222af363665379ff71d6799718f1f
|
|
| MD5 |
d291405517d22d709cb0392823dec30d
|
|
| BLAKE2b-256 |
8e5d89671cca599fba296ef73e7c50c519b5d9676829b95a7f348a5df1a08078
|
Provenance
The following attestation bundles were made for keshro-0.1.7-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.7-py3-none-any.whl -
Subject digest:
a8656d324ff2b26ef199592b84bd91c5537222af363665379ff71d6799718f1f - Sigstore transparency entry: 1201240292
- Sigstore integration time:
-
Permalink:
jlewitt1/keshro-cli@02cb128e9232092e7fca89fddd1611f7f3df9793 -
Branch / Tag:
refs/heads/codex/cli-prompt-and-template-fixes - Owner: https://github.com/jlewitt1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@02cb128e9232092e7fca89fddd1611f7f3df9793 -
Trigger Event:
workflow_dispatch
-
Statement type: