- Fix bootstrap-command test: mock ensureManagedWebRuntime to probe directly instead of requiring standalone build on disk - Add PostHog telemetry to CLI and web app with opt-out support - Add dench alias package (npm rejects name; kept for future use) - Bump version to 2.0.4 and publish to npm
3.0 KiB
3.0 KiB
Telemetry
DenchClaw collects anonymous, non-identifiable telemetry data to help us understand how the product is used and where to focus improvements. Participation is optional and can be disabled at any time.
What We Collect
| Event | When | Properties |
|---|---|---|
cli_bootstrap_started |
denchclaw bootstrap begins |
version |
cli_bootstrap_completed |
Bootstrap finishes | duration_ms, workspace_created, gateway_reachable, web_reachable, version |
chat_message_sent |
User sends a chat message in the web UI | message_length, is_subagent |
chat_stopped |
User stops an active agent run | — |
workspace_created |
New workspace is created | has_seed |
workspace_switched |
User switches workspaces | — |
workspace_deleted |
Workspace is deleted | — |
session_created |
New web chat session is created | — |
object_entry_created |
CRM object entry is created | — |
report_executed |
A DuckDB report is executed | — |
file_uploaded |
A file is uploaded to the workspace | — |
$pageview |
User navigates within the web app | $current_url (path only, no query params with user data) |
Every event includes baseline machine context: os (platform), arch, and
node_version. A SHA-256 hash of the machine hostname + username (truncated to
16 hex chars) is used as the anonymous distinct ID — it cannot be reversed to
identify you.
What We Do NOT Collect
- File contents, names, or paths
- Message contents or prompts
- API keys, tokens, or credentials
- Workspace names (never sent, not even hashed)
- IP addresses (PostHog is configured to discard them)
- Environment variable values
- Error stack traces or logs
- Any personally identifiable information (PII)
How to Opt Out
Any of these methods will disable telemetry entirely:
CLI command
denchclaw telemetry disable
Environment variable
export DENCHCLAW_TELEMETRY_DISABLED=1
DO_NOT_TRACK standard
export DO_NOT_TRACK=1
CI environments
Telemetry is automatically disabled when CI=true is set.
Check status
denchclaw telemetry status
Debug Mode
Set DENCHCLAW_TELEMETRY_DEBUG=1 to print telemetry events to stderr instead of
sending them. Useful for inspecting exactly what would be reported.
How It Works
- CLI: The
posthog-nodeSDK sends events from the Node.js process. Events are batched and flushed asynchronously — telemetry never blocks the CLI. - Web app (server): API route handlers call
trackServer()which uses the sameposthog-nodeSDK on the server side. - Web app (client): The
posthog-jsSDK captures pageview events in the browser. No cookies are set; session data is stored in memory only. - PostHog project token: The write-only project token (
phc_...) is embedded in the built artifacts. It can only send events — it cannot read dashboards or analytics data.
Re-enabling
denchclaw telemetry enable