@clubnet/seedclub 0.2.29 → 0.2.30

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.
Files changed (2) hide show
  1. package/README.md +7 -239
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -28,14 +28,11 @@ seedclub
28
28
 
29
29
  ### First run
30
30
 
31
- On a fresh install, the normal setup flow is:
32
-
33
31
  1. Run `seedclub`
34
- 2. Seed Club auth opens automatically
35
- 3. `/login` to sign in to a model provider such as Anthropic, OpenAI, or Gemini
36
- 4. `/model` to choose the model you want to use
37
-
38
- After that, run `/seedclub` to open the main Seed Club menu.
32
+ 2. Complete Seed Club sign-in when the browser opens
33
+ 3. Run `/login`
34
+ 4. Run `/model`
35
+ 5. Open `/seedclub`
39
36
 
40
37
  ### Alternative: curl | bash
41
38
 
@@ -45,17 +42,15 @@ curl -fsSL https://raw.githubusercontent.com/seedclub/seedclub-agent/main/instal
45
42
 
46
43
  ### Package access
47
44
 
48
- `@clubnet/seedclub` is a public npm package. Install access is open; runtime access is enforced by Seed Club auth inside the app.
45
+ `@clubnet/seedclub` is a public npm package. Install access is open; runtime access is enforced inside the app.
49
46
 
50
47
  ## Core workflow
51
48
 
52
- The normal interactive flow is:
53
-
54
49
  1. Start the app with `seedclub`
55
- 2. Complete Seed Club auth when the browser opens
50
+ 2. Complete Seed Club sign-in when the browser opens
56
51
  3. Complete `/login` and `/model` if this is your first run
57
52
  4. Open `/seedclub`
58
- 5. Choose the CRM, meetings, media, recordings, or transcript workflow you need
53
+ 5. Choose the workflow you need
59
54
 
60
55
  ## Commands
61
56
 
@@ -70,233 +65,6 @@ The normal interactive flow is:
70
65
 
71
66
  Natural-language transcript retrieval is also supported (no slash command required). Examples: `download vibhu transcripts from 11am`, `i need transcripts for all guests on 11am last week`. Seed Club will run metadata-first export confirmation and then write VTT files.
72
67
 
