Telemetry
Syllago collects anonymous usage telemetry to understand which commands and features are used. Telemetry is opt-out — you can disable it at any time.
Opting out
Section titled “Opting out”Any of these methods will disable telemetry:
# Via syllago commandsyllago telemetry off
# Via environment variable (respects console.do standard)export DO_NOT_TRACK=1What we collect
Section titled “What we collect”Every event includes these standard properties:
| Property | Type | Description | Example |
|---|---|---|---|
version | string | Syllago version | "0.7.0" |
os | string | Operating system (runtime.GOOS) | "linux" |
arch | string | CPU architecture (runtime.GOARCH) | "amd64" |
command_executed
Section titled “command_executed”Fired when a CLI command completes successfully.
When: PersistentPostRun (every non-telemetry command)
| Property | Type | Description | Example | Commands |
|---|---|---|---|---|
command | string | Command name (cobra command path) | "install" | all |
provider | string | Target provider slug | "claude-code" | install, uninstall, loadout_apply, sandbox_run, sync-and-export, capmon_validate_spec, capmon_validate_format_doc, capmon_validate_sources, capmon_derive, capmon_check, capmon_onboard |
content_type | string | Content type filter or specific type | "rules" | install, add, convert, create, uninstall, remove, list, share, sync-and-export, registry_items, capmon_validate_spec |
content_count | int | Number of content items affected | 3 | install, add |
dry_run | bool | Whether —dry-run flag was used | false | install, add, uninstall, remove, sync-and-export |
from | string | Source provider slug when adding cross-provider content | "cursor" | add |
from_provider | string | Source provider for conversion | "cursor" | convert |
to_provider | string | Target provider for conversion | "claude-code" | convert |
source_filter | string | Content source filter (library, shared, or registry) | "library" | list |
item_count | int | Number of items in the result set | 12 | list, registry_items |
mode | string | Operational mode (loadout ‘try’, add ‘monolithic’) | "try" | loadout_apply, add |
discovery_candidate_count | int | Number of monolithic rule files considered by add (D18) | 3 | add |
selected_count | int | Number of monolithic rule files actually imported (D18) | 2 | add |
split_method | string | Splitter heuristic used for monolithic rule imports (D3) | "h2" | add |
scope | string | Scope label for the imported sources (project, global, mixed) | "project" | add |
action_count | int | Number of actions performed by loadout | 5 | loadout_apply |
registry_count | int | Number of registries involved | 2 | registry_sync |
moat_tier | string | Resolved MOAT trust tier for the item (UNSIGNED, SIGNED, DUAL-ATTESTED) | "SIGNED" | install |
moat_gated | string | MOAT install-gate outcome (proceed, hard-block, publisher-warn, private-prompt, tier-below-policy) | "proceed" | install |
verification_state | string | D16 verification state for rule-append installs (fresh, clean, modified) | "clean" | install |
decision_action | string | D17 decision action taken during re-install (proceed, replace, skip, drop_record, append_fresh, keep) | "replace" | install |
tui_session_started
Section titled “tui_session_started”Fired when the TUI exits normally after a session.
When: After tea.Program.Run() completes without error (main.go root command)
| Property | Type | Description | Example | Commands |
|---|---|---|---|---|
success | bool | Whether the TUI exited normally | true | (root) |
What we never collect
Section titled “What we never collect”These categories of data are never included in telemetry events, regardless of configuration:
| Category | Examples |
|---|---|
| File contents | Rule text, skill prompts, hook commands, MCP configs |
| File paths | /home/user/.claude/rules/my-secret-rule |
| User identity | Usernames, hostnames, IP addresses, email |
| Registry URLs | Git clone URLs, registry names |
| Content names | Names of rules, skills, agents, hooks, or MCP servers you manage |
| Interaction details | Keystrokes, mouse clicks, TUI navigation paths |
Implementation
Section titled “Implementation”- Telemetry is sent to PostHog via their batch API
- A random anonymous ID is generated on first run and stored locally
- No cookies, fingerprinting, or cross-device tracking
- All telemetry code is in
cli/internal/telemetry/ - The event catalog source of truth is
catalog.go
Generated from syllago 0.10.3 on 2026-04-27.