Skip to content

dgzlopes/tulip

Repository files navigation

tulip

tulip

⚠️ This tool is purposely built for myself and how I develop things at Grafana Labs (e.g. using Graft)

Run multiple Claude Code sessions in parallel on a single repo, each isolated in its own git worktree.

  • Sessions survive terminal restarts and are automatically resumed.
  • Jump into any project's shell, preview live changes with Graft, or commit and push from a single command.
  • Fully isolated from your personal tmux — tulip runs its own tmux server.
tulip.mov

Requirements

Install

curl -fsSL https://raw.githubusercontent.com/dgzlopes/tulip/main/install.sh | bash

Usage

tulip          # open the TUI
tulip reset    # wipe all projects, sessions, and worktrees

TUI keys

Key Action
n New project
d Delete selected project and worktree
↑↓ / j k Navigate
Open project action menu
? Help
q Quit

Status indicators

Dot Meaning
grey No uncommitted changes
green Uncommitted changes in worktree
red Worktree error (e.g. missing path)
Icon Meaning
🐝 (green) Yarn watch is running
🐝 failed (red) Watch exited unexpectedly

Project commands

Interact with projects by ID or branch name from any terminal:

tulip <id|branch>                # interactive picker (arrow keys)
tulip claude <id|branch>         # attach to the Claude session
tulip shell <id|branch>          # open a shell in the worktree
tulip graft <id|branch>          # start yarn watch for live preview (switches active graft)
tulip graft-debug <id|branch>    # attach to the graft watch output
tulip vscode <id|branch>         # open the worktree in VS Code
tulip publish <id|branch> <msg>  # stage all, commit (signed), and push

The action menu also provides: difit (visual diff, requires difit) and open-pr (open PR in browser).

License

MIT

About

A tiny Claude Code orchestrator

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors