Configuration¶
File locations¶
Path |
Purpose |
|---|---|
|
Per-repo config directory (created by |
|
Per-repo configuration |
|
Temporary plan storage (5-minute TTL, auto-cleaned) |
|
Global user configuration |
|
MCP server config (created by |
|
Paths to symlink into new worktrees |
Configuration options¶
Configuration is loaded from YAML files. Per-repo config (.jetsam/config.yaml)
overrides global config (~/.config/jetsam/config.yaml).
# .jetsam/config.yaml
# Platform detection: auto | github | gitlab
platform: auto
# Default merge strategy for finish: squash | merge | rebase
merge_strategy: squash
# Ship default behavior: pr | merge
ship_default: pr
# Create PRs as drafts by default
pr_draft: false
# Branch name prefix for start verb
branch_prefix: ""
# Delete branch after merge in finish
delete_on_merge: true
# Automatically push after save: true | false
auto_push: false
# Worktree usage: auto | always | never
worktree: auto
# Commit message strategy: heuristic | prompt | llm
commit_message: heuristic
Option reference¶
platformPlatform to use for PR/issue operations. Set to
auto(default) to detect from the remote URL. Set explicitly if auto-detection fails.merge_strategyDefault strategy for
finish. One ofsquash(default),merge, orrebase.ship_defaultWhat
shipdoes by default.prcreates/updates a PR,mergealso merges it.pr_draftWhen
true, PRs are created as drafts by default.branch_prefixPrefix prepended to branch names created by
start. For example,feature/would create branches likefeature/42-fix-parser.delete_on_mergeWhether
finishdeletes the branch after merging. Default:true.auto_pushWhen
true,saveautomatically pushes after committing. Default:false.worktreeWorktree mode for
start.auto(default) uses branches normally.alwayscreates worktrees by default.neverdisables worktree creation.commit_messageStrategy for generating commit messages.
heuristic(default) builds a message from the staged changes.promptasks interactively.llmdelegates to an LLM. Reserved — not yet implemented.
Platform support¶
Jetsam auto-detects your platform from the git remote URL:
The platform CLI must be installed and authenticated. Jetsam calls these tools as subprocesses and parses their output.
Verifying platform setup¶
# Check if platform is detected
jetsam status
# Look for "platform" in JSON output:
jetsam --json status | python -m json.tool
JSON output¶
All commands support JSON output via the global --json flag:
jetsam --json status
jetsam --json save -m "fix"
jetsam --json ship --dry-run
This is useful for scripting and for the MCP server interface.