73
- ## Auth
74
-
75
- There are two separate auth layers in the product:
76
-
77
- 1. Seed Club auth: auto-start on launch or `/connect`
78
- This connects the CLI to your Seed Club account so Seed Club tools and commands can read and write account data.
79
- 2. Model auth: `/login`
80
- This signs you into the LLM provider you want the agent to use.
81
- 3. Personal calendar connect: `/connect-calendar`
82
- This connects a Google Calendar to your Seed Club account for booking and availability workflows. It is only needed if you want the agent to schedule using your personal calendar.
83
-
84
- Seed Club auth is the first gate. Until it succeeds, normal harness usage is blocked and only the setup commands are available.
85
-
86
- `/seedclub` is the main entry point for Seed Club actions. If you are not connected yet, it will start the Seed Club connect flow automatically.
87
-
88
- CLI auth now prefers an authorization-code exchange:
89
- - browser callback: `http://127.0.0.1:<port>/callback?code=...&state=...`
90
- - CLI exchange: `POST ${SEEDCLUB_API_URL}/auth/cli/exchange` with `{ code, state }`
91
-
92
- Power-user env overrides:
93
-
94
- ```bash
95
- export SEEDCLUB_API_URL=http://localhost:3001
96
- export SEEDCLUB_AUTH_URL=http://localhost:3000
97
- export SEEDCLUB_ACCESS_TOKEN=<bearer-token>
98
- ```
99
-
100
- Production defaults are already built into the auth extension:
101
-
102
- ```bash
103
- SEEDCLUB_API_URL=https://api.seedclub.com
104
- SEEDCLUB_AUTH_URL=https://auth.seedclub.com
105
- ```
106
-
107
- You do not need to export those for normal use. Only set env vars when you want to override them for local/dev.
108
-
109
- ## How it works
110
-
111
- seedclub is an npm package (`@clubnet/seedclub`) that wraps [pi](https://github.com/badlogic/pi-mono) as a dependency. Installing the package globally gives you the `seedclub` command.
112
-
113
- The `seedclub` CLI wrapper does three things:
114
- 1. Sets `PI_CODING_AGENT_DIR` to point pi at `~/.seedclub/agent/`
115
- 2. Sets `PI_SKIP_VERSION_CHECK=1` so pi's update banner never shows
116
- 3. Spawns the pi binary from the package's own `node_modules/`
117
-
118
- A `postinstall` script runs after every install/update and sets up:
119
-
120
- ```
121
- ~/.seedclub/
122
- └── agent/
123
- ├── extensions/
124
- │ ├── seedclub/ ← core: auth, tools, commands
125
- │ └── seedclub-ui/ ← UI: welcome screen, update check
126
- ├── themes/
127
- │ ├── dark.json
128
- │ └── light.json
129
- ├── settings.json
130
- └── .seedclub-version
131
- ```
132
-
133
- This means:
134
- - Running `seedclub` → uses `~/.seedclub/agent/` config, package-local pi binary
135
- - Running `pi` (if installed separately) → uses `~/.pi/agent/` config, totally independent
136
- - **seedclub never modifies pi's installation**
137
-
138
- ## Version pinning
139
-
140
- seedclub pins versions in `package.json`:
141
-
142
- ```json
143
- {
144
- "version": "0.2.19",
145
- "dependencies": {
146
- "@mariozechner/pi-coding-agent": "0.65.2"
147
- }
148
- }
149
- ```
150
-
151
- Users never interact with pi's npm package directly. When they run `seedclub update`, it runs `npm install -g @clubnet/seedclub@latest`.
152
-
153
- ## Theme
154
-
155
- Themes live under `assets/theme/` and are installed to `~/.seedclub/agent/themes/` (currently `dark.json` and `light.json`).
156
-
157
- It's a standard pi theme with 51 color tokens. Edit it to change any visual aspect of the app:
158
-
159
- | Section | What it controls |
160
- |---|---|
161
- | **Core UI** | `accent`, `border`, `success`, `error`, `warning`, `muted`, `text` |
162
- | **Backgrounds** | User messages, tool boxes (pending/success/error), selection highlight |
163
- | **Markdown** | Headings, links, code blocks, quotes, list bullets |
164
- | **Syntax** | Comments, keywords, functions, strings, numbers, types |
165
- | **Thinking borders** | Editor border color per thinking level (off → xhigh) |
166
- | **Diffs** | Added/removed/context lines in tool output |
167
-
168
- The `vars` block at the top defines reusable colors (e.g. `brand: "#00C853"`) that are referenced throughout `colors`. To change the brand color, just update `vars.brand`.
169
-
170
- Seed Club keeps product-level names in `vars` (`editorBg`, `messageBg`, `successBg`, `errorBg`) and maps pi's required tokens to those names (`selectedBg`, `userMessageBg`, `toolPendingBg`, etc.). The CLI probes the terminal background with OSC 11 and sets `COLORFGBG` before pi starts when no explicit theme is configured, so light/dark defaults track the actual terminal window instead of pi's fallback.
171
-
172
- **Hot reload:** Edit the theme file while seedclub is running and it reloads instantly.
173
-
174
- Colors can be hex (`"#00C853"`), 256-color palette index (`242`), a reference to a `vars` entry (`"brand"`), or empty string (`""`) for the terminal default.
175
-
176
- ## Development
177
-
178
- ### Setup
179
-
180
- ```bash
181
- git clone https://github.com/seedclub/seedclub-agent.git
182
- cd seedclub-agent
183
-
184
- # Install deps, then install locally from the repo
185
- npm install
186
- npm install -g ./
187
- ```
188
-
189
- For day-to-day work, run `seedclub version` after installing to confirm your shell is using this repo's wrapper build.
190
-
191
- ### Repo structure
192
-
193
- ```
194
- seedclub/
195
- ├── package.json ← npm package definition (@clubnet/seedclub)
196
- ├── bin/cli.js ← Node.js CLI wrapper (the `seedclub` command)
197
- ├── postinstall.js ← runs after npm install (sets up ~/.seedclub/agent/)
198
- ├── install.sh ← curl | bash installer (just runs npm install -g)
199
- ├── README.md
200
- └── assets/
201
- ├── theme/
202
- │ ├── dark.json
203
- │ └── light.json
204
- └── extensions/
205
- ├── seedclub/ ← core extension source
206
- └── seedclub-ui/ ← UI extension source
207
- ```
208
-
209
- The `assets/` directory contains the canonical source for extensions and themes. The postinstall script copies these into `~/.seedclub/agent/`.
210
-
211
- ### Updating pi
212
-
213
- When a new pi version comes out, upgrading it for Seed Club users means shipping a new `@clubnet/seedclub` package that depends on the newer pi release.
214
-
215
- Recommended flow:
216
-
217
- 1. **Update and test locally:**
218
- ```bash
219
- npm install @mariozechner/pi-coding-agent@NEW_VERSION
220
- npm install -g ./
221
- seedclub version
222
- seedclub
223
- ```
224
-
225
- Verify the wrapper still launches, the Seed Club UI loads, and the core flows you care about still work.
226
-
227
- 2. **Commit the dependency change and bump the package version:**
228
- The pi version is carried by this package, so users only receive it once the Seed Club package version is bumped and released.
229
- ```json
230
- {
231
- "version": "0.3.0",
232
- "dependencies": {
233
- "@mariozechner/pi-coding-agent": "NEW_VERSION"
234
- }
235
- }
236
- ```
237
-
238
- 3. **Push the release:**
239
- ```bash
240
- git add -A
241
- git commit -m "bump pi to NEW_VERSION"
242
- npm version patch|minor|major
243
- git push --follow-tags
244
- ```
245
-
246
- 4. **Users pull the update:**
247
- Users get the newer pi runtime when they run:
248
- ```bash
249
- seedclub update
250
- ```
251
-
252
- A fresh `npm install -g @clubnet/seedclub` also installs the new packaged pi version.
253
-
254
- ### Updating extensions
255
-
256
- Extensions live in `assets/extensions/`. Edit them there, then:
257
-
258
- ```bash
259
- # Test locally
260
- npm install -g ./
261
- seedclub # test
262
-
263
- # When ready, bump package version and publish
264
- git add -A
265
- git commit -m "update extensions"
266
- npm version patch|minor|major
267
- git push --follow-tags
268
- ```
269
-
270
- For reproducible extension dependency installs, commit `assets/extensions/seedclub/package-lock.json` and keep it in sync when changing extension deps.
271
-
272
- ### Release process
273
-
274
- Publishing is now handled by npm trusted publishing from GitHub Actions.
275
-
276
- Workflow:
277
-
278
- 1. Create a branch and make changes
279
- 2. Merge to `main`
280
- 3. Pull `main`, run `npm install`, then `npm install -g ./`
281
- 4. Smoke test with `seedclub version` and, if relevant, a quick interactive run
282
- 5. Bump version: `npm version patch|minor|major`
283
- 6. Push commits + tags: `git push --follow-tags`
284
- 7. GitHub Actions publishes the tagged release to npm automatically via `.github/workflows/publish.yml`
285
-
286
- ### Trusted publishing
287
-
288
- The npm package is configured to publish from GitHub Actions, not from long-lived local npm tokens.
289
-
290
- Trusted publisher settings for `@clubnet/seedclub`:
291
-
292
- - Provider: GitHub Actions
293
- - Organization or user: `seedclub`
294
- - Repository: `seedclub-agent`
295
- - Workflow filename: `publish.yml`
296
- - Environment name: blank
297
-
298
- Once trusted publishing is working, npm package publishing access should stay on the stricter setting that disallows token-based publishing.
299
-
300
68
  ## Update
301
69
 
302
70
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clubnet/seedclub",
3
- "version": "0.2.29",
3
+ "version": "0.2.30",
4
4
  "description": "A branded command-line agent wrapper around pi, with integrated Seed Club commands, tools, and app actions",
5
5
  "license": "MIT",
6
6
  "repository": {