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
Copy file name to clipboardExpand all lines: README.md
+17-15Lines changed: 17 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,26 +4,26 @@
4
4
5
5
Loop prompts into tmux panes with triggers, delays, and branching rules. Built to automate iterative workflows for code assistants running in tmux (OpenCode, Codex, Claude Code).
6
6
7
-
## Why loopmux
7
+
## ✨ Why loopmux
8
8
loopmux watches tmux output and injects prompts when a trigger matches. You can chain flows, add pre/post blocks, and control delays so your iterations feel deliberate instead of spammy.
9
9
10
-
## Features
10
+
## ✨ Features
11
11
- YAML config with `pre`, `prompt`, `post` blocks
12
12
- Ordered rule evaluation with `first_match`, `priority`, or `multi_match`
13
13
- Include/exclude match criteria (regex/contains/starts_with)
14
14
- Delay strategies: fixed, range, jitter, backoff
15
15
- Mid-flight loop runner (tmux capture + send)
16
16
- Structured logging (text or JSONL)
17
17
18
-
## Supported Code Assistants
18
+
## 🤝 Supported Code Assistants
19
19
loopmux is tmux-first and backend-agnostic. If your assistant runs in a tmux pane, loopmux can target it.
20
20
21
21
Example tmux targets:
22
22
- OpenCode: `ai:5.0`
23
23
- Codex: `codex:1.0`
24
24
- Claude Code: `claude:2.0`
25
25
26
-
## Install
26
+
## 📦 Install
27
27
28
28
### Homebrew
29
29
```bash
@@ -39,34 +39,36 @@ cargo build --release
39
39
./target/release/loopmux --help
40
40
```
41
41
42
-
## Quick Start
42
+
## ⚡ Quick Start
43
43
44
-
1) Create a config:
44
+
If you just want to try it, this is the fastest path.
45
+
46
+
1) 🧩 Create a config:
45
47
```bash
46
48
loopmux init --output loop.yaml
47
49
```
48
50
49
-
2) Update the tmux target and rules in `loop.yaml`.
51
+
2)🎯 Update the tmux target and rules in `loop.yaml`.
50
52
51
-
3) Validate config:
53
+
3)✅ Validate config:
52
54
```bash
53
55
loopmux validate --config loop.yaml
54
56
```
55
57
56
-
4) Run the loop:
58
+
4)▶️ Run the loop:
57
59
```bash
58
60
loopmux run --config loop.yaml
59
61
```
60
62
61
-
### Quick Run (no YAML)
63
+
### ⚡ Quick Run (no YAML)
62
64
```bash
63
65
loopmux run -t ai:5.0 -n 5 \
64
66
--prompt "Do the next iteration." \
65
67
--trigger "Concluded|What is next" \
66
68
--once
67
69
```
68
70
69
-
## Configuration
71
+
## 🧭 Configuration
70
72
71
73
### Minimal example
72
74
```yaml
@@ -146,7 +148,7 @@ logging:
146
148
- `jitter`: range plus +/- jitter factor (0.0..1.0).
147
149
- `backoff`: exponential backoff using `base`, `factor`, `max`.
148
150
149
-
## CLI
151
+
## 🧰 CLI
150
152
151
153
```text
152
154
loopmux run --config loop.yaml [--target ai:5.0] [--iterations 10]
Copy file name to clipboardExpand all lines: src/main.rs
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ enum Command {
39
39
40
40
#[derive(Debug,Parser)]
41
41
#[command(
42
-
after_help = "Lean mode (no YAML):\n loopmux run -t ai:5.0 -n 5 --prompt \"Do the next iteration.\" --trigger \"Concluded|What is next\" --once\n loopmux run -t ai:5.0 -n 5 --prompt \"Do the next iteration.\" --trigger \"Concluded|What is next\" --exclude \"PROD\"\n\nLean flags:\n --prompt Required prompt body\n --trigger Required regex to match tmux output\n --exclude Optional regex to skip matches\n --pre Optional pre block\n --post Optional post block\n--once Send a single prompt and exit\n --tail N Capture-pane lines (default 1)\n --poll N Poll interval in seconds (default 5)\n --duration D Run time limit (e.g. 5m, 2h)\n--single-line Update status output on one line\n\nDuration units: s, m, h, d, w, mon (30d), y (365d)\n\nCommon flags:\n -t, --target tmux target session:window.pane\n -n, --iterations number of iterations\n"
42
+
after_help = "Examples:\n loopmux run -t ai:5.0 -n 5 --prompt \"Do the next iteration.\" --trigger \"Concluded|What is next\" --once\n loopmux run -t ai:5.0 -n 5 --prompt \"Do the next iteration.\" --trigger \"Concluded|What is next\" --exclude \"PROD\"\n loopmux run --config loop.yaml --duration 2h\n\nDefaults:\n tail=1 (last non-blank line)\npoll=5s\n\nDuration units: s, m, h, d, w, mon (30d), y (365d)\n"
0 commit comments