You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dmux makes running parallel development agents easy like Claude Code. It's a simple tool that creates a new tmux pane, a new git worktree, and launches a Claude Code agent in that worktree. The main dmux tool then lets you merge
4
-
the open panes back into your main branch easily, close failed experiments, and spin up more agents quickly.
3
+
Tools for running agents in parallel are too complex. `dmux` makes running parallel development agents like Claude Code very simple. It's a simple tool that creates a new tmux pane, a new git worktree, and launches a Claude Code agent in that worktree, with AI powered branch naming and commit messages.
4
+
5
+
`dmux` lets you merge the open panes back into your main branch easily, close failed experiments, and spin up more agents quickly.
5
6
6
7
## Features
7
8
@@ -22,49 +23,13 @@ the open panes back into your main branch easily, close failed experiments, and
22
23
23
24
## Installation
24
25
25
-
### 1. Clone and Build
26
-
27
-
```bash
28
-
# Clone the repository
29
-
git clone <repository-url>~/dmux
30
-
cd~/dmux
31
-
32
-
# Install dependencies
33
-
npm install
34
-
35
-
# Build the project
36
-
npm run build
37
-
```
38
-
39
-
### 2. Global Installation
40
-
41
-
Choose one of these methods:
26
+
### 1. Install dmux
42
27
43
-
#### Option A: Symlink (Recommended)
44
28
```bash
45
-
# Make the script executable
46
-
chmod +x ~/dmux/dmux
47
-
48
-
# Create symlink in a directory that's in your PATH
49
-
sudo ln -s ~/dmux/dmux /usr/local/bin/dmux
29
+
npm install -g dmux
50
30
```
51
31
52
-
#### Option B: Add to PATH
53
-
```bash
54
-
# Add this line to your ~/.bashrc or ~/.zshrc
55
-
export PATH="$PATH:$HOME/dmux"
56
-
57
-
# Reload your shell configuration
58
-
source~/.bashrc # or ~/.zshrc
59
-
```
60
-
61
-
#### Option C: NPM Global Link
62
-
```bash
63
-
# From the dmux directory
64
-
npm link
65
-
```
66
-
67
-
### 3. Configure AI Features (Optional)
32
+
### 2. Configure AI Features (Optional)
68
33
69
34
For AI-powered branch naming and commit messages:
70
35
@@ -111,11 +76,13 @@ Get your API key from [OpenRouter](https://openrouter.ai/).
111
76
|`q`| Quit dmux interface |
112
77
|`ESC`| Cancel current dialog |
113
78
114
-
## Example Workflow
79
+
## Project structure
80
+
81
+
When using git worktrees, its helpful to have your project's main source code in a "main" directory. Worktrees are then checked out as siblings of the main directory.
115
82
116
83
```bash
117
84
# Start dmux in your project
118
-
cd~/projects/my-app
85
+
cd~/projects/my-app/main
119
86
dmux
120
87
121
88
# Create a pane for a new feature
@@ -141,60 +108,13 @@ dmux
141
108
4.**Claude Integration**: Launches Claude with `--accept-edits` for immediate coding
142
109
5.**Smart Merging**: Auto-commits, generates messages, and cleans up worktrees
143
110
144
-
## Project Structure
145
-
146
-
When you create panes, dmux organizes your work like this:
147
-
148
-
```
149
-
my-project/ # Your main repository
150
-
├── .git/
151
-
└── src/
152
-
153
-
my-project-fix-auth/ # Worktree for "fix authentication"
154
-
├── .git # Worktree reference
155
-
└── src/ # Independent working copy
156
-
157
-
my-project-add-feature/ # Worktree for "add new feature"
158
-
├── .git
159
-
└── src/
160
-
```
161
-
162
-
## Troubleshooting
163
-
164
-
### Claude command not found
165
-
Install Claude Code CLI from [Claude Code documentation](https://claude.ai/code).
166
-
167
-
### API features not working
168
-
```bash
169
-
# Check your API key
170
-
echo$OPENROUTER_API_KEY
171
-
172
-
# If missing, add to your shell config
173
-
export OPENROUTER_API_KEY="your-key"
174
-
```
175
-
176
-
### Panes not appearing
177
-
- Ensure tmux version 3.0+: `tmux -V`
178
-
- Check git version 2.20+: `git --version`
179
-
- Verify write permissions in parent directory
180
-
181
-
### Screen artifacts
182
-
Press `Ctrl+L` in the affected pane to clear the screen.
183
-
184
-
## Tips
185
-
186
-
-**Use descriptive prompts** for better AI-generated branch names
187
-
-**Merge frequently** to keep your main branch updated
188
-
-**One feature per pane** for clean separation of work
189
-
-**Close unused panes** with `x` to keep the interface clean
190
-
191
111
## tmux Configuration for Beginners
192
112
193
113
While dmux handles most tmux operations automatically, having a good tmux configuration can enhance your experience. This isn't the place to learn tmux comprehensively, but here's a helpful configuration to get you started.
194
114
195
-
### Recommended tmux Configuration
115
+
### A simple tmux configuration
196
116
197
-
Add this to your `~/.tmux.conf` file:
117
+
If you aren't a heavy tmux user, consider creating this to your `~/.tmux.conf` file:
198
118
199
119
```bash
200
120
# Visual distinction between active and inactive panes
@@ -239,11 +159,3 @@ Or start a new tmux session for the changes to take effect.
239
159
- Git ≥ 2.20
240
160
- Claude Code CLI
241
161
- OpenRouter API key (optional)
242
-
243
-
## Support
244
-
245
-
For issues or questions, please check the [full documentation](CLAUDE.md) or open an issue on GitHub.
0 commit comments