askshepherd 0.1.31 → 0.1.36

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
@@ -6,25 +6,25 @@ The npm package is `askshepherd`. The installed binary also exposes `shepherd`,
6
6
  but the public one-liner uses the package name:
7
7
 
8
8
  ```sh
9
- npx -y askshepherd@latest agent
9
+ claude "Run Shepherd customer onboarding with: npx -y askshepherd@latest agent. Ask me the onboarding questions, do not infer answers from local context, and continue through the follow-up commands it prints. After onboarding completes, ask whether to install Shepherd MCP for me into Codex, Claude Code, Cursor, any subset, or none; if I choose any, run npx -y askshepherd@latest mcp-login --install <targets>." --dangerously-skip-permissions
10
10
  ```
11
11
 
12
- ## Coding Agent One-liner
12
+ ## Claude Code Onboarding Command
13
13
 
14
- Give this to a coding agent:
14
+ Give this to Claude Code:
15
15
 
16
16
  ```sh
17
- npx -y askshepherd@latest agent
17
+ claude "Run Shepherd customer onboarding with: npx -y askshepherd@latest agent. Ask me the onboarding questions, do not infer answers from local context, and continue through the follow-up commands it prints. After onboarding completes, ask whether to install Shepherd MCP for me into Codex, Claude Code, Cursor, any subset, or none; if I choose any, run npx -y askshepherd@latest mcp-login --install <targets>." --dangerously-skip-permissions
18
18
  ```
19
19
 
20
- The command defaults to the customer-facing production Shepherd cloud. In coding-agent shells, it gives the agent the public onboarding checklist and follow-up commands. In a normal interactive terminal, it does not print the checklist; it points the user to the direct terminal onboarding flow instead.
21
- Coding-agent onboarding asks short selection questions first: existing/new org, sources to connect, and Messages skip/provide-handle. If Messages is selected, the agent runs `messages-chats`, opens a minimal searchable local webpage, and has the user select which contacts/groups to sync. Account creation/relinking always starts with Shepherd WorkOS auth.
20
+ The underlying `askshepherd agent` command defaults to the customer-facing production Shepherd cloud. In coding-agent shells, it gives the agent the public onboarding checklist and follow-up commands. In a normal interactive terminal, it does not print the checklist; it points the user to the direct terminal onboarding flow instead.
21
+ Claude Code onboarding asks short selection questions first: existing/new org, sources to connect, Messages skip/provide-handle, and whether to sync Coding Sessions from Codex/Claude Code. If Messages is selected, the agent runs `messages-chats`, opens a minimal searchable local webpage, and has the user select which contacts/groups to sync. If Coding Sessions is selected, onboarding installs a local LaunchAgent that syncs redacted session summaries, not full raw transcripts. Account creation/relinking always starts with Shepherd WorkOS auth. After onboarding completes, the agent asks whether to install Shepherd MCP for the signed-in customer into Codex, Claude Code, Cursor, any subset, or none.
22
22
  Existing-organization joins are verified from Shepherd login and company email domain; the typed org name is not trusted by itself.
23
23
 
24
24
  For experiments, pass a separate non-production API explicitly:
25
25
 
26
26
  ```sh
27
- npx -y askshepherd@latest agent --api https://<non-prod-brain-api>
27
+ claude "Run Shepherd customer onboarding with: npx -y askshepherd@latest agent --api https://<non-prod-brain-api>. Ask me the onboarding questions, do not infer answers from local context, and continue through the follow-up commands it prints. After onboarding completes, ask whether to install Shepherd MCP for me into Codex, Claude Code, Cursor, any subset, or none; if I choose any, run npx -y askshepherd@latest mcp-login --install <targets> --api https://<non-prod-brain-api>." --dangerously-skip-permissions
28
28
  ```
29
29
 
30
30
  ## Human Terminal One-liner
@@ -47,7 +47,8 @@ The command:
47
47
  - asks the user to grant or confirm macOS Full Disk Access before local Messages sync
48
48
  - checks local Messages access and keeps prompting in interactive onboarding until Full Disk Access works
49
49
  - opens a minimal searchable local webpage with contact/group names and only syncs the chats selected by the user
50
- - sets up local macOS Messages raw sync with a background LaunchAgent scoped to the selected chats
50
+ - sets up local macOS Messages raw sync with a background LaunchAgent scoped to the selected chats, including contact-name hydration for observed conversations
51
+ - optionally sets up local Codex/Claude Code coding-session summary sync with a background LaunchAgent
51
52
  - starts raw polling/backfill for connected sources
52
53
  - asks the customer-facing production cloud to schedule downstream processing; wiki ingestion, memory artifacts, and document summaries run in separate brain services, not in the local CLI
53
54
 
@@ -110,6 +111,7 @@ Use Shepherd to catch me up on what the team discussed yesterday.
110
111
  Use Shepherd to search Slack, Gmail, Messages, Granola, and the wiki for launch blockers.
111
112
  Use Shepherd to find the last meeting where we discussed the enterprise pilot.
112
113
  Use Shepherd to summarize open follow-ups from this week's memory.
