A powerful CLI tool for seamless parallel development with Git worktrees
ๆฅๆฌ่ช โข Installation โข Why Phantom? โข Basic Usage โข Documentation
Phantom is a powerful CLI tool that dramatically boosts your development productivity by making Git worktrees simple and intuitive. Run multiple tasks in isolated environments simultaneously and achieve true multitask development. Built for the next generation of parallel development workflows, including AI-powered coding with multiple agents.
- ๐ Simple worktree management - Create and manage Git worktrees with intuitive commands
- ๐ True multitasking - Create separate working directories per branch and run multiple tasks simultaneously
- ๐ฏ Execute commands from anywhere - Run commands in any worktree with
phantom exec <worktree> <command>
- ๐ช Terminal multiplexer integration - Built-in support for tmux and kitty terminal
- ๐ Interactive selection with fzf - Use built-in fzf option for worktree selection
- ๐ฎ Shell completion - Full autocomplete support for Fish, Zsh, and Bash
- โก Zero runtime dependencies - Single static binary
- ๐ฆ Memory safe - Written in Rust for reliability and performance
git clone https://github.com/shuymn/phantom-rs.git
cd phantom-rs
cargo build --release
sudo cp target/release/phantom /usr/local/bin/
cargo install --git https://github.com/shuymn/phantom-rs
Download pre-built binaries from the Releases page.
Git worktrees are powerful but require manual management of paths and branches. Also, navigating between multiple worktrees is cumbersome. Phantom eliminates these problems:
# Without Phantom
git worktree add -b feature-awesome ../project-feature-awesome origin/main
cd ../project-feature-awesome
# With Phantom
phantom create feature-awesome --shell
When you run phantom create feature-awesome
, a new Git worktree named feature-awesome
is created in .git/phantom/worktrees/
.
All worktrees created with phantom are centrally managed in this location.
your-project/ # Git repository
โโโ .git/
โ โโโ phantom/
โ โโโ worktrees/ # Phantom-managed directory
โ โโโ feature-awesome/ # branch name = worktree name
โ โโโ bugfix-login/ # another worktree
โ โโโ hotfix-critical/ # yet another worktree
โโโ ...
This convention means you never need to remember worktree paths - just use the branch name for easy worktree operations.
Phantom provides perfect functionality as a command-line tool. Developers feel the trust and comfort of flying first class.
Phantom supports full shell completion for fish and zsh. Use tab key to complete commands and worktree names.
Phantom supports both tmux and kitty terminal for advanced window management. This allows you to manage multiple work environments simultaneously.
tmux Integration:
# Create and open worktree in new window
phantom create feature-x --tmux
# Create with split panes
phantom create feature-y --tmux-vertical
phantom create feature-z --tmux-horizontal
# Open existing worktrees in tmux
phantom shell feature-x --tmux
phantom shell feature-y --tmux-v
Kitty Integration:
# Open in new tab
phantom shell feature-xyz --kitty
# Split vertically
phantom shell feature-xyz --kitty-vertical
# Execute command in horizontal split
phantom exec feature-xyz --kitty-horizontal npm run dev
Phantom works seamlessly with editors like VS Code and Cursor. You can specify an editor to open worktrees.
# Open with VS Code
phantom create feature --exec "code ."
# Or open existing worktree
phantom exec feature code .
# Open with Cursor
phantom create feature --exec "cursor ."
phantom exec feature cursor .
Interactive search with fzf allows quick worktree selection.
# Open shell with fzf selection
phantom shell --fzf
# Delete with fzf selection
phantom delete --fzf
phantom create feature-awesome
phantom list
phantom shell featu
7545
re-awesome
# Start development work
# Exit the shell when done
exit
phantom exec feature-awesome {command to run}
# Example: phantom exec feature-awesome npm run build
phantom delete feature-awesome
- Architecture - System design and architecture
- Testing Guide - Testing strategies and guidelines
- Error Handling - Error handling patterns
- Troubleshooting - Common issues and solutions
Contributions are welcome! See our Contributing Guide for:
- Development setup
- Code style guidelines
- Testing requirements
- Pull request process
phantom-rs is an unofficial Rust port created as a personal learning project. While it aims to provide similar functionality to the original phantom:
- No guarantee of feature parity with the original TypeScript version
- No promise of identical behavior for equivalent features
- Breaking changes may occur as the project evolves
- Use at your own risk in production environments
This project serves as both a functional tool and a Rust learning exercise.
MIT License - see LICENSE
phantom-rs is a Rust port of the original phantom by @aku11i. The demonstration GIFs and core functionality remain faithful to the original implementation.