Radial app

Usage data

Radial keeps anonymous usage stats so we can see where the app works and where it fails people. This page is the complete schema: every event the app can send, every property attached to it, and nothing else. If it isn't listed here, the app doesn't send it.

The rules

Events

EventWhen it firesExtra properties
app_openedThe app launches.pro (true/false, whether a Pro license is active)
project_createdA new project is created from a template.template (the built-in template's id)
project_openedA project opens successfully.none
agent_session_startedThe first agent message in a project, once per project per app run. Prompt volume is not recorded.provider (claude, codex, or cursor)
launch_check_runThe pre-launch checklist scans a project.issue_count (number of warnings plus failures)
site_publishedA publish or deploy succeeds.mode (preview, pr, direct, or deploy)
review_sharedA client review link is created.pro (whether a Pro license was active)
handoff_createdA teammate handoff link is created. The link's contents are encrypted on your machine and never readable by Radial.none
handoff_acceptedA handoff link is accepted and the project set up.none
editor_grant_createdAn editor link is created. Nothing from the repo travels with the event.mode (direct or approval, whether publishes need the owner's approval)
editor_join_acceptedAn editor link is accepted.none
editor_pr_mergedAn owner approves an editor's edits.none
license_activatedA Pro license key activates.none
upgrade_cta_clickedAn upgrade button in the app opens the pricing page.source (which screen the button was on: cap or promo)
adjust_appliedA batch of style tweaks from the adjust steppers is handed to the agent.tweaks (how many properties changed in the batch; never which ones, their values, or the element)
adjust_undoAn adjust batch is reverted from the undo chip.none
app_errorThe app itself hits an unexpected error, once per distinct error per run.surface (main, renderer, or preview), error_name (the error's type, like TypeError), where (a file and line inside Radial's own code, like renderer.js:1234). Error messages are never sent—they can contain file paths. The full details stay on your machine in error-log.jsonl.

Every event also carries the app version, the macOS version, the random install ID, and a timestamp. That's the whole payload.

One addition outside the app: Radial's publish service (the piece that moves an editor link's clones and publishes) keeps aggregate counters of its own: a link was created, a publish happened, a publish request was opened, a link was turned off. Each carries the repo name only, never file contents.

Where it goes

Events are processed for us by PostHog and are used only to improve Radial. They are never sold or shared for anyone else's purposes. Dev builds and test runs send nothing.

Turning it off

Settings → Privacy → Share anonymous usage stats → Off. The switch is immediate and persistent. The privacy policy and Trust & Security pages hold this in writing.