Quick start

From zero to your first narrative — in two minutes.

Copy each block, paste into a terminal, done. No config files, no build step.

Step 1 · 10 seconds

Create your account

Click through, fill in email & password (8+ chars). You’ll land on the Settings page with your API token ready to copy.

Create account →
Already have an account? Sign in at /app.html#/login and grab your token from Settings.
Step 2 · 30 seconds

Install the CLI

Node 20+ required. We’re not on the public npm registry yet, so install the tarball hosted on this site:

npm install -g https://dev.livetimelapse.com.au/legible/downloads/legible-cli-latest.tgz
legible --version
# 0.1.0
Prefer to run from source? git clone https://github.com/tlc-ben-quinn/legible (coming), cd legible/cli && npm link. The tarball is identical — download here.
Step 3 · 20 seconds

Point the CLI at your account

Token-based login — no email/password re-entry. Writes ~/.legible/config.json.

legible login --server https://dev.livetimelapse.com.au/legible --token <paste-your-token>
Prefer the classic flow? legible login --server <url> (no --token) prompts interactively for your email & password.
Step 4 · 10 seconds

Scan a real project

Parses every JS/TS/PY/PHP file locally with tree-sitter. Uploads only symbols, calls, imports — never your source.

cd path/to/your-project
legible scan . --name your-project
Output looks like: ✔ Project: your-project (id 7) · Files: 42 · Symbols: 612 · Calls: 2,108. Click the View URL to see the Static Explorer.
Step 5 · 60 seconds

Record what your code actually does

Runs your command under V8’s CPU profiler, parses the resulting profile, uploads spans. Attach to the project ID from Step 4.

legible trace --project 7 -- node src/main.js
# or --project 7 -- npm test
# or --project 7 -- node -e "require('./lib').handler({id:1})"
Best candidates: short (~1–30s) commands that exercise one task end-to-end. Long-running processes work but produce large profiles.
Step 6 · instant

Read what you just ran

Open the trace URL. Tap the &sparkles; Narrate button on the trace detail or the story view — Legible sends a redacted summary of the spans to Gemini-2.5-Flash (via OpenRouter) and returns a plain-English paragraph of what your code actually did.

The narrative is cached by (trace_id, prompt_version), so a repeat click costs zero tokens.

You’re done.

Three views are now live on your project:

Open the app → FAQ