From zero to your first narrative — in two minutes.
Copy each block, paste into a terminal, done. No config files, no build step.
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 →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
git clone https://github.com/tlc-ben-quinn/legible (coming), cd legible/cli && npm link. The tarball is identical — download here.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>
legible login --server <url> (no --token) prompts interactively for your email & password.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
✔ Project: your-project (id 7) · Files: 42 · Symbols: 612 · Calls: 2,108. Click the View URL to see the Static Explorer.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})"
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:
- Task Landing —
#/project/<id>: project overview, file tree, scan stats. - Static Explorer —
#/project/<id>/explorer: Cytoscape call-graph with filtering, zoomable symbol map. - Storytelling —
#/trace/<id>/story: horizontal timeline synced to the files pane; scrub to replay the run.