114
+ Use Shepherd to tell me what coding agents already worked on in this repo.
113
115
  ```
114
116
 
115
117
  The production MCP gives onboarded customers the same read/QA behavior that made
@@ -141,7 +143,7 @@ Shepherd must still enforce selected users and groups internally before imperson
141
143
  --org <name> Organization name
142
144
  --granola-api-key <key> Granola API key
143
145
  --messages-handle <value> Messages phone number or Apple ID email
144
- --messages-chat-ids <ids> Comma-separated chat IDs selected from messages-chats
146
+ --messages-chat-ids <ids> Comma-separated chat IDs selected from messages-chats, or `all` to watch every current and future chat
145
147
  --messages-backfill-days Local Messages backfill window, default all selected chat history
146
148
  --api <url> Advanced: Shepherd API URL. Use only for non-production experiments or local/staging testing.
147
149
  --no-google Skip Google Workspace (Gmail/Drive/Docs/Calendar/Sheets/Slides/Tasks/Contacts)
@@ -149,9 +151,41 @@ Shepherd must still enforce selected users and groups internally before imperson
149
151
  --no-granola Skip Granola
150
152
  --no-open-granola Do not open the Granola API key screen
151
153
  --no-messages Skip local Messages
154
+ --coding-sessions Opt in to local Codex/Claude Code session summary sync
155
+ --sources <list> Exact sources to connect: google,slack,granola,messages,coding-sessions,all
156
+ --add-sources <list> Same as --sources, named for second-time onboarding
152
157
  --no-open Print auth URLs instead of opening the browser
153
158
  ```
154
159
 
160
+ ## Coding Sessions
161
+
162
+ Customers can add coding-session sync during first onboarding by selecting
163
+ Coding Sessions or by passing:
164
+
165
+ ```sh
166
+ npx -y askshepherd@latest agent --sources coding-sessions --name "<name>" --org "<organization>"
167
+ ```
168
+
169
+ Already-onboarded customers can add it later:
170
+
171
+ ```sh
172
+ npx -y askshepherd@latest agent --add-sources coding-sessions --name "<name>" --org "<organization>"
173
+ ```
174
+
175
+ The local collector reads Codex session JSONL under `~/.codex/sessions` and
176
+ Claude Code JSONL under `~/.claude/projects`, redacts sensitive values locally,
177
+ and uploads bounded summaries with repo, command, file, verification, and
178
+ follow-up metadata. It does not upload full raw transcripts. In production,
179
+ Shepherd writes a concise `building/index.md` recent-work ledger plus detailed
180
+ session pages under `coding-sessions/` for MCP drill-in.
181
+
182
+ Check local and production sync health:
183
+
184
+ ```sh
185
+ npx -y askshepherd@latest coding-sessions-status
186
+ npx -y askshepherd@latest coding-sessions-status --json
187
+ ```
188
+
155
189
  ## Messages Chat Selection
156
190
 
157
191
  Local Messages sync on macOS needs Full Disk Access. During onboarding, Shepherd asks the user to grant or confirm Full Disk Access for:
@@ -159,7 +193,7 @@ Local Messages sync on macOS needs Full Disk Access. During onboarding, Shepherd
159
193
  - the app running onboarding, such as Terminal, iTerm, Claude Code, or Codex
160
194
  - the Node.js binary used by the background LaunchAgent
161
195
 
162
- The Messages selector validates access to `~/Library/Messages/chat.db`, opens System Settings -> Privacy & Security -> Full Disk Access if access is missing, and keeps checking in interactive onboarding until access works. Background sync install also checks that launchd can start the Messages agent. Contacts permission may also appear when Shepherd resolves local contact names for selected chats.
196
+ The Messages selector validates access to `~/Library/Messages/chat.db`, opens System Settings -> Privacy & Security -> Full Disk Access if access is missing, and keeps checking in interactive onboarding until access works. Background sync install also checks that launchd can start the Messages agent. Contacts permission may also appear when Shepherd resolves local contact names. The background agent reloads Contacts on startup, watches AddressBook changes when available, and runs a periodic fallback sync so renamed contacts can hydrate prior ingested Messages rows for that customer account.
163
197
 
164
198
  Open the local Messages chat selector:
165
199
 
@@ -169,7 +203,7 @@ npx -y askshepherd@latest messages-chats
169
203
 
170
204
  Use `--json` for machine-readable chat metadata, or `--text` for a terminal list.
171
205
 
172
- The browser selector displays the first page of recent chats and lets the user search contacts or groups loaded from local Messages.
206
+ The browser selector displays the first page of recent chats and lets the user search contacts or groups loaded from local Messages. It also has an explicit "Sync all current and future chats" option for users who want Shepherd to backfill every current local Messages chat and keep watching chats that appear later. Do not use this option by default; it is for explicit user approval.
173
207
 
174
208
  Pass the selected chat IDs when finishing onboarding:
175
209
 
@@ -177,6 +211,12 @@ Pass the selected chat IDs when finishing onboarding:
177
211
  npx -y askshepherd@latest agent --continue --messages-handle "<phone_or_apple_id>" --messages-chat-ids "<id1>,<id2>"
178
212
  ```
179
213
 
214
+ Or, with explicit approval to sync all local Messages chats:
215
+
216
+ ```sh
217
+ npx -y askshepherd@latest agent --continue --messages-handle "<phone_or_apple_id>" --messages-chat-ids all
218
+ ```
219
+
180
220
  ## Granola API Keys
181
221
 
182
222
  If Granola does not land on the API keys page, run: