The developer reference.
The exact strings behind the developers page: commands and flags, the two checks, the GitHub App permissions, and the Supabase connection.
What it can and cannot do to your repository.
Four permissions, and nothing reaches your default branch without a pull request you merge.
The gate is deterministic: it returns the events your journey says should exist and do not. Call it over HTTP from CI, or as an MCP tool from your coding agent.
The review is a model reading your diff against a policy, run on pull request opened, updated or reopened. It comments on the exact line and can be wrong. Gate merges on the deterministic check.
In CI, the tracking scanner runs on your runner and posts findings to the check endpoint. A not-ok answer fails the build. It never comments on the pull request.
Reviews collect on a Pull requests page in your workspace.
Four permissions, and nothing else.
The App is scoped to the repositories you select, and every change it makes arrives as a pull request.
- Contents
Read & write. Reading your code and
skene-context/files; committing updates back through pull requests. - Pull requests
Read & write. Reading diffs, posting reviews, opening fix pull requests.
- Issues
Read & write. Responding to
/skene fixcomments. - Metadata
Read. Listing the repositories the installation can access.
Skene OSS, from the terminal.
The three ways to run it, the two schema flags, and the model providers it takes.
The full subcommand list, flag tables and engine HTTP API are in the Skene OSS docs: see the CLI reference and the HTTP API reference.
Two flags, seven providers, two agents.
Every count the band above states, with the clause that qualifies it.
- Two schema flags, and neither is the default
--schema-dirtakes a directory of exported .sql files;--db-urltakes a live PostgreSQL string, Supabase included. The CLI introspects the database at runtime and never persists it. Connecting to a live database is your choice, never the default. - Seven values for --provider
openai, gemini, anthropic/claude, lmstudio, ollama, generic or skene, and
--api-keysets the key. lmstudio and ollama run locally and need no key. Skene charges nothing for the run;--provider skenepoints the CLI at Skene as a model provider without making the run a Cloud product. - Two agents, seven lifecycle stages
One emits a milestone per user-facing table in your schema; the other emits one per user-facing route, handler, analytics call or job in your repository. Milestones land across discovery, onboarding, activation, engagement, retention, expansion and virality.
No second analytics tool.
PostHog, Mixpanel and the rest of your analytics stack keep receiving what they receive today.
Skene protects the tracking calls that feed PostHog, Mixpanel, and whatever else your team already runs.
The scanner recognises tracking calls for 16 analytics platforms by pattern, no model in the loop. It can tell you a call is gone without reading the events it would have sent.
You connect your own Supabase project over OAuth, and it starts read-only. It reads table, column and type definitions, not row data. It never writes. Read-write mode for automations is opt-in; none of the checks need it.
Where the data lands
Unchanged by Skene
PostHog · Keeps receiving what it receives today · Mixpanel · Unchanged
What to check before you connect a repository.
The full flag tables and the engine HTTP API are in the Skene OSS docs.
uvx skene analyse-journey . runs it with nothing installed, and the TUI binary comes from GitHub Releases. The pull request check runs as a GitHub App.Put the check on a pull request.
The case for it, the review it writes, and what you keep if we go away are on the developers page.