Get from zero to a customer journey map.
Prerequisites
Setup
Create and configure
# Create a config file with sensible defaults
uvx skene config --init
# Set up your LLM provider and API key interactively
uvx skene config
The interactive setup walks you through provider, model, and API key selection.
Tip: You can skip config setup entirely by passing
--api-keyand--providerflags directly to each command, or by setting theSKENE_API_KEYandSKENE_PROVIDERenvironment variables.
Analyse your journey
Run the analysis
uvx skene analyse-journey .
A main "skene" agent orchestrates two parallel subagents (one analyzing your codebase, one analyzing your database schema) to discover product features. A synthesis step merges them into a feature map (features.yaml) and composes user-journey milestones from it, producing a validated Customer Journey map across seven lifecycle stages: discovery, onboarding, activation, engagement, retention, expansion, and virality.
The result is written to ./skene-context/journey.yaml.
Include your database schema
The schema agent needs one of two inputs, never both:
# SQL files: a directory of pre-exported *.sql files
uvx skene analyse-journey . --schema-dir ./schemas
# Live database: a PostgreSQL connection string (credentials are never stored)
uvx skene analyse-journey . --db-url "postgresql://user:pass@localhost:5432/mydb"
Tip: Use
-oto change the output path (default./skene-context/journey.yaml) and--product-nameto override the inferred product name.
Verify and deploy
Check implementation status
If your project has a skene-context/engine.yaml, verify engine/migration alignment:
uvx skene status
Checks skene-context/engine.yaml structure and verifies action-enabled features have matching migration triggers.
Push upstream
To deploy your Skene bundle to Skene Cloud, log in and push:
uvx skene login --upstream https://skene.ai/workspace/<my-workspace-name>
uvx skene push
Note: Journey analysis never publishes anything by itself. To get your
journey.yamlinto the cloud Customer Journey canvas, push it: from the TUI use the explicit "Deploy to Skene Cloud" step, from the CLI runskene push.pushuploads existing artifacts (engine.yaml, optionalfeature-registry.json, and the latest trigger migration undersupabase/migrations/); it does not generate them.
What you get
Your ./skene-context/ directory contains:
| File | Description |
|---|---|
journey.yaml | Customer journey map across seven lifecycle stages, produced by analyse-journey |
engine.yaml | Engine model (subjects + features), validated by status and uploaded by push |
feature-registry.json | Features tracked across analysis runs, linked to engine features |
Alternative: Quick one-liner
If you want to try the analysis without setting up a config file first, pass your API key inline:
uvx skene analyse-journey . --api-key "your-key"
This uses the default provider (openai) and model (gpt-4o). To use a different provider:
uvx skene analyse-journey . --api-key "your-key" --provider gemini --model gemini-3-flash-preview
Local providers need no API key at all:
uvx skene analyse-journey . --provider ollama --model llama3.3
Next steps
- CLI reference: every
analyse-journeyflag, plusserve,attach, and more - Push command in depth: Supabase migrations and upstream deployment
- Status command in depth: engine/migration validation
- Features: managing and exporting the feature registry
- Login: authenticating with Skene Cloud upstream
- Configuration reference: config files, environment variables, precedence rules
- LLM providers: setup for OpenAI, Gemini, Anthropic, LM Studio, Ollama, and generic endpoints
