Skip to content
CLI docs

skene CLI documentation

Analyze codebases through the lens of product-led growth: map the customer journey encoded in your code and database schema, then push the results to Skene Cloud.

Get from zero to a customer journey map.

Prerequisites

  • Python 3.11 or later
  • uv installed (curl -LsSf https://astral.sh/uv/install.sh | sh)
  • An API key from OpenAI, Google Gemini, or Anthropic, OR a local LLM running via LM Studio or Ollama

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-key and --provider flags directly to each command, or by setting the SKENE_API_KEY and SKENE_PROVIDER environment variables.

Analyse your journey

Run the analysis

uvx skene analyse-journey .

The pipeline runs code and schema agents when you supply their inputs. Each proposes candidate milestones. A deterministic merge step with no model in the loop reconciles the two sets, a per-milestone classification pass places them, and the run assembles one validated Customer Journey 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: use the verified source revision; published 0.5.1 has no --db-url
uvx --from git+https://github.com/SkeneTechnologies/skene.git@8eb7942f569a4f99387e5c05b086c7babc8ce3d3 skene analyse-journey . --db-url "postgresql://user:pass@localhost:5432/mydb"

Tip: Use -o to change the output path (default ./skene-context/journey.yaml) and --product-name to 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

Publication: A normal CLI run writes the journey locally. A linked TUI run using the Skene provider can automatically publish the first journey if the workspace has none. You can also run skene push explicitly. Push uploads existing bundle files and includes engine metadata or the latest trigger migration when present; it does not generate them.

What you get

analyse-journey writes journey.yaml. Other workflows may add the following bundle files:

FileDescription
journey.yamlCustomer journey map across seven lifecycle stages, produced by analyse-journey
engine.yamlEngine model (subjects + features), validated by status and uploaded by push
feature-registry.jsonFeatures 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