Skip to main content

Git workflow accelerator for humans and agents

Project description

jetsam

PyPI Docs CI

Git workflow accelerator for humans and agents.

Jetsam wraps common multi-step git workflows into single, plannable commands. Every action generates a preview plan before executing, making it safe for interactive use and ideal for AI agent integration via MCP.

Documentation | PyPI | GitHub

Installation

pip install jetsam
# or
uv pip install jetsam

Quick start

# Initialize in a repo
jetsam init

# Check status
jetsam status

# Stage + commit
jetsam save -m "fix parser bug"

# Full pipeline: stage → commit → push → PR
jetsam ship -m "add dark mode"

# Tag and release
jetsam release v0.1.0 --title "First release"

Every command shows a plan and asks for confirmation before executing. Use --dry-run to preview without executing, or --execute to skip the prompt.

Verb reference

Verb Alias Description
status s Show repository state snapshot
save v Stage and commit with smart defaults
sync y Fetch, rebase/merge, and push
ship h Full pipeline: stage, commit, push, open PR
switch w Switch branches with automatic stash/unstash
start b Start work on an issue or feature (branch or worktree)
finish f Merge PR and clean up branch
tidy t Prune merged branches and stale remote refs
release r Tag, push tag, and create platform release
log l Condensed commit history
diff d Show diff with smart defaults
pr p Pull request operations (view/create/list)
prs List PRs with check and review status
checks c Show CI check status
issues i List issues from project tracker
init Initialize jetsam in a repo

Common flags

All workflow verbs (save, sync, ship, switch, start, finish, tidy, release) support:

  • --dry-run — show plan without executing
  • --execute — execute without prompting
  • --json (global) — output as JSON

Key verb options

save [-m MESSAGE] [--include GLOB] [--exclude GLOB] [FILES...]

ship [-m MESSAGE] [--to BRANCH] [--no-pr] [--merge] [--include GLOB] [--exclude GLOB] [FILES...]

sync [--strategy rebase|merge]

switch BRANCH [-c/--create]

start TARGET [-w/--worktree] [--base BRANCH] [--prefix PREFIX]

finish [--strategy squash|merge|rebase] [--no-delete]

release TAG [--title TITLE] [--notes NOTES] [--draft]

MCP integration

Jetsam includes a built-in MCP server for agent integration:

# Full agent setup: MCP config + routing instructions + warning hooks
jetsam init --mcp --agents claude --hooks claude

# Or just the MCP server config
jetsam init --mcp

This creates .mcp.json for automatic MCP discovery, CLAUDE.md with a routing table that teaches agents to use jetsam tools instead of raw git/gh, and warning hooks that alert agents when they bypass jetsam.

The MCP tools mirror CLI verbs with a plan → confirm flow:

  1. Call a workflow tool (e.g. save, ship, release) — returns a plan
  2. Optionally call modify_plan to adjust the plan
  3. Call confirm to execute, or cancel to discard

Additional MCP tools for PR interaction: pr_comment, pr_review, pr_comments, issue_close.

Shell aliases

Install short aliases for common operations:

jetsam init --aliases

This adds the following aliases to your shell config:

Alias Command
jt jetsam
jts jetsam status
jtv jetsam save
jty jetsam sync
jth jetsam ship
jtp jetsam ship --pr
jtw jetsam switch
jtl jetsam log
jtd jetsam diff

Worktree support

Jetsam supports git worktrees for parallel development:

# Start work in a new worktree
jetsam start my-feature --worktree

# Finish and clean up the worktree
jetsam finish

Shared paths

Create a .git-worktree-shared file in the repo root to automatically symlink paths into new worktrees (one path per line):

.env
node_modules
.venv

Lines starting with # are ignored.

Configuration

Jetsam stores its configuration in .jetsam/ at the repo root:

Path Purpose
.jetsam/ Config directory (created by init)
.jetsam/plans/ Temporary plan storage (5-minute TTL)
.mcp.json MCP server config (created by init --mcp)
.git-worktree-shared Paths to symlink into worktrees

Platform support

Jetsam auto-detects GitHub and GitLab from remote URLs:

Git pass-through: any unrecognized command is forwarded to git, so jetsam log --oneline works exactly like git log --oneline.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jetsam_mcp-1.1.0.tar.gz (126.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jetsam_mcp-1.1.0-py3-none-any.whl (63.3 kB view details)

Uploaded Python 3

File details

Details for the file jetsam_mcp-1.1.0.tar.gz.

File metadata

  • Download URL: jetsam_mcp-1.1.0.tar.gz
  • Upload date:
  • Size: 126.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jetsam_mcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 611dd7d1f5621f9df17666828f8176af6f1294a194c67f127462d1822ed89d05
MD5 227def4b4768759f991e3f266507a874
BLAKE2b-256 023374da70f03d68f0a7c3ef6a5fcb69b950ba16d0256276a0fe0476dcaada0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jetsam_mcp-1.1.0.tar.gz:

Publisher: publish.yml on teaguesterling/jetsam

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jetsam_mcp-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: jetsam_mcp-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 63.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jetsam_mcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8199dd2cd3ec49d397b8d47638dfd31f9fb04569386eba030bc4ee59a157d9b9
MD5 f73cd3a798a83259aa0dc6666ccbe066
BLAKE2b-256 a2176985c15b59811cf15b3e92a1443d11d4fd0d097d910651d7e8d0311d1b49

See more details on using hashes here.

Provenance

The following attestation bundles were made for jetsam_mcp-1.1.0-py3-none-any.whl:

Publisher: publish.yml on teaguesterling/jetsam

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page