My own workflow to use multiple Claude Code sessions & projects.
If you juggle issues across multiple repos and use Claude Code to do the actual coding, Marshroom is the glue that makes them talk to each other. You pick issues in an app, Claude Code picks them up with full context, and a shared state file keeps everything in sync β from branch creation to PR merge.
The problem: you have GitHub issues scattered across repos, you're using Claude Code as your coding agent, and the ceremony of "find issue, create branch, load context, push, make PR, close issue" is death by a thousand clicks. Multiple repos and multiple agent sessions drove me crazy due to the context switching.
Marshroom is three things that share one JSON file (~/.config/marshroom/state.json):
- A macOS menu bar app β browse issues across repos, add them to a queue, create new issues with AI-generated titles
- A CLI tool (
marsh) β tmux HUD integration, status management, IDE launcher (tmux shortcut) - Claude Code skills β
/start-issue&/create-prautomate the branch and PR lifecycle
The state file is the bridge. The app writes to it, the CLI reads and writes to it, the skills read from it. Everyone stays in sync through atomic file operations.
The whole workflow is five steps: Draft, Inject, Execute, Review, Ship.
1. Draft β Open Marshroom. Type a rough idea like "users can't log in with SSO when MFA is enabled" into the issue composer. Hit Cmd+Enter β Claude Haiku turns it into a clean title. Create the issue, add it to your queue. Status: soon.
2. Inject β In your terminal, inside the project repo:
/start-issue 42
This checks out main, pulls, creates HotFix/#42 (or Feature/#42 depending on the title), injects the full issue body into context, and sets status to running. Your tmux HUD updates to show π #42 Fix SSO login [Running].
3. Execute β Claude Code works on the issue with full context. You code alongside it or let it drive.
4. Review β When the work is done:
/create-pr
This pushes the branch, creates a PR with Closes #42 in the body, includes the original issue description for reviewer context, and sets status to pending. Pop open your IDE with Prefix+Ctrl-p (PyCharm) or Prefix+Ctrl-v (VSCode) in tmux to review.
5. Ship β Merge the PR on GitHub. The Marshroom poller detects the issue closure and automatically marks it completed, then cleans it out of your queue.
| Requirement | Notes |
|---|---|
| macOS 14.0+ (Sonoma) | Needed for @Observable and MenuBarExtra |
| GitHub PAT | repo scope. Generate at github.com/settings/tokens |
| Anthropic API key | For Smart Ingestion. Get at console.anthropic.com |
gh CLI |
brew install gh && gh auth login |
jq |
brew install jq |
| tmux | brew install tmux |
| Claude Code | npm install -g @anthropic-ai/claude-code |
git clone https://github.com/vkehfdl1/Marshroom.git && cd Marshroom
./install.shThis installs the macOS app, symlinks the marsh CLI, sets up the tmux plugin (including tpm), and prints instructions for Claude Code skills. Run ./install.sh --check to verify dependencies without making changes, or pick individual components:
./install.sh --app # macOS app only
./install.sh --cli # marsh CLI only
./install.sh --tmux # tmux plugin only
./install.sh --skills # show per-project skills instructions
./install.sh --cli --tmux # combine flagsClick to expand manual installation steps
xcodebuild -project Marshroom/Marshroom.xcodeproj \
-scheme Marshroom \
-configuration Debug build \
CODE_SIGN_IDENTITY="-" \
CODE_SIGNING_ALLOWED=YESThe built app ends up in build/Build/Products/Debug/Marshroom.app.
Add the cli/ directory to your PATH:
# In ~/.zshrc or ~/.bashrc
export PATH="$PATH:/path/to/Marshroom/cli"Verify with marsh help.
Install tpm if you haven't, then add to ~/.tmux.conf:
set -g @plugin 'vkehfdl1/Marshroom'
set -g status-right '#{marshroom_status} | %H:%M' # Optional
# Keep at the very bottom
run '~/.tmux/plugins/tpm/tpm'Press prefix + I to install the plugin. This gives you the status bar HUD, per-pane borders, and IDE keybindings (Prefix+Ctrl-p for PyCharm, Prefix+Ctrl-v for VSCode).
In each project you want to use with Marshroom:
npx skills add https://github.com/vkehfdl1/Marshroom/tree/main/marshroom-skills- Open Marshroom.app β enter your GitHub PAT on the onboarding screen
- Add your repos (search by
owner/repo) - Optionally configure your Anthropic API key in Settings β AI for Smart Ingestion
- Add issues to your cart and start working
- User Guide β full installation walkthrough, GOAT workflow details, CLI reference, troubleshooting
- Internal Architecture β technical deep dive for contributors and AI agents
MIT
The project name Marshroom is inspired by amazing and talented singer Olivia & Danielle Marsh sistersπ»