@workscribe/cli 1.15.5 → 2.0.0

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
@@ -1,28 +1,41 @@
1
1
  # Workscribe
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@workscribe/cli)](https://www.npmjs.com/package/@workscribe/cli)
4
+ [![npm downloads](https://img.shields.io/npm/dw/@workscribe/cli)](https://www.npmjs.com/package/@workscribe/cli)
5
+ [![license](https://img.shields.io/npm/l/@workscribe/cli)](https://www.npmjs.com/package/@workscribe/cli)
6
+
3
7
  > Your work, automatically documented.
4
8
 
5
- Workscribe is a CLI tool that passively captures your terminal activity and transforms it into readable daily work summaries — without you having to write anything.
9
+ [Workscribe](https://workscribe.co) is a CLI tool that passively captures your terminal activity and transforms it into readable daily work summaries — without you having to write anything.
6
10
 
7
11
  ```
8
12
  $ workscribe summary
9
13
 
10
14
  ## api-service (feature/auth) — 2h 15m
11
- - Set up authentication feature branch and installed JWT dependencies
12
- - Resolved failing test suite for token validation logic
13
- - Committed authentication middleware fixes
15
+ - Committed: add JWT validation middleware
16
+ - Committed: fix token expiry check
17
+ - Resolved failing tests (9 runs, now passing)
18
+ - Added dependencies: bcrypt, jsonwebtoken
19
+ - Pushed to origin/feature/auth
14
20
 
15
21
  ## infrastructure — 45m
16
- - Restarted staging environment and verified deployment stability
17
- - Investigated and resolved Docker networking issue in compose setup
22
+ - Note: staging was flaky after the compose upgrade
23
+ - Builds passing (2 runs)
18
24
  ```
19
25
 
26
+ Want prose instead? Ask your coding agent to *"summarize my work today"* — see [Summaries](#summaries).
27
+
28
+ **[Full documentation →](https://workscribe.mintlify.site)** — commands, configuration, summaries, troubleshooting. This README covers getting started; everything else lives there and is kept current as the product changes.
29
+
20
30
  ## How it works
21
31
 
22
- A shell hook captures every command you run. At the end of the day, `workscribe summary` groups your activity into work sessions and sends structured event data (never raw commands) to your configured AI provider, which returns a standup-ready narrative.
32
+ A shell hook captures every command you run. At the end of the day, `workscribe summary` groups your activity into work sessions and turns them into a summary with its offline template engine — no AI provider, no API key, nothing sent anywhere.
33
+
34
+ For AI-written prose, ask the coding agent you already use (Claude Code, Codex, GitHub Copilot or Cursor) to *"summarize my work today"*. The Workscribe agent skill reads your sessions and writes the summary — install it with `workscribe skill install`.
23
35
 
24
36
  ```
25
- shell hook → capture → SQLite → session grouper → AI provider → markdown
37
+ shell hook → capture → SQLite → session grouper → template engine → markdown
38
+ ↘ agent skill (your coding agent) → prose summary
26
39
  ```
27
40
 
28
41
  ## Requirements
@@ -45,15 +58,19 @@ source ~/.zshrc # or restart your terminal
45
58
 
46
59
  > Use the global install flag for your package manager — e.g. `npm install -g`, `yarn global add`, `pnpm add -g`, or `bun add -g`.
47
60
 
48
- `workscribe init` walks you through choosing an AI provider, installs the shell hook, and offers to install a Claude Code session capture hook if Claude Code is detected. Safe to re-run — updates outdated hooks and skips steps already complete.
61
+ `workscribe init` installs the shell hook, offers to install a Claude Code session capture hook if Claude Code is detected, and offers to install the Workscribe skill into the coding agents it finds. Safe to re-run — updates outdated hooks and skips steps already complete.
62
+
63
+ ## Also capturing in your editor?
64
+
65
+ The [Workscribe VS Code extension](https://marketplace.visualstudio.com/items?itemName=workscribe.workscribe) feeds file saves, debug sessions, and test/build runs into the same summary — activity pure terminal capture misses entirely. It also adds a status bar item that surfaces the last summary for a file you haven't touched in 24+ hours. Uses this CLI under the hood; no separate setup beyond installing it.
49
66
 
50
67
  ## Uninstalling
51
68
 
52
69
  If the CLI is still installed:
53
70
 
54
71
  ```bash
55
- workscribe uninstall # removes shell hooks, optionally deletes ~/.workscribe/
56
- npm uninstall -g @workscribe/cli
72
+ workscribe uninstall # removes shell hooks and the agent skill, optionally deletes local data
73
+ npm uninstall -g @workscribe/cli # run after — npm doesn't run Workscribe's cleanup itself
57
74
  ```
58
75
 
59
76
  If you've already removed the binary and still see `_workscribe_precmd` errors in your terminal, remove the hook block manually:
@@ -62,130 +79,46 @@ If you've already removed the binary and still see `_workscribe_precmd` errors i
62
79
  2. Delete everything between `# workscribe:hook:start` and `# workscribe:hook:end` (inclusive)
63
80
  3. Run `source ~/.zshrc` or restart your terminal
64
81
 
65
- ## AI providers
82
+ ## Summaries
66
83
 
67
- Workscribe works with any of these — switch at any time via config:
84
+ `workscribe summary`, `week` and `export` use a built-in template engine: deterministic, instant and fully offline. There's nothing to configure.
68
85
 
69
- | Provider | Config value | Requires |
70
- |---|---|---|
71
- | Anthropic (Claude) | `anthropic` | API key |
72
- | OpenAI | `openai` | API key |
73
- | Ollama (local) | `ollama` | Ollama running locally — free, offline |
74
- | OpenAI-compatible | `openai-compatible` | API key + base URL (Groq, Together, Mistral…) |
86
+ For AI-written summaries, use the coding agent you already have. `workscribe skill install` adds the Workscribe skill to Claude Code, Codex, GitHub Copilot and Cursor; then ask the agent to *"summarize my work today"* (or type `/workscribe` in Claude Code). Summaries the agent writes are saved, so `workscribe summary` and the VS Code status bar show them too.
75
87
 
76
- ```bash
77
- workscribe config set ai.provider ollama # switch to local
78
- workscribe config set ai.provider anthropic # switch to Anthropic
79
- workscribe config set ai.apiKey <your-key>
80
- ```
88
+ **[How summaries work →](https://workscribe.mintlify.site/summaries)** · **Upgrading from 1.x?** AI providers were removed in 2.0 — see the **[migration guide →](https://workscribe.mintlify.site/migrating-to-2)**
81
89
 
82
90
  ## Commands
83
91
 
92
+ A few of the most common:
93
+
84
94
  | Command | Description |
85
95
  |---|---|
86
- | `workscribe init` | Set up Workscribe, install shell hooks, configure AI provider |
87
- | `workscribe uninstall` | Remove shell hooks and optionally delete all local data |
88
96
  | `workscribe summary` | Generate today's work summary |
89
- | `workscribe summary --date 2026-05-20` | Summary for a specific date |
90
- | `workscribe summary --week` | Summary for the current week |
91
- | `workscribe summary --fresh` | Bypass cache and regenerate |
92
- | `workscribe summary --verbose` | Show all captured events (including those excluded from AI) |
93
- | `workscribe summary --slack` | Post summary to configured Slack channel |
94
- | `workscribe summary --webhook <url>` | Post summary to a custom webhook URL |
95
- | `workscribe sessions` | List detected work sessions for today |
96
- | `workscribe sessions --date 2026-05-20` | Sessions for a specific date |
97
- | `workscribe events` | List captured events for today |
98
- | `workscribe events --date 2026-05-20` | Events for a specific date |
99
- | `workscribe events --limit 20` | Show only the most recent N events |
100
- | `workscribe export` | Save today's summary as a markdown file |
101
- | `workscribe export --date 2026-05-20` | Export summary for a specific date |
102
- | `workscribe export --output <path>` | Write to a custom file path |
97
+ | `workscribe week` | Generate this week's digest |
103
98
  | `workscribe status` | Check capture is active and show event counts |
104
- | `workscribe undo` | Remove the last captured event |
105
- | `workscribe undo -n 5` | Remove the last 5 captured events |
106
- | `workscribe undo --dry-run` | Preview what would be removed without deleting |
107
- | `workscribe clear` | Delete all captured events for today |
108
- | `workscribe clear --date 2026-05-20` | Delete all events for a specific date |
109
- | `workscribe clear --dry-run` | Preview what would be cleared without deleting |
110
- | `workscribe clear --yes` | Skip the confirmation prompt |
111
- | `workscribe pause` | Pause capture temporarily |
112
- | `workscribe resume` | Resume capture after a pause |
113
- | `workscribe config` | View current configuration |
114
- | `workscribe config get KEY` | Print a single config value |
115
- | `workscribe config set KEY VALUE` | Update a config value |
99
+ | `workscribe config` | View or update configuration |
100
+
101
+ **[Full command reference →](https://workscribe.mintlify.site/commands)** — every command and every flag.
116
102
 
117
103
  ## Privacy
118
104
 
119
- - All captured data is stored locally in `~/.workscribe/` — nothing is written anywhere else
105
+ - All captured activity data is stored locally on your machine — nothing is written anywhere else
120
106
  - Credentials are redacted before any event is written to disk (tokens, API keys, passwords, JWTs)
121
- - Nothing is sent to any remote server except your configured AI provider, only when you run `workscribe summary`
122
- - The AI provider receives structured event categories (e.g. `test_run`, `code_commit`) — never raw commands, file contents, or file paths
123
- - Use Ollama to keep everything fully on-device with zero external data transmission
107
+ - `workscribe summary`, `week` and `export` never send your activity anywhere — the template engine runs entirely on your machine
108
+ - The agent skill is the one exception, and only when you ask your coding agent for a summary: the agent sends the session data it reads to its own model provider
109
+ - Separately, Workscribe sends an anonymous install ping (a random ID, CLI version, OS platform, Node version — no activity data, ever), disclosed during `workscribe init`. Opt out anytime: `workscribe config set telemetry.enabled false`
110
+
111
+ **[Full privacy & security details →](https://workscribe.mintlify.site/privacy)**
124
112
 
125
113
  ## Configuration
126
114
 
127
115
  ```bash
128
- workscribe config set session.idleTimeout 20 # minutes before a new session starts (default: 30)
129
- workscribe config set ai.model gpt-4o # override the default model for your provider
130
- workscribe config set redact.extra "MY_PATTERN" # add a custom redaction regex
131
- workscribe config set summary.format json # output summary as JSON instead of markdown
132
- workscribe config set capture.ignore "mycommand" # suppress a command from being captured
133
-
134
- # Override the display name for a local clone whose folder name differs from the repo
135
- workscribe config set projects./Users/me/sandbox/myrepo actual-repo-name
136
-
137
- # Post summaries to Slack or a custom webhook
116
+ workscribe config set session.idleTimeout 20
138
117
  workscribe config set integrations.slackWebhook https://hooks.slack.com/services/...
139
- workscribe config set integrations.webhook https://custom.endpoint/hook # persistent default webhook
140
118
  workscribe summary --slack
141
- workscribe summary --webhook https://custom.endpoint/hook # one-off override
142
119
  ```
143
120
 
144
- | Config key | Default | Description |
145
- |---|---|---|
146
- | `ai.provider` | — | AI provider: `anthropic`, `openai`, `ollama`, `openai-compatible` |
147
- | `ai.apiKey` | — | API key for the configured provider |
148
- | `ai.model` | provider default | Model name override |
149
- | `ai.baseUrl` | — | Base URL for `openai-compatible` providers |
150
- | `session.idleTimeout` | `30` | Minutes of inactivity before a new session starts |
151
- | `git.qualifyRepoName` | `false` | Use `owner/repo` instead of bare `repo` for `repo_name` — helpful if you work across repos whose bare names collide (e.g. an org that names its repos after the tool each one targets) |
152
- | `capture.ignore` | common shell builtins | Commands to exclude from capture |
153
- | `capture.aiTools` | `true` | Set to `false` to disable all AI session capture |
154
- | `capture.includeAiderPrompt` | `true` | Set to `false` to skip reading Aider's history file for prompt context |
155
- | `redact.extra` | `[]` | Additional regex patterns to redact from captured commands |
156
- | `summary.format` | `markdown` | Output format: `markdown` or `json` |
157
- | `summary.includeCategories` | `[]` | Event categories to re-include in the AI prompt (e.g. `["linting"]`) |
158
- | `integrations.slackWebhook` | — | Slack incoming webhook URL |
159
- | `integrations.webhook` | — | Default webhook URL for `--webhook` |
160
- | `projects.<path>` | — | Display name override for a repo by absolute path |
161
-
162
- ## Slack integration
163
-
164
- Post your daily or weekly summary directly to a Slack channel:
165
-
166
- ```bash
167
- workscribe summary --slack
168
- workscribe summary --week --slack
169
- ```
170
-
171
- **Setup:**
172
-
173
- 1. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From scratch**
174
- 2. Name your app, select your workspace, and click **Create App**
175
- 3. In the left sidebar under **Features**, click **Incoming Webhooks**
176
- 4. Toggle **Activate Incoming Webhooks** to On
177
- 5. Click **Add New Webhook to Workspace**, choose a channel, and click **Allow**
178
- 6. Copy the webhook URL and run:
179
-
180
- ```bash
181
- workscribe config set integrations.slackWebhook https://hooks.slack.com/services/...
182
- ```
183
-
184
- Works on all Slack plans including free. No admin role required.
185
-
186
- Summaries posted to Slack are automatically formatted — headings are bolded, bullets converted to `•`, and your OS username is prepended so recipients know who sent it in shared channels. Custom `--webhook` URLs receive the raw markdown output unchanged.
187
-
188
- Config is stored at `~/.workscribe/config.json`.
121
+ **[Full configuration reference →](https://workscribe.mintlify.site/configuration)** — every key, Slack setup, webhooks, and more.
189
122
 
190
123
  ## Debug mode
191
124
 
@@ -195,6 +128,8 @@ If capture isn't working, set `WORKSCRIBE_DEBUG=1` to write errors to `~/.worksc
195
128
  WORKSCRIBE_DEBUG=1 workscribe status
196
129
  ```
197
130
 
131
+ **[Troubleshooting →](https://workscribe.mintlify.site/troubleshooting)**
132
+
198
133
  ## License
199
134
 
200
135
  MIT