dmux 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -18
- package/dist/DmuxApp.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dmux - AI-Powered tmux Development Sessions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
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.
|
|
4
5
|
|
|
5
6
|
## Features
|
|
6
7
|
|
|
@@ -25,8 +26,8 @@ cmux is a powerful tmux pane manager that creates parallel development environme
|
|
|
25
26
|
|
|
26
27
|
```bash
|
|
27
28
|
# Clone the repository
|
|
28
|
-
git clone <repository-url> ~/
|
|
29
|
-
cd ~/
|
|
29
|
+
git clone <repository-url> ~/dmux
|
|
30
|
+
cd ~/dmux
|
|
30
31
|
|
|
31
32
|
# Install dependencies
|
|
32
33
|
npm install
|
|
@@ -42,16 +43,16 @@ Choose one of these methods:
|
|
|
42
43
|
#### Option A: Symlink (Recommended)
|
|
43
44
|
```bash
|
|
44
45
|
# Make the script executable
|
|
45
|
-
chmod +x ~/
|
|
46
|
+
chmod +x ~/dmux/dmux
|
|
46
47
|
|
|
47
48
|
# Create symlink in a directory that's in your PATH
|
|
48
|
-
sudo ln -s ~/
|
|
49
|
+
sudo ln -s ~/dmux/dmux /usr/local/bin/dmux
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
#### Option B: Add to PATH
|
|
52
53
|
```bash
|
|
53
54
|
# Add this line to your ~/.bashrc or ~/.zshrc
|
|
54
|
-
export PATH="$PATH:$HOME/
|
|
55
|
+
export PATH="$PATH:$HOME/dmux"
|
|
55
56
|
|
|
56
57
|
# Reload your shell configuration
|
|
57
58
|
source ~/.bashrc # or ~/.zshrc
|
|
@@ -59,7 +60,7 @@ source ~/.bashrc # or ~/.zshrc
|
|
|
59
60
|
|
|
60
61
|
#### Option C: NPM Global Link
|
|
61
62
|
```bash
|
|
62
|
-
# From the
|
|
63
|
+
# From the dmux directory
|
|
63
64
|
npm link
|
|
64
65
|
```
|
|
65
66
|
|
|
@@ -78,14 +79,14 @@ Get your API key from [OpenRouter](https://openrouter.ai/).
|
|
|
78
79
|
|
|
79
80
|
### Basic Usage
|
|
80
81
|
|
|
81
|
-
1. **Start
|
|
82
|
+
1. **Start dmux in your project**
|
|
82
83
|
```bash
|
|
83
84
|
cd /path/to/your/project
|
|
84
|
-
|
|
85
|
+
dmux
|
|
85
86
|
```
|
|
86
87
|
|
|
87
88
|
2. **Create a new development pane**
|
|
88
|
-
- Press `n` or select "+ New
|
|
89
|
+
- Press `n` or select "+ New dmux pane"
|
|
89
90
|
- Enter an optional prompt like "fix authentication bug"
|
|
90
91
|
- Claude launches in a new pane with your prompt
|
|
91
92
|
|
|
@@ -104,18 +105,18 @@ Get your API key from [OpenRouter](https://openrouter.ai/).
|
|
|
104
105
|
|-----|--------|
|
|
105
106
|
| `↑/↓` | Navigate pane list |
|
|
106
107
|
| `Enter` or `j` | Jump to selected pane |
|
|
107
|
-
| `n` | Create new
|
|
108
|
+
| `n` | Create new dmux pane |
|
|
108
109
|
| `m` | Merge worktree to main |
|
|
109
110
|
| `x` | Close selected pane |
|
|
110
|
-
| `q` | Quit
|
|
111
|
+
| `q` | Quit dmux interface |
|
|
111
112
|
| `ESC` | Cancel current dialog |
|
|
112
113
|
|
|
113
114
|
## Example Workflow
|
|
114
115
|
|
|
115
116
|
```bash
|
|
116
|
-
# Start
|
|
117
|
+
# Start dmux in your project
|
|
117
118
|
cd ~/projects/my-app
|
|
118
|
-
|
|
119
|
+
dmux
|
|
119
120
|
|
|
120
121
|
# Create a pane for a new feature
|
|
121
122
|
# Press 'n', enter: "add user dashboard"
|
|
@@ -134,7 +135,7 @@ cmux
|
|
|
134
135
|
|
|
135
136
|
## How It Works
|
|
136
137
|
|
|
137
|
-
1. **Session Management**: Each project gets its own tmux session (`
|
|
138
|
+
1. **Session Management**: Each project gets its own tmux session (`dmux-projectname`)
|
|
138
139
|
2. **Worktree Creation**: New panes create git worktrees in sibling directories
|
|
139
140
|
3. **Branch Management**: Automatic branch creation with AI-generated names
|
|
140
141
|
4. **Claude Integration**: Launches Claude with `--accept-edits` for immediate coding
|
|
@@ -142,7 +143,7 @@ cmux
|
|
|
142
143
|
|
|
143
144
|
## Project Structure
|
|
144
145
|
|
|
145
|
-
When you create panes,
|
|
146
|
+
When you create panes, dmux organizes your work like this:
|
|
146
147
|
|
|
147
148
|
```
|
|
148
149
|
my-project/ # Your main repository
|
|
@@ -189,7 +190,7 @@ Press `Ctrl+L` in the affected pane to clear the screen.
|
|
|
189
190
|
|
|
190
191
|
## tmux Configuration for Beginners
|
|
191
192
|
|
|
192
|
-
While
|
|
193
|
+
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.
|
|
193
194
|
|
|
194
195
|
### Recommended tmux Configuration
|
|
195
196
|
|
package/dist/DmuxApp.js
CHANGED
|
@@ -162,7 +162,7 @@ const DmuxApp = ({ dmuxDir, panesFile, projectName, sessionName }) => {
|
|
|
162
162
|
};
|
|
163
163
|
const updatedPanes = [...panes, newPane];
|
|
164
164
|
await fs.writeFile(panesFile, JSON.stringify(updatedPanes, null, 2));
|
|
165
|
-
// Switch back to the original pane (where
|
|
165
|
+
// Switch back to the original pane (where dmux was running)
|
|
166
166
|
execSync(`tmux select-pane -t '${originalPaneId}'`, { stdio: 'pipe' });
|
|
167
167
|
// Re-launch dmux in the original pane
|
|
168
168
|
execSync(`tmux send-keys -t '${originalPaneId}' 'dmux' Enter`, { stdio: 'pipe' });
|