sisyphi 1.1.18 → 1.1.19
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 +195 -75
- package/dist/chunk-36VJ7ZBD.js +1898 -0
- package/dist/chunk-36VJ7ZBD.js.map +1 -0
- package/dist/{chunk-C2XKXERJ.js → chunk-M6Z3KHOH.js} +159 -46
- package/dist/chunk-M6Z3KHOH.js.map +1 -0
- package/dist/chunk-O4ZHSQ5R.js +544 -0
- package/dist/chunk-O4ZHSQ5R.js.map +1 -0
- package/dist/chunk-P2HHTIPM.js +478 -0
- package/dist/chunk-P2HHTIPM.js.map +1 -0
- package/dist/{chunk-TMBAVPHH.js → chunk-PNDCVKBN.js} +73 -1
- package/dist/chunk-PNDCVKBN.js.map +1 -0
- package/dist/chunk-SVGIQ2G4.js +1076 -0
- package/dist/chunk-SVGIQ2G4.js.map +1 -0
- package/dist/cli.js +4405 -892
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +4340 -1990
- package/dist/daemon.js.map +1 -1
- package/dist/{paths-XRDEEJ5R.js → paths-JXFLR5BN.js} +38 -2
- package/dist/single-ask-6G4BIVY2.js +132 -0
- package/dist/single-ask-6G4BIVY2.js.map +1 -0
- package/dist/templates/CLAUDE.md +1 -56
- package/dist/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/dist/templates/agent-plugin/agents/debug.md +43 -6
- package/dist/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/explore.md +28 -1
- package/dist/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/implementor.md +94 -0
- package/dist/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/operator.md +43 -1
- package/dist/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/dist/templates/agent-plugin/agents/plan.md +176 -86
- package/dist/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/dist/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/dist/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/dist/templates/agent-plugin/agents/problem.md +334 -79
- package/dist/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/dist/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/dist/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/dist/templates/agent-plugin/agents/research-lead.md +184 -0
- package/dist/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/dist/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/dist/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/dist/templates/agent-plugin/agents/review/quality.md +20 -6
- package/dist/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/dist/templates/agent-plugin/agents/review/security.md +10 -3
- package/dist/templates/agent-plugin/agents/review/tests.md +58 -0
- package/dist/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/dist/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/dist/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/dist/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/dist/templates/agent-plugin/agents/review-plan.md +52 -5
- package/dist/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/review.md +89 -16
- package/dist/templates/agent-plugin/agents/review.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/dist/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/dist/templates/agent-plugin/agents/spec.md +444 -0
- package/dist/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/dist/templates/agent-plugin/agents/test-spec.md +58 -2
- package/dist/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/dist/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/dist/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/dist/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/dist/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/dist/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/dist/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/dist/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/dist/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/dist/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/dist/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/dist/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/dist/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/dist/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/dist/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/dist/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/dist/templates/agent-suffix.md +7 -4
- package/dist/templates/baleia.lua +42 -0
- package/dist/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/dist/templates/dashboard-claude.md +7 -3
- package/dist/templates/orchestrator-base.md +89 -52
- package/dist/templates/orchestrator-completion.md +47 -24
- package/dist/templates/orchestrator-discovery.md +183 -0
- package/dist/templates/orchestrator-impl.md +47 -18
- package/dist/templates/orchestrator-planning.md +109 -20
- package/dist/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/dist/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/dist/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/dist/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/dist/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/dist/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/dist/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/dist/templates/orchestrator-settings.json +55 -0
- package/dist/templates/orchestrator-validation.md +17 -14
- package/dist/templates/sisyphus-init.lua +30 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/dist/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/dist/templates/termrender-haiku-system.md +82 -0
- package/dist/templates/whip-animation.sh +345 -0
- package/dist/tui.js +3242 -2189
- package/dist/tui.js.map +1 -1
- package/native/SisyphusNotify/main.swift +15 -5
- package/package.json +8 -6
- package/templates/CLAUDE.md +1 -56
- package/templates/agent-plugin/agents/CLAUDE.md +2 -65
- package/templates/agent-plugin/agents/debug.md +43 -6
- package/templates/agent-plugin/agents/debug.settings.json +57 -0
- package/templates/agent-plugin/agents/explore.md +28 -1
- package/templates/agent-plugin/agents/explore.settings.json +57 -0
- package/templates/agent-plugin/agents/implementor.md +94 -0
- package/templates/agent-plugin/agents/implementor.settings.json +57 -0
- package/templates/agent-plugin/agents/operator.md +43 -1
- package/templates/agent-plugin/agents/operator.settings.json +57 -0
- package/templates/agent-plugin/agents/plan/sub-planner.md +75 -0
- package/templates/agent-plugin/agents/plan.md +176 -86
- package/templates/agent-plugin/agents/plan.settings.json +57 -0
- package/templates/agent-plugin/agents/problem/adversarial.md +26 -0
- package/templates/agent-plugin/agents/problem/contrarian.md +26 -0
- package/templates/agent-plugin/agents/problem/first-principles.md +26 -0
- package/templates/agent-plugin/agents/problem/precedent.md +25 -0
- package/templates/agent-plugin/agents/problem/simplifier.md +26 -0
- package/templates/agent-plugin/agents/problem/systems-thinker.md +26 -0
- package/templates/agent-plugin/agents/problem/time-traveler.md +26 -0
- package/templates/agent-plugin/agents/problem/user-empathy.md +26 -0
- package/templates/agent-plugin/agents/problem.md +334 -79
- package/templates/agent-plugin/agents/problem.settings.json +57 -0
- package/templates/agent-plugin/agents/research-lead/CLAUDE.md +26 -0
- package/templates/agent-plugin/agents/research-lead/critic.md +61 -0
- package/templates/agent-plugin/agents/research-lead/researcher.md +60 -0
- package/templates/agent-plugin/agents/research-lead.md +184 -0
- package/templates/agent-plugin/agents/research-lead.settings.json +57 -0
- package/templates/agent-plugin/agents/review/CLAUDE.md +3 -29
- package/templates/agent-plugin/agents/review/compliance.md +14 -3
- package/templates/agent-plugin/agents/review/efficiency.md +15 -4
- package/templates/agent-plugin/agents/review/quality.md +20 -6
- package/templates/agent-plugin/agents/review/reuse.md +17 -5
- package/templates/agent-plugin/agents/review/security.md +10 -3
- package/templates/agent-plugin/agents/review/tests.md +58 -0
- package/templates/agent-plugin/agents/review-plan/CLAUDE.md +28 -0
- package/templates/agent-plugin/agents/review-plan/code-smells.md +4 -2
- package/templates/agent-plugin/agents/review-plan/pattern-consistency.md +4 -2
- package/templates/agent-plugin/agents/review-plan/requirements-coverage.md +3 -1
- package/templates/agent-plugin/agents/review-plan/security.md +5 -2
- package/templates/agent-plugin/agents/review-plan.md +52 -5
- package/templates/agent-plugin/agents/review-plan.settings.json +57 -0
- package/templates/agent-plugin/agents/review.md +89 -16
- package/templates/agent-plugin/agents/review.settings.json +57 -0
- package/templates/agent-plugin/agents/spec/engineer.md +175 -0
- package/templates/agent-plugin/agents/spec/requirements-writer.md +149 -0
- package/templates/agent-plugin/agents/spec.md +444 -0
- package/templates/agent-plugin/agents/spec.settings.json +57 -0
- package/templates/agent-plugin/agents/test-spec.md +58 -2
- package/templates/agent-plugin/agents/test-spec.settings.json +57 -0
- package/templates/agent-plugin/hooks/CLAUDE.md +9 -57
- package/templates/agent-plugin/hooks/ask-background-guard.sh +57 -0
- package/templates/agent-plugin/hooks/intercept-send-message.sh +1 -1
- package/templates/agent-plugin/hooks/plan-user-prompt.sh +8 -7
- package/templates/agent-plugin/hooks/plan-validate.sh +97 -0
- package/templates/agent-plugin/hooks/plan-write-path.sh +55 -0
- package/templates/agent-plugin/hooks/problem-user-prompt.sh +26 -0
- package/templates/agent-plugin/hooks/register-bg-task.sh +37 -0
- package/templates/agent-plugin/hooks/require-submit.sh +51 -42
- package/templates/agent-plugin/hooks/review-user-prompt.sh +6 -2
- package/templates/agent-plugin/hooks/spec-user-prompt.sh +43 -0
- package/templates/agent-plugin/skills/humanloop/SKILL.md +147 -0
- package/templates/agent-plugin/skills/perspective-fanout/SKILL.md +115 -0
- package/templates/agent-plugin/skills/problem-document/SKILL.md +105 -0
- package/templates/agent-plugin/skills/problem-plateau-breakers/SKILL.md +83 -0
- package/templates/agent-suffix.md +7 -4
- package/templates/baleia.lua +42 -0
- package/templates/companion-plugin/hooks/user-prompt-context.sh +1 -1
- package/templates/dashboard-claude.md +7 -3
- package/templates/orchestrator-base.md +89 -52
- package/templates/orchestrator-completion.md +47 -24
- package/templates/orchestrator-discovery.md +183 -0
- package/templates/orchestrator-impl.md +47 -18
- package/templates/orchestrator-planning.md +109 -20
- package/templates/orchestrator-plugin/commands/sisyphus/scratch.md +19 -0
- package/templates/orchestrator-plugin/commands/sisyphus/spec.md +11 -0
- package/templates/orchestrator-plugin/commands/sisyphus/strategize.md +5 -5
- package/templates/orchestrator-plugin/hooks/hooks.json +0 -10
- package/templates/orchestrator-plugin/skills/humanloop/SKILL.md +149 -0
- package/templates/orchestrator-plugin/skills/orchestration/CLAUDE.md +1 -0
- package/templates/orchestrator-plugin/skills/orchestration/SKILL.md +2 -1
- package/templates/orchestrator-plugin/skills/orchestration/strategy.md +160 -0
- package/templates/orchestrator-plugin/skills/orchestration/task-patterns.md +26 -28
- package/templates/orchestrator-plugin/skills/orchestration/workflow-examples.md +133 -25
- package/templates/orchestrator-settings.json +55 -0
- package/templates/orchestrator-validation.md +17 -14
- package/templates/sisyphus-init.lua +30 -0
- package/templates/sisyphus-tmux-plugin/hooks/hooks.json +54 -0
- package/templates/sisyphus-tmux-plugin/hooks/tmux-state.sh +19 -0
- package/templates/termrender-haiku-system.md +82 -0
- package/templates/whip-animation.sh +345 -0
- package/dist/chunk-22ZGZTGY.js +0 -67
- package/dist/chunk-22ZGZTGY.js.map +0 -1
- package/dist/chunk-6PJVJEYQ.js +0 -46
- package/dist/chunk-6PJVJEYQ.js.map +0 -1
- package/dist/chunk-C2XKXERJ.js.map +0 -1
- package/dist/chunk-TMBAVPHH.js.map +0 -1
- package/dist/chunk-V36NXMHP.js +0 -299
- package/dist/chunk-V36NXMHP.js.map +0 -1
- package/dist/templates/agent-plugin/agents/design.md +0 -134
- package/dist/templates/agent-plugin/agents/requirements.md +0 -138
- package/dist/templates/begin.md +0 -22
- package/dist/templates/nvim-tutorial.txt +0 -68
- package/dist/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/dist/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/dist/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/dist/templates/orchestrator-strategy.md +0 -238
- package/templates/agent-plugin/agents/design.md +0 -134
- package/templates/agent-plugin/agents/requirements.md +0 -138
- package/templates/begin.md +0 -22
- package/templates/nvim-tutorial.txt +0 -68
- package/templates/orchestrator-plugin/commands/sisyphus/design.md +0 -13
- package/templates/orchestrator-plugin/commands/sisyphus/requirements.md +0 -13
- package/templates/orchestrator-plugin/hooks/idle-notify.sh +0 -71
- package/templates/orchestrator-strategy.md +0 -238
- /package/dist/{paths-XRDEEJ5R.js.map → paths-JXFLR5BN.js.map} +0 -0
package/README.md
CHANGED
|
@@ -31,26 +31,26 @@ A tmux-integrated orchestration daemon for [Claude Code](https://docs.anthropic.
|
|
|
31
31
|
|
|
32
32
|
## What this is
|
|
33
33
|
|
|
34
|
-
Sisyphus
|
|
34
|
+
Sisyphus runs multiple Claude Code instances in tmux panes and coordinates them. That's it. Every agent is a real `claude` process with full access to your codebase, your CLAUDE.md, your hooks. Sisyphus just handles the "run N of them in parallel and loop until done" part.
|
|
35
35
|
|
|
36
|
-
If you
|
|
36
|
+
If you know the [Ralph Wiggum loop](https://ghuntley.com/ralph/) (`while true; do claude --prompt task.md; done`), this is that idea taken further. Instead of one agent in a loop, an orchestrator decomposes work into parallel agents, each looping independently, with structured state that persists across cycles. The orchestrator itself is in a Ralph loop: plan, spawn agents, get killed, respawn fresh with all the results.
|
|
37
37
|
|
|
38
38
|
## How it works
|
|
39
39
|
|
|
40
|
-
Most hard tasks aren't hard because any single piece is difficult
|
|
40
|
+
Most hard tasks aren't hard because any single piece is difficult. They're hard because there are many pieces and context gets lost between them. You're working a 12-file refactor, you hold it all in your head until you don't, and you make a mistake three files from the end because you forgot a constraint from the beginning.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
The fix is structural. An orchestrator Claude instance reads the full task, breaks it into subtasks, and spawns parallel agent instances, each in its own tmux pane with a focused instruction. Agents work simultaneously and submit reports when done. Then the orchestrator respawns to review progress and plan the next round.
|
|
43
43
|
|
|
44
|
-
The
|
|
44
|
+
The trick: the orchestrator is stateless. After it spawns agents and yields, it gets killed. When all agents finish, the daemon respawns a fresh orchestrator with the complete session state (every agent report, every cycle's history, the running plan). Cycle 1 and cycle 15 get the same quality of reasoning because each one starts with a full context window and a clean slate. The boulder rolls back down; Sisyphus walks back down after it, picks it up, and pushes again. But this time he remembers everything from every previous push.
|
|
45
45
|
|
|
46
|
-
The daemon handles
|
|
46
|
+
The daemon handles lifecycle: spawning panes, detecting when agents finish, persisting state to disk, respawning the orchestrator.
|
|
47
47
|
|
|
48
48
|
## Requirements
|
|
49
49
|
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
50
|
+
- Node.js >= 22
|
|
51
|
+
- tmux >= 3.2 (you must be inside a tmux session)
|
|
52
|
+
- Claude Code CLI (`claude`) installed and authenticated
|
|
53
|
+
- Neovim (optional, enables embedded editor in the dashboard)
|
|
54
54
|
|
|
55
55
|
## Install
|
|
56
56
|
|
|
@@ -58,18 +58,18 @@ The daemon handles the lifecycle: spawning panes, detecting when agents finish,
|
|
|
58
58
|
npm install -g sisyphi
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Then run
|
|
61
|
+
Then run setup once:
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
sisyphus setup
|
|
64
|
+
sisyphus admin setup
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
This installs the background daemon (macOS launchd), tmux keybindings (`M-s` to cycle sessions, `M-S` for dashboard), and checks your environment. The daemon auto-updates when new versions are published.
|
|
68
68
|
|
|
69
|
-
Verify
|
|
69
|
+
Verify:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
sisyphus doctor
|
|
72
|
+
sisyphus admin doctor
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
## Quick start
|
|
@@ -80,17 +80,17 @@ sisyphus dashboard # Open the TUI (auto-opens on start)
|
|
|
80
80
|
sisyphus status # Check session state from the CLI
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
Sisyphus is a CLI that Claude Code calls for you.
|
|
83
|
+
Sisyphus is a CLI that Claude Code calls for you. Tell Claude to use it and it handles the rest.
|
|
84
84
|
|
|
85
|
-
In Claude Code,
|
|
85
|
+
In Claude Code, say something like:
|
|
86
86
|
|
|
87
87
|
> Use sisyphus to migrate our REST API from Express to Hono. The API lives in src/api/ with 14 route files...
|
|
88
88
|
|
|
89
|
-
Claude
|
|
89
|
+
Claude calls `sisyphus start` with a detailed task description, and tmux panes start appearing with parallel agents working on your codebase.
|
|
90
90
|
|
|
91
|
-
###
|
|
91
|
+
### Slash command (recommended)
|
|
92
92
|
|
|
93
|
-
Create
|
|
93
|
+
Create `.claude/commands/sisyphus-begin.md` in your project:
|
|
94
94
|
|
|
95
95
|
~~~markdown
|
|
96
96
|
Run `sisyphus start` with a detailed task description:
|
|
@@ -99,17 +99,17 @@ Run `sisyphus start` with a detailed task description:
|
|
|
99
99
|
sisyphus start "your task description"
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
Write a thorough task description. Include what needs to be built or fixed, where relevant code lives, what done looks like, constraints, and adjacent concerns (don't break X, keep Y working). More context produces better results. The orchestrator figures out how to break it down.
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
Example:
|
|
105
105
|
```bash
|
|
106
106
|
sisyphus start "Rip out our hand-rolled RBAC system and replace it with a proper policy engine. Current implementation is scattered across 20+ middleware files in src/middleware/auth/ that each do their own role checks with hardcoded string comparisons. Replace with a centralized policy engine in src/auth/policies/ using a declarative permission model — define resources, actions, and role mappings in a single config, then write one middleware that evaluates policies. Migrate every route that currently calls requireRole() or checkPermission() to the new system. The admin panel (src/routes/admin/) has the most complex rules including org-scoped permissions and delegated access — those need to work exactly as before. Add integration tests that cover the full matrix: superadmin, org-admin, member, and guest across every protected endpoint. Don't break the public API routes in src/routes/v1/public/. The existing test suite (npm test) must pass when you're done."
|
|
107
107
|
```
|
|
108
108
|
~~~
|
|
109
109
|
|
|
110
|
-
Then
|
|
110
|
+
Then type `/sisyphus-begin` followed by your task in Claude Code.
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
Or just add a note to your `CLAUDE.md`:
|
|
113
113
|
|
|
114
114
|
```markdown
|
|
115
115
|
## Sisyphus
|
|
@@ -119,65 +119,75 @@ Run `sisyphus start "detailed task description"` inside tmux.
|
|
|
119
119
|
|
|
120
120
|
### Interactive tutorial
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
New to tmux or sisyphus? Run the guided walkthrough:
|
|
123
123
|
|
|
124
124
|
```bash
|
|
125
|
-
sisyphus getting-started
|
|
125
|
+
sisyphus admin getting-started
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
Covers tmux basics, neovim essentials, sisyphus concepts, and a live demo session.
|
|
129
129
|
|
|
130
130
|
## Dashboard
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
Full-screen TUI for watching and controlling sessions.
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
135
|
sisyphus dashboard # or press M-S (Alt-Shift-S)
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
Auto-opens when you `sisyphus start`.
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
Left panel is a session tree (sessions, cycles, agents, reports) with status indicators. Right panel shows detail for whatever's selected: roadmap, agent instructions, report content, live pane output. If neovim is available, files open in an embedded editor. Bottom bar has mode and keybinding hints.
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
- **Right panel** — Context-sensitive detail view for the selected node: session roadmap, agent instructions, report content, or live pane output. Opens files in an embedded neovim instance when available.
|
|
144
|
-
- **Bottom bar** — Current mode, keybinding hints, and transient notifications.
|
|
145
|
-
|
|
146
|
-
**Key bindings:**
|
|
142
|
+
Key bindings — navigate mode:
|
|
147
143
|
|
|
148
144
|
| Key | Action |
|
|
149
145
|
|-----|--------|
|
|
150
146
|
| `j/k` or `↑/↓` | Navigate tree / scroll detail |
|
|
151
147
|
| `h/l` or `←/→` | Collapse/expand nodes |
|
|
148
|
+
| `Tab` | Cycle panel focus |
|
|
149
|
+
| `Enter` | Open selection |
|
|
152
150
|
| `n` | New session (compose mode) |
|
|
151
|
+
| `m` | Message orchestrator |
|
|
153
152
|
| `R` | Resume a paused/completed session |
|
|
154
|
-
| `
|
|
155
|
-
| `g` | Edit goal |
|
|
153
|
+
| `g` | Edit goal |
|
|
156
154
|
| `p` | Open roadmap |
|
|
157
|
-
| `m` | Message orchestrator |
|
|
158
155
|
| `r` | Re-run agent |
|
|
159
156
|
| `x` | Restart agent |
|
|
160
|
-
| `
|
|
161
|
-
| `
|
|
157
|
+
| `b` | Jump to session's tmux window |
|
|
158
|
+
| `w` | Go to session window |
|
|
159
|
+
| `o` | Open (file manager) |
|
|
160
|
+
| `e` | Edit context file |
|
|
161
|
+
| `S` | Session info |
|
|
162
|
+
| `F` | Filter / search |
|
|
163
|
+
| `c` | Open companion overlay |
|
|
162
164
|
| `/` | Search sessions |
|
|
165
|
+
| `q` | Quit |
|
|
163
166
|
| `?` | Help overlay |
|
|
164
167
|
|
|
165
|
-
|
|
168
|
+
Key bindings — leader mode (`Space` + key):
|
|
169
|
+
|
|
170
|
+
| Key | Action |
|
|
171
|
+
|-----|--------|
|
|
172
|
+
| `Space c …` | Copy submenu: `p` path, `i` id, `c` context, `l` logs, `r` report, `a` agent-id |
|
|
173
|
+
| `Space o …` | Open submenu: `g` goal, `r` roadmap, `s` strategy, `l` logs, `d` dir, `R` latest report, `c` scratch, `e` context file |
|
|
174
|
+
| `Space a …` | Agent submenu: `s` spawn, `m` message, `r` restart, `R` re-run, `j` jump-pane, `o` claude, `t` tail, `k` kill, `e` quick-Explore, `d` quick-Debug |
|
|
175
|
+
| `Space S …` | Session submenu: `n` new, `r` resume, `c` continue, `b` rollback, `k` kill, `d` delete, `e` export, `w` window, `C` clone, `i` history |
|
|
176
|
+
| `Space g …` | Go submenu: `w` window, `p` pane-picker, `s` session-picker, `n` next session, `r` reconnect |
|
|
177
|
+
|
|
178
|
+
Compose mode opens a temp file in neovim for multi-line input (new sessions, messages, resume instructions). Falls back to tmux popups without neovim.
|
|
166
179
|
|
|
167
180
|
## Agent types
|
|
168
181
|
|
|
169
|
-
Agents can be spawned with role templates that
|
|
182
|
+
Agents can be spawned with role templates that set their model, behavior, and capabilities. The orchestrator discovers available types and matches them to subtasks.
|
|
170
183
|
|
|
171
184
|
### Built-in types
|
|
172
185
|
|
|
173
|
-
Sisyphus ships these agent types:
|
|
174
|
-
|
|
175
186
|
| Type | Description |
|
|
176
187
|
|------|-------------|
|
|
177
188
|
| `sisyphus:worker` | Generic agent (default) |
|
|
178
|
-
| `sisyphus:plan` | Plan lead
|
|
179
|
-
| `sisyphus:
|
|
180
|
-
| `sisyphus:requirements` | EARS-based requirements analysis |
|
|
189
|
+
| `sisyphus:plan` | Plan lead, breaks work into phases |
|
|
190
|
+
| `sisyphus:spec` | Interactive design + requirements spec session |
|
|
181
191
|
| `sisyphus:problem` | Problem exploration and assumption challenging |
|
|
182
192
|
| `sisyphus:review` | Code review |
|
|
183
193
|
| `sisyphus:review-plan` | Plan review with parallel sub-reviewers |
|
|
@@ -188,7 +198,7 @@ Sisyphus ships these agent types:
|
|
|
188
198
|
|
|
189
199
|
### Custom agent types
|
|
190
200
|
|
|
191
|
-
|
|
201
|
+
Create a markdown file with YAML frontmatter:
|
|
192
202
|
|
|
193
203
|
```markdown
|
|
194
204
|
---
|
|
@@ -206,7 +216,7 @@ You are a security-focused code reviewer. Analyze the code for OWASP top 10
|
|
|
206
216
|
vulnerabilities, injection risks, auth bypasses, and data exposure...
|
|
207
217
|
```
|
|
208
218
|
|
|
209
|
-
|
|
219
|
+
Resolution order (first match wins):
|
|
210
220
|
1. `.claude/agents/{name}.md` (project-local)
|
|
211
221
|
2. `~/.claude/agents/{name}.md` (user-global)
|
|
212
222
|
3. Bundled `sisyphus:{name}`
|
|
@@ -223,46 +233,48 @@ vulnerabilities, injection risks, auth bypasses, and data exposure...
|
|
|
223
233
|
| `skills` | Claude Code skills to enable |
|
|
224
234
|
| `permissionMode` | Permission handling mode |
|
|
225
235
|
|
|
226
|
-
|
|
236
|
+
`gpt-` and `codex-` prefixed models automatically route to the OpenAI provider (Codex CLI).
|
|
227
237
|
|
|
228
238
|
## Tmux integration
|
|
229
239
|
|
|
230
240
|
### Status bar
|
|
231
241
|
|
|
232
|
-
The daemon
|
|
242
|
+
The daemon puts a live status indicator in your tmux status bar, scoped to the current working directory:
|
|
233
243
|
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
238
|
-
-
|
|
244
|
+
- Yellow dot: orchestrator processing
|
|
245
|
+
- Yellow diamond: agents running
|
|
246
|
+
- Green dot: session completed
|
|
247
|
+
- Red dot: waiting for input
|
|
248
|
+
- Gray: idle / between cycles
|
|
239
249
|
|
|
240
|
-
|
|
250
|
+
Updates every 5 seconds. Focused session is highlighted.
|
|
241
251
|
|
|
242
252
|
### Keybindings
|
|
243
253
|
|
|
244
|
-
Installed by `sisyphus setup` into `~/.sisyphus/tmux.conf
|
|
254
|
+
Installed by `sisyphus admin setup` into `~/.sisyphus/tmux.conf`. Requires tmux ≥ 3.2.
|
|
245
255
|
|
|
246
256
|
| Key | Action |
|
|
247
257
|
|-----|--------|
|
|
248
258
|
| `M-s` | Cycle through sisyphus sessions in current project |
|
|
249
259
|
| `M-S` | Jump to dashboard window |
|
|
250
|
-
| `
|
|
260
|
+
| `Ctrl-S` | Open the which-key popup (anchored bottom-right) |
|
|
261
|
+
| `prefix-x` | Smart kill: pane or session depending on context |
|
|
262
|
+
|
|
263
|
+
The which-key popup shows direct actions and submenu prefixes. Press the mnemonic key to fire an action; press a submenu prefix (`c`, `o`, `a`, `S`, `g`) to enter that submenu. Submenus follow the same letter conventions as the dashboard `Space` leader, so muscle memory transfers.
|
|
264
|
+
|
|
265
|
+
Press `Ctrl-S ?` to see the full reference.
|
|
251
266
|
|
|
252
267
|
### Native notifications (macOS)
|
|
253
268
|
|
|
254
|
-
|
|
269
|
+
Sisyphus builds a native notification helper (`SisyphusNotify.app`) during install. Notifications fire on session completion, agent crashes, and other lifecycle events. Clicking one switches your terminal to the relevant session.
|
|
255
270
|
|
|
256
271
|
Falls back to `terminal-notifier` or `osascript` if the native app isn't available.
|
|
257
272
|
|
|
258
273
|
## Companion
|
|
259
274
|
|
|
260
|
-
|
|
275
|
+
A persistent character that tracks your work across sessions. Earns XP, levels up (30 levels from *Boulder Intern* to *The Absurd Hero*), unlocks achievements, and shifts mood based on usage patterns (time of day, session length, crash frequency, efficiency).
|
|
261
276
|
|
|
262
|
-
|
|
263
|
-
- A mood-colored face in the tmux status bar (updates in real time)
|
|
264
|
-
- Commentary on lifecycle events (session start, level-up, late-night coding) generated by Haiku
|
|
265
|
-
- An achievement gallery with 66 unlockable badges across milestone, session, time, and behavioral categories
|
|
277
|
+
Shows up as a mood-colored face in the tmux status bar, generates commentary on lifecycle events via Haiku, and has 66 unlockable badges.
|
|
266
278
|
|
|
267
279
|
```bash
|
|
268
280
|
sisyphus companion # View profile, stats, and achievements
|
|
@@ -270,11 +282,11 @@ sisyphus companion --badges # Full achievement gallery
|
|
|
270
282
|
sisyphus companion --name Bub # Rename your companion
|
|
271
283
|
```
|
|
272
284
|
|
|
273
|
-
|
|
285
|
+
Press `c` in the dashboard (nav mode) to open the companion overlay.
|
|
274
286
|
|
|
275
287
|
## Configuration
|
|
276
288
|
|
|
277
|
-
Project
|
|
289
|
+
Project `.sisyphus/config.json` overrides global `~/.sisyphus/config.json`:
|
|
278
290
|
|
|
279
291
|
```json
|
|
280
292
|
{
|
|
@@ -301,22 +313,130 @@ Project (`.sisyphus/config.json`) overrides global (`~/.sisyphus/config.json`):
|
|
|
301
313
|
| `notifications.enabled` | `true` | Desktop notifications on lifecycle events |
|
|
302
314
|
| `notifications.sound` | macOS Hero | Notification sound file path |
|
|
303
315
|
| `requiredPlugins` | `[devcore]` | Claude Code plugins to auto-install for agents |
|
|
316
|
+
| `upload` | — | Worker-proxy upload target — see [Session upload](#session-upload-optional) below |
|
|
317
|
+
|
|
318
|
+
### Session upload (optional)
|
|
319
|
+
|
|
320
|
+
On session completion, sisyphus zips the session directory and uploads it to an operator-managed Cloudflare R2 bucket through a Worker proxy — asynchronously, never blocking completion. Use `sisyphus admin upload <id>` to re-run the upload on demand (retry or in-progress sessions). `sisyphus admin export` is unchanged; upload is purely additive.
|
|
321
|
+
|
|
322
|
+
**Token workflow** — the operator mints a per-user token and shares a URL of the form:
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
https://<worker-host>/upload?token=sisyphus_pat_...
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
Run `configure-upload` with that URL to write credentials to `~/.sisyphus/config.json`:
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
# Safest — no argv leak:
|
|
332
|
+
pbpaste | sisyphus admin configure-upload --stdin
|
|
333
|
+
|
|
334
|
+
# Interactive prompt:
|
|
335
|
+
sisyphus admin configure-upload
|
|
336
|
+
|
|
337
|
+
# Direct argv (triggers a leak warning — token visible via `ps` and shell history):
|
|
338
|
+
sisyphus admin configure-upload "https://<worker-host>/upload?token=sisyphus_pat_..."
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
**Config** — `configure-upload` always writes to `~/.sisyphus/config.json`. The `upload` block is only honored from the global config; a project-local `.sisyphus/config.json` with an `upload` block is ignored with a warning (security hardening — prevents project files from redirecting your uploads).
|
|
342
|
+
|
|
343
|
+
```json
|
|
344
|
+
{
|
|
345
|
+
"upload": {
|
|
346
|
+
"url": "https://<worker-host>",
|
|
347
|
+
"token": "sisyphus_pat_..."
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
**Manifest** — the zip includes a `manifest.json` with session metadata. Fields sent on the wire (13 fields):
|
|
353
|
+
|
|
354
|
+
- `sessionId`, `sisyphusVersion`, `hostname`, `platform`
|
|
355
|
+
- `status` (`completed` / `failed` / `cancelled`), `completedAt`, `durationMs`, `wallClockMs`
|
|
356
|
+
- `model`, `effortTier` (`low` / `medium` / `high` / `xhigh`)
|
|
357
|
+
- `cycleCount`, `agentCount`, `goal`
|
|
358
|
+
|
|
359
|
+
`userId` is **not sent by the client** — the Worker injects it from the token, so it is opaque to end-users and non-operators.
|
|
360
|
+
|
|
361
|
+
**Privacy / consent** — presence of `Config.upload` is consent. No upload happens unless the block is configured. The manifest is content-free metadata; the full session zip lands in private R2 owned by the operator.
|
|
362
|
+
|
|
363
|
+
**State fields** — the session JSON surfaces `uploadStatus` (`pending` / `uploaded` / `failed`), `uploadKey` (e.g. `users/{userId}/{sessionId}.zip`), `uploadError`, and `uploadCompletedAt`.
|
|
364
|
+
|
|
365
|
+
**Manual retry:**
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
sisyphus admin upload <session-id> # re-uploads any session (active or completed)
|
|
369
|
+
sisyphus admin upload # uploads the active session in this cwd
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Disable** — omit the `upload` config block. Daemon skips silently.
|
|
373
|
+
|
|
374
|
+
Operator setup (token minting, Worker deployment, R2 provisioning): see [`workers/upload-proxy/README.md`](workers/upload-proxy/README.md).
|
|
304
375
|
|
|
305
376
|
## CLI reference
|
|
306
377
|
|
|
307
|
-
|
|
308
|
-
|
|
378
|
+
Session lifecycle: `session kill`, `session resume`, `session continue`, `session rollback`, `session complete`
|
|
379
|
+
|
|
380
|
+
Agent and orchestrator: `agent spawn`, `agent submit`, `agent report`, `orch yield`, `message`, `agent restart`, `session task`
|
|
381
|
+
|
|
382
|
+
Monitoring: `status` (`--verbose`), `list` (`--all`), `dashboard`
|
|
383
|
+
|
|
384
|
+
Setup: `admin setup`, `admin init`, `admin doctor`, `admin getting-started`, `companion`, `admin uninstall`
|
|
385
|
+
|
|
386
|
+
### history
|
|
387
|
+
|
|
388
|
+
Browse session history and metrics.
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
sisyphus admin history # List recent sessions
|
|
392
|
+
sisyphus admin history <session-id> # Inspect a specific session
|
|
393
|
+
sisyphus admin history --stats # Aggregate statistics
|
|
394
|
+
sisyphus admin history --events # Raw event timeline
|
|
395
|
+
```
|
|
309
396
|
|
|
310
|
-
|
|
311
|
-
|
|
397
|
+
| Option | Description |
|
|
398
|
+
|--------|-------------|
|
|
399
|
+
| `--cwd <path>` | Filter by project directory |
|
|
400
|
+
| `--status <status>` | Filter by status (`completed`, `killed`) |
|
|
401
|
+
| `--since <duration>` | Filter by recency (e.g. `7d`, `24h`, `2w`) |
|
|
402
|
+
| `--search <query>` | Search task text and messages |
|
|
403
|
+
| `--events` | Show raw event timeline |
|
|
404
|
+
| `--stats` | Show aggregate statistics |
|
|
405
|
+
| `--json` | Output as JSON |
|
|
406
|
+
| `-n, --limit <n>` | Max sessions to show (default: 20) |
|
|
312
407
|
|
|
313
|
-
|
|
314
|
-
`status` (`--verbose`), `list` (`--all`), `dashboard`
|
|
408
|
+
### clone
|
|
315
409
|
|
|
316
|
-
|
|
317
|
-
|
|
410
|
+
Clone a session into a new independent session with a different goal.
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
sisyphus session clone "new goal"
|
|
414
|
+
sisyphus session clone "new goal" --strategy # carry over strategy.md from source
|
|
415
|
+
sisyphus session clone "new goal" --name my-clone --context "extra context"
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Useful for branching off a variant approach without starting from scratch.
|
|
419
|
+
|
|
420
|
+
### reconnect
|
|
421
|
+
|
|
422
|
+
Reconnect the daemon to an orphaned tmux session (e.g. after a daemon restart). Makes no state changes and does not spawn the orchestrator.
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
sisyphus session reconnect <session-id>
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### delete
|
|
429
|
+
|
|
430
|
+
Delete a session and all its data.
|
|
431
|
+
|
|
432
|
+
```bash
|
|
433
|
+
sisyphus session delete <session-id>
|
|
434
|
+
sisyphus session delete <session-id> --cwd /path/to/project
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
318
438
|
|
|
319
|
-
|
|
439
|
+
`sisyphus --help` or `sisyphus <command> --help` for full usage.
|
|
320
440
|
|
|
321
441
|
## License
|
|
322
442
|
|