sisyphi 0.1.3 → 0.1.4
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 +103 -33
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
```
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
╔═══════════════════════════════════════════════════════╗
|
|
3
|
+
║ @@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#*++**#%%@@@@@@@@@@@@@@ ║
|
|
4
|
+
║ @@@@@@@@@@@@@@@@@@@@@@@@%*====-----::::-:=%@@@@@@@@@@ ║
|
|
5
|
+
║ @@@@@@@@@@@@@@@@@@@@@%#=:.:-=------:... -%@@@@@@@@ ║
|
|
6
|
+
║ @@@@@@@@@@@@@@@@@@%%#= .....:-:.......... *%@@@@@@ ║
|
|
7
|
+
║ @@@@@@@@@@@@@@%+==-+%*: .:---::::....:.... #@@@@@@ ║
|
|
8
|
+
║ @@@@@@@@@@@@%#:. ..:. ..:-...:..... . :%@@@@@@ ║
|
|
9
|
+
║ @@@@@@@@@@@@#:.:.. :*= ............ . :%@@@@@@ ║
|
|
10
|
+
║ @@@@@@@@@@@@#--:.. -%+............... .. *%#=-:.: ║
|
|
11
|
+
║ @@@@@@@@@@%#----.:#%+.::::... ..... .... .:# ║
|
|
12
|
+
║ @@@@@@@@%+-:::.. :%@@@@@@@@%*=: ..*%@ ║
|
|
13
|
+
║ @@@@@@%*-=:..::.:-..+@@@@@@%%#=:. .. . ... *@@@ ║
|
|
14
|
+
║ @@@@#==::%@@@@@@%=:::=%*-:. .... . ... :%@@@@ ║
|
|
15
|
+
║ @@#::=#@@@@%#-.:-... .::... :#%@@@@@ ║
|
|
16
|
+
║ %=:%%%#####+:.: . ..... . . *%@@@@@@@ ║
|
|
17
|
+
║ :::.:.:::..::. . .. :#@@@@@@@ ║
|
|
18
|
+
║ %#*++===--============++===-::::::::---=====#%@@@@@@@ ║
|
|
19
|
+
║ _____ _____ _______ _______ _ _ _ _ _____ ║
|
|
20
|
+
║ / ___|_ _/ ___\ \ / / ___ \ | | | | | / ___| ║
|
|
21
|
+
║ \ `--. | | \ `--. \ V /| |_/ / |_| | | | \ `--. ║
|
|
22
|
+
║ `--. \ | | `--. \ \ / | __/| _ | | | |`--. \ ║
|
|
23
|
+
║ /\__/ /_| |_/\__/ / | | | | | | | | |_| /\__/ / ║
|
|
24
|
+
║ \____/ \___/\____/ \_/ \_| \_| |_/\___/\____/ ║
|
|
25
|
+
╚═══════════════════════════════════════════════════════╝
|
|
8
26
|
```
|
|
9
27
|
|
|
10
|
-
#
|
|
28
|
+
# sisyphus
|
|
11
29
|
|
|
12
30
|
A tmux-integrated orchestration daemon for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) multi-agent workflows.
|
|
13
31
|
|
|
@@ -38,7 +56,7 @@ You ──► sisyphus start "build auth system"
|
|
|
38
56
|
```
|
|
39
57
|
|
|
40
58
|
1. **You** run `sisyphus start` with a high-level task
|
|
41
|
-
2. **Orchestrator** decomposes it,
|
|
59
|
+
2. **Orchestrator** decomposes it, spawns agents, yields
|
|
42
60
|
3. **Agents** work in parallel tmux panes, send progress reports, submit when done
|
|
43
61
|
4. **Daemon** detects completion, respawns orchestrator with updated state
|
|
44
62
|
5. **Orchestrator** reviews reports, spawns more agents or completes the session
|
|
@@ -63,7 +81,7 @@ This gives you two commands:
|
|
|
63
81
|
|
|
64
82
|
### Claude Code Plugin (optional)
|
|
65
83
|
|
|
66
|
-
The companion plugin on the [crouton-kit](https://github.com/CaptainCrouton89/crouton-kit) marketplace adds
|
|
84
|
+
The companion plugin on the [crouton-kit](https://github.com/CaptainCrouton89/crouton-kit) marketplace adds specialized agent types and an orchestration skill with task breakdown patterns for common workflows (bug fixes, feature builds, refactors, reviews, etc.).
|
|
67
85
|
|
|
68
86
|
```bash
|
|
69
87
|
claude plugins install CaptainCrouton89/crouton-kit sisyphus
|
|
@@ -79,7 +97,9 @@ This makes `sisyphus:debug`, `sisyphus:implement`, `sisyphus:plan`, and other ag
|
|
|
79
97
|
sisyphusd
|
|
80
98
|
```
|
|
81
99
|
|
|
82
|
-
|
|
100
|
+
The daemon also supports `sisyphusd stop` and `sisyphusd restart` subcommands.
|
|
101
|
+
|
|
102
|
+
To run it persistently on macOS, use launchd — create `~/Library/LaunchAgents/com.sisyphus.daemon.plist`:
|
|
83
103
|
|
|
84
104
|
```xml
|
|
85
105
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
@@ -110,6 +130,13 @@ Then load it:
|
|
|
110
130
|
launchctl load ~/Library/LaunchAgents/com.sisyphus.daemon.plist
|
|
111
131
|
```
|
|
112
132
|
|
|
133
|
+
To unload and clean up:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
sisyphus uninstall # Unload from launchd
|
|
137
|
+
sisyphus uninstall --purge # Also remove ~/.sisyphus data
|
|
138
|
+
```
|
|
139
|
+
|
|
113
140
|
### 2. Start a session (inside tmux)
|
|
114
141
|
|
|
115
142
|
```bash
|
|
@@ -121,23 +148,19 @@ The orchestrator spawns in a yellow tmux pane and begins planning.
|
|
|
121
148
|
### 3. Watch it work
|
|
122
149
|
|
|
123
150
|
```bash
|
|
124
|
-
sisyphus status
|
|
125
|
-
sisyphus
|
|
151
|
+
sisyphus status # Check session state and agents
|
|
152
|
+
sisyphus list # List sessions in current project
|
|
153
|
+
sisyphus list --all # List sessions across all projects
|
|
126
154
|
```
|
|
127
155
|
|
|
128
|
-
Agent panes appear as the orchestrator spawns them, color-coded by
|
|
129
|
-
|
|
130
|
-
| Role | Color |
|
|
131
|
-
|------|-------|
|
|
132
|
-
| Orchestrator | Yellow |
|
|
133
|
-
| Agents | Blue, Green, Magenta, Cyan, Red, White (rotating) |
|
|
156
|
+
Agent panes appear as the orchestrator spawns them, color-coded by role. Agent types from the crouton-kit plugin define their own colors via frontmatter; otherwise agents rotate through blue, green, magenta, cyan, red, and white.
|
|
134
157
|
|
|
135
158
|
### 4. Resume or complete
|
|
136
159
|
|
|
137
160
|
```bash
|
|
138
161
|
sisyphus resume <session-id> # Resume a paused session
|
|
139
162
|
sisyphus resume <session-id> "focus on tests" # Resume with new instructions
|
|
140
|
-
sisyphus
|
|
163
|
+
sisyphus kill <session-id> # Kill a session and all agents
|
|
141
164
|
```
|
|
142
165
|
|
|
143
166
|
## CLI Reference
|
|
@@ -145,25 +168,56 @@ sisyphus list # List all sessions
|
|
|
145
168
|
```bash
|
|
146
169
|
# Session lifecycle
|
|
147
170
|
sisyphus start "task description" # Create session, launch orchestrator
|
|
148
|
-
sisyphus status
|
|
149
|
-
sisyphus list
|
|
171
|
+
sisyphus status [session-id] # Session state (defaults to active session)
|
|
172
|
+
sisyphus list [-a, --all] # List sessions (--all for cross-project)
|
|
150
173
|
sisyphus resume <id> [message] # Resume paused session
|
|
151
|
-
sisyphus kill <id> # Kill
|
|
174
|
+
sisyphus kill <id> # Kill session and all agents
|
|
175
|
+
sisyphus uninstall [--purge] [-y] # Unload daemon from launchd
|
|
176
|
+
|
|
177
|
+
# Daemon management
|
|
178
|
+
sisyphusd # Start the daemon
|
|
179
|
+
sisyphusd stop # Stop the daemon
|
|
180
|
+
sisyphusd restart # Restart the daemon
|
|
152
181
|
|
|
153
|
-
#
|
|
182
|
+
# Used by the orchestrator/agents (not typically run manually):
|
|
154
183
|
sisyphus spawn --agent-type <t> --name <n> --instruction "..."
|
|
155
|
-
sisyphus
|
|
184
|
+
sisyphus spawn --agent-type <t> --name <n> --instruction "..." --worktree
|
|
185
|
+
sisyphus yield [--prompt "next cycle context"]
|
|
156
186
|
sisyphus complete --report "summary" # Mark session done
|
|
157
187
|
sisyphus submit --report "findings" # Agent submits final report
|
|
158
188
|
sisyphus report --message "progress" # Agent sends progress update
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Both `yield`, `submit`, and `report` support stdin piping for long content:
|
|
159
192
|
|
|
160
|
-
|
|
161
|
-
sisyphus
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
193
|
+
```bash
|
|
194
|
+
echo "detailed report" | sisyphus submit
|
|
195
|
+
echo "progress update" | sisyphus report
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Git Worktree Isolation
|
|
199
|
+
|
|
200
|
+
Agents can work in isolated git worktrees to avoid conflicts when multiple agents edit files in parallel:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
sisyphus spawn --agent-type sisyphus:implement --name "auth" \
|
|
204
|
+
--instruction "implement auth module" --worktree
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
With `--worktree`, the daemon:
|
|
208
|
+
1. Creates a new branch (`sisyphus/{session}/{agent-id}`) and worktree
|
|
209
|
+
2. Symlinks `.sisyphus` and `.claude` directories into the worktree
|
|
210
|
+
3. Runs bootstrap commands from `.sisyphus/worktree.json` (copy files, install deps, etc.)
|
|
211
|
+
4. Automatically merges the agent's branch back when the agent submits
|
|
212
|
+
|
|
213
|
+
Configure worktree bootstrap in `.sisyphus/worktree.json`:
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"symlink": [".env", "node_modules"],
|
|
218
|
+
"copy": ["package.json"],
|
|
219
|
+
"init": "npm install"
|
|
220
|
+
}
|
|
167
221
|
```
|
|
168
222
|
|
|
169
223
|
## Architecture
|
|
@@ -174,7 +228,22 @@ Three layers communicating over a Unix socket (`~/.sisyphus/daemon.sock`):
|
|
|
174
228
|
- **Daemon** (`sisyphusd`) — Manages sessions, spawns/monitors tmux panes, tracks state
|
|
175
229
|
- **Shared** — Types, protocol definitions, config resolution
|
|
176
230
|
|
|
177
|
-
State
|
|
231
|
+
### State & Persistence
|
|
232
|
+
|
|
233
|
+
State is persisted as JSON at `.sisyphus/sessions/{id}/state.json` (project-relative), written atomically via temp file + rename.
|
|
234
|
+
|
|
235
|
+
Each session directory contains:
|
|
236
|
+
```
|
|
237
|
+
.sisyphus/sessions/{id}/
|
|
238
|
+
├── state.json # Session state (atomic writes)
|
|
239
|
+
├── plan.md # Orchestrator memory — outstanding work
|
|
240
|
+
├── logs.md # Orchestrator memory — session log
|
|
241
|
+
├── prompts/ # Rendered system + user prompt files
|
|
242
|
+
├── reports/ # Agent report files
|
|
243
|
+
└── context/ # Persistent artifacts (specs, plans, explorations)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
The orchestrator maintains `plan.md` and `logs.md` across cycles as persistent memory — these survive orchestrator respawns and give each new cycle continuity with previous work.
|
|
178
247
|
|
|
179
248
|
## Configuration
|
|
180
249
|
|
|
@@ -183,7 +252,8 @@ Config is layered: project (`.sisyphus/config.json`) overrides global (`~/.sisyp
|
|
|
183
252
|
```json
|
|
184
253
|
{
|
|
185
254
|
"model": "sonnet",
|
|
186
|
-
"pollIntervalMs":
|
|
255
|
+
"pollIntervalMs": 1000,
|
|
256
|
+
"tmuxSession": "my-session"
|
|
187
257
|
}
|
|
188
258
|
```
|
|
189
259
|
|