Skip to main content

Privacy & Security

What stays local

Everything you capture. All captured data is stored in ~/.workscribe/ on your machine. Nothing is written to any remote server except what you explicitly send to your AI provider when you run workscribe summary, and a small anonymous install ping — on by default, see below. Both the database and config file are written with 0600 permissions (owner read/write only).

Anonymous install telemetry

Workscribe sends a small anonymous ping on startup, at most once every 24 hours per install — on by default. Sent:
  • A randomly generated install ID — not tied to your identity, your repos, or any account
  • CLI version
  • OS platform
  • Node.js version
Never sent: commands, events, sessions, or summaries — nothing from the “What gets redacted” or “What is sent to your AI provider” sections below. Telemetry does not run for the background shell-hook process that captures each command (_capture/_hook) — only for commands you run directly, and never more than once in a 24-hour window. Opt out:

What gets redacted

Before any event is written to disk, Workscribe strips sensitive patterns from the raw command string: Automatically redacted:
  • Bearer tokens (Bearer <token>)
  • Authorization headers
  • API keys and secrets in common formats
  • Passwords passed as flags (--password, -p)
  • JWT tokens
  • Private keys
  • Slack incoming webhook URLs (hooks.slack.com/services/...)
Add your own patterns:
Redaction is applied as a regex replace — matched values are replaced with [REDACTED] before the command touches the database.

What is sent to your AI provider

Only when you run workscribe summary. Only structured event categories — never raw commands. Sent:
The following categories are captured locally but excluded from the AI payload — they are investigative or shell noise with no meaningful summary value:
  • environment — export, source
  • code_search — grep, find, rg, npx eslint searches
  • code_read — cat, head, tail
  • server_run — npm run dev, yarn start
  • git_other — git status, git log, git diff
Never sent:
  • Raw command strings
  • File paths or file contents
  • Credentials or tokens
  • Hostnames or IP addresses

Using Ollama for full offline operation

If you want zero external data transmission, use Ollama:
With Ollama, workscribe summary never makes an external network request for your summary data. The anonymous install ping (see above) still runs unless you disable it — add workscribe config set telemetry.enabled false for fully offline operation.

Pausing capture

To temporarily stop capturing — for example, when working with sensitive data or sharing your screen:
When paused, the shell hook still fires but all events are silently discarded before touching disk.

Removing your data

Delete the entire data directory:
This removes the database, config, exports, and cache. The shell hook in your ~/.zshrc or ~/.bashrc will still fire but write nothing (it will error silently). To remove the hook, delete the block between # workscribe:hook:start and # workscribe:hook:end in your shell rc file.