lobstah 0.5.5 → 0.5.9

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 CHANGED
@@ -25,12 +25,125 @@ and recovers each; status and evidence land on disk. Supervision costs
25
25
  nothing — no tokens, no attention — so the whole fleet fits in one
26
26
  conversation, and **your agents just bring home the lobstahs**.
27
27
 
28
+ ## Which one? 🧭
29
+
30
+ As a **background router**, lobstah takes work you (or a tracker) lob in,
31
+ runs supervised workers in their own worktrees, pings you when something
32
+ needs you, and brings PRs home with no session open. As the **lobstah man**,
33
+ one interactive Claude Code or Codex session takes the helm and runs that
34
+ same fleet from a conversation, woken by the plugin's hooks instead of by
35
+ you. Both sit on the same daemon, so start with the router and add a helm
36
+ whenever you like.
37
+
38
+ ![Pixel lobster carrying a star across the page](https://github.com/aequitas-labs/lobstah/blob/main/docs/assets/lob-crawl.svg)
39
+
28
40
  ## Requirements 📋
29
41
 
30
42
  - Node 20+, git, pnpm
31
43
  - An authenticated harness CLI: `claude` (Claude Code) and/or Codex. Lobstah
32
44
  never handles harness login — you authenticate your own CLI; lobstah invokes it.
33
45
 
46
+ ## Quickstart: the background router 🪝
47
+
48
+ Hand lobstah a brief and go do something else.
49
+
50
+ **Install**
51
+
52
+ ```bash
53
+ npm i -g lobstah # or from source / a standalone binary: see Install below
54
+ ```
55
+
56
+ **Configure**
57
+
58
+ ```bash
59
+ lobstah init --scan ~/src # ~/.lobstah + a [repos.*] block per repo found
60
+ # (bare `init` writes an example config instead;
61
+ # `lobstah repos add <path>` appends one repo)
62
+ $EDITOR ~/.lobstah/config.toml
63
+ lobstah doctor # binaries, config, repos, harnesses, heartbeat
64
+ ```
65
+
66
+ ```toml
67
+ notifyCommand = "ntfy pub my-topic \"$LOBSTAH_VERB $LOBSTAH_ID: $LOBSTAH_NOTE\""
68
+
69
+ [repos.myapp]
70
+ path = "~/src/myapp"
71
+ trunk = "main"
72
+ setup = ["pnpm install"] # runs in each fresh worktree
73
+ ```
74
+
75
+ `notifyCommand` is how the router reaches you: the daemon runs it on
76
+ `needs-decision`, `blocked`, `done`, and `failed`, with no model in the loop.
77
+ Every key, with defaults: [docs/configuration.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/configuration.md).
78
+
79
+ **Run**
80
+
81
+ ```bash
82
+ lobstah daemon install # launchd agent / systemd user unit — survives
83
+ # reboots, restarts on crash (`daemon &` for a try)
84
+ lobstah pet install # macOS: a desktop lobster walks questions to you
85
+ lobstah dispatch --repo myapp --brief ./brief.md
86
+ ```
87
+
88
+ Want work to arrive on its own? `lobstah pick install` runs tracker pickup
89
+ as a service: Linear and GitHub issues assigned to its configured identity
90
+ become dispatches, and status streams back as comments.
91
+ [docs/pickup.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/pickup.md)
92
+
93
+ **See it**
94
+
95
+ The lobstah man skill brings up the glass and prints its URL.
96
+ `lobstah man helm` alone does not.
97
+
98
+ ```bash
99
+ lobstah glass # the spyglass: a live localhost page (port 4949)
100
+ lobstah ls # or the same from the terminal
101
+ lobstah catch <uuid> # the evidence: branch, commits, PR, session
102
+ ```
103
+
104
+ ## Quickstart: the lobstah man 🦞
105
+
106
+ One session holds the helm. You talk to it; it runs the fleet. The skill runs
107
+ the `lobstah` commands.
108
+
109
+ **Install**
110
+
111
+ ```bash
112
+ npm i -g lobstah # the plugin wires hooks to the CLI; it doesn't bundle it
113
+ lobstah init --scan ~/src # same repos, same config as the router
114
+ lobstah daemon install # the helm dispatches; the daemon supervises
115
+ ```
116
+
117
+ Then install the lobstah plugin for your harness
118
+ ([Claude Code](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/claude-code.md#install) ·
119
+ [Codex](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/codex.md#install)) and open a new session.
120
+
121
+ **Run**
122
+
123
+ Open a new session in the repo (or any folder) with the plugin installed.
124
+
125
+ ```text
126
+ /lobstah:man # Claude Code (or /lobstah:helm, the bare sign-on)
127
+ $lobstah:man # Codex
128
+ ```
129
+
130
+ Or just say "Lobstah man, take the helm."
131
+
132
+ The skill signs on, arms the watcher when the Stop hook asks, and stays woken.
133
+
134
+ Then just talk: "dispatch a fix for the flaky login test in myapp." The helm
135
+ writes a standalone brief, dispatches it, answers workers' questions, and
136
+ brings you the catch.
137
+
138
+ Use `/lobstah:trap` in Claude Code or `$lobstah:trap` in Codex to turn another
139
+ live session in a linked worktree into a worker. The skill runs `lobstah soak`;
140
+ the helm addresses bait to its `wt:<trap>` address, and `lobstah stow` signs
141
+ it off.
142
+
143
+ Harness specifics: [Claude Code](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/claude-code.md) · [Codex](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/codex.md).
144
+ The full pattern (charter, grounds, the three tiers of getting woken, traps)
145
+ is in [docs/man.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/man.md).
146
+
34
147
  ## Install ⚓
35
148
 
36
149
  ```bash
@@ -60,29 +173,7 @@ The binary drives harnesses through their CLIs instead of the bundled SDKs:
60
173
  codex workers run fully Node-free; claude workers still need the (Node-based)
61
174
  `claude` CLI on the host.
62
175
 
63
- ## Quick start 🪝
64
-
65
- ```bash
66
- lobstah init --scan ~/src # ~/.lobstah + a [repos.*] block per repo found
67
- # (bare `init` writes an example config instead;
68
- # `lobstah repos add <path>` appends one repo)
69
- $EDITOR ~/.lobstah/config.toml
70
- lobstah doctor # binaries, config, repos, harnesses, heartbeat
71
- lobstah daemon install # launchd agent / systemd user unit — survives
72
- # reboots, restarts on crash (`daemon &` for a try)
73
- lobstah dispatch --repo myapp --brief ./brief.md
74
- ```
75
-
76
- ```toml
77
- [repos.myapp]
78
- path = "~/src/myapp"
79
- trunk = "main"
80
- setup = ["pnpm install"] # runs in each fresh worktree
81
- ```
82
-
83
- Every key, with defaults: [docs/configuration.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/configuration.md).
84
-
85
- Watch, steer, take over:
176
+ ## Watch, steer, take over 🔭
86
177
 
87
178
  ```bash
88
179
  lobstah ls # queue, active, recent done
@@ -120,7 +211,7 @@ instances, use more homes. One daemon per home, enforced.
120
211
  Set one config line — `notifyCommand = "ntfy pub my-topic ..."` — and the
121
212
  daemon pings you on `needs-decision`, `blocked`, `done`, and `failed`. No
122
213
  model in the loop. Driving lobstah from an agent session instead? `lobstah
123
- man` prints the lobsterman's manual. `man wait` blocks until a dispatch needs
214
+ man` prints the lobstah man's manual. `man wait` blocks until a dispatch needs
124
215
  attention, and unanswered questions re-fire until answered. `man helm`
125
216
  signs one session on as the orchestrator for its grounds, and `man report`
126
217
  prints the delta since the last acknowledged report. `lobstah glass` serves
@@ -130,19 +221,22 @@ continues the turn the moment something needs it.
130
221
 
131
222
  ## Add-ons 🎣
132
223
 
224
+ - **Desktop pet** — walks attention across your screen; run `lobstah pet install`
225
+ on macOS. [Install guide](apps/pet/README.md#install)
133
226
  - **Tracker pickup** — `lobstah pick` polls Linear and GitHub outbound (no
134
227
  webhooks, no tunnel), dispatches assigned work, streams status back as
135
228
  comments, forwards replies into the running dispatch, reconciles drift, and
136
229
  optionally merges approved PRs. GitHub pickup spans every repo you mark
137
230
  `pickup = true`; `lobstah pick install` runs it as a service.
138
231
  [docs/pickup.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/pickup.md)
139
- - **Claude Code + Codex plugins** — the lobsterman as a one-step install: the
140
- hook wiring (session brief, Stop-hook park, clean stow), the lobsterman
141
- and trap skills, and (on Claude Code) `/lobstah`, `/helm`, `/relieve`,
142
- `/soak`, and `/stow` commands, no settings surgery.
232
+ - **Claude Code + Codex plugins** — the lobstah man as a one-step install: the
233
+ hook wiring (session brief, Stop-hook park, clean stow), the `man` and `trap`
234
+ skills, and (on Claude Code) `/lobstah:tend`, `/lobstah:helm`,
235
+ `/lobstah:relieve`, `/lobstah:soak`, and `/lobstah:stow` commands, no
236
+ settings surgery.
143
237
  This repo doubles as the plugin marketplace for both agent registries —
144
- in either harness: `/plugin marketplace add aequitas-labs/lobstah`, then
145
- `/plugin install lobstah@lobstah`. The park stays inert until a directory
238
+ install steps per harness are in [docs/harness/claude-code.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/claude-code.md)
239
+ and [docs/harness/codex.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/harness/codex.md). The park stays inert until a directory
146
240
  opts in with a `.lobstah-man` file or the session soaks. Codex hooks need
147
241
  Codex v0.114+ and a one-time trust review. Plugin versions track the CLI
148
242
  (plugin 0.5.x goes with `lobstah` 0.5.x); `lobstah doctor` and the session
@@ -152,11 +246,11 @@ continues the turn the moment something needs it.
152
246
  - **OpenClaw plugin** — gives fleet agents `lobstah_dispatch` / `lobstah_status`
153
247
  / `lobstah_send` / `lobstah_cancel` tools and operators a `/lobstah` command.
154
248
  [docs/openclaw.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/openclaw.md)
155
- - **The lobsterman** — one interactive agent session that dispatches,
249
+ - **The lobstah man** — one interactive agent session that dispatches,
156
250
  supervises, and hands you outcomes, woken by the `lobstah man` commands.
157
251
  Harness-agnostic: hold the helm from Claude Code, Codex, or anything with
158
252
  a terminal — the CLI is the contract, and workers mix harnesses per
159
- dispatch. [docs/lobsterman.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/lobsterman.md)
253
+ dispatch. [docs/man.md](https://github.com/aequitas-labs/lobstah/blob/main/docs/man.md)
160
254
 
161
255
  ## How it holds together 🧭
162
256
 
@@ -184,3 +278,5 @@ vocabulary in core, no hosted service.
184
278
  ## License
185
279
 
186
280
  [MIT](https://github.com/aequitas-labs/lobstah/blob/main/LICENSE)
281
+
282
+ ![Pixel lobster carrying a star across the page](https://github.com/aequitas-labs/lobstah/blob/main/docs/assets/lob-crawl.svg)