Terminal AI coding workbench for repo intelligence, background execution, project memory, and prompt-first terminal workflows.
Current release: v0.7.5: Beacon
Install · Quick Start · What's New · Beacon Workflow · Commands · Development
> Lumi is for real repo work: inspect, plan, edit, test, review, and ship from the terminal without collapsing into a generic chat loop.
Beacon Workbench/build, /learn, /review, /fixci, and /ship map requests to risk-aware repo runs.
|
Repo Intelligence Symbol indices, hotspots, impact files, suggested tests, verification commands, and cached digests keep context ready. |
|
Project Memory `LUMI.md` or `CLAUDE.md` conventions, decisions, recent runs, and artifact history persist across sessions. |
Prompt-First TUI Starter card, prompt rail, compact transcript, menus, shortcuts, review cards, and the jobs pane stay in view. |
- built around coding workflows, not generic chat
- can inspect a repo before changing it
- keeps lightweight workspace memory across sessions
- has both a full TUI and classic CLI mode
- includes release gates for benchmark and capability audits
Beacon is the name because this release is about direction and visibility: Lumi is more grounded in its own identity, gives clearer runtime signals, and makes repo work easier to track through permissions, context, telemetry, and workbench execution.
- Beacon release branding across the docs and release metadata
- real tool-permission management via
/permissionswith global and project rule files - session telemetry via
/tokensand/cost - recent tool and shell log access via
/logs - stronger project memory and dynamic prompt context assembly
- hardened local self-knowledge so Lumi knows its own identity, creator, release line, and runtime
- VS Code handoff with
/idefor opening the current workspace or a file directly from Lumi - richer
/learnsurfaces for symbol search, references, and impact analysis - benchmark publishing output via Markdown reports from the benchmark gate
- prompt flow now behaves like a messaging app: the transcript grows first, then the prompt follows it downward until it reaches the bottom
- one spacer row now separates the startup header from the first message block
- Gemini-first startup with
gemini-2.5-flashas the preferred default when configured /modelonly showing configured providers/effortsupport with real runtime profiles- while Lumi is working, prompt input is locked and
Escis the stop action - startup visuals stay ANSI-only with the minimal Claude-style mini bot and compact header
- self-identity follow-ups like
are you surenow stay on Lumi instead of leaking host model identity - status and doctor output with Workbench awareness
- benchmark gate and rebirth audit remain part of the release path
- CI is aligned with current GitHub Actions runtime expectations
curl -fsSL https://raw.githubusercontent.com/SardorchikDev/Lumi/main/install.sh | bashUseful variants:
curl -fsSL https://raw.githubusercontent.com/SardorchikDev/Lumi/main/install.sh | bash -s -- --dev
curl -fsSL https://raw.githubusercontent.com/SardorchikDev/Lumi/main/install.sh | bash -s -- --dir ~/apps/Lumi
curl -fsSL https://raw.githubusercontent.com/SardorchikDev/Lumi/main/install.sh | bash -s -- --helpThe installer:
- clones Lumi into
~/Lumi - creates a local
venv - installs dependencies
- creates a
lumilauncher in~/.local/bin - creates
~/Lumi/.envif it does not exist - initializes runtime state under
~/.codex/memories/lumi
- Add at least one provider key to
~/Lumi/.env - Open a new shell or reload your shell config
- Launch Lumi
lumiMinimal .env example:
GEMINI_API_KEY=
CLAUDE_API_KEY=
GROQ_API_KEY=
HF_TOKEN=
OPENROUTER_API_KEY=
MISTRAL_API_KEY=
AIRFORCE_API_KEY=
POLLINATIONS_API_KEY=Good first commands:
/onboard
/doctor
/model
/skills
/hooks
/learn architecture
/learn refs run_app
/build --plan add tests for parser errors
/ide status
/jobs
Good first prompts:
/build implement rate limiting for the auth endpoints
/review workspace
/fixci repair the failing github actions workflow
/ship prepare release notes for the current branch
When configured, Lumi starts with these defaults:
- provider preference: Gemini first
- startup model:
gemini-2.5-flash - startup effort:
medium /modelonly shows configured providers?opens the shortcuts overlay when the prompt is empty
Optional model allowlists:
LUMI_GEMINI_MODELS=gemini-2.5-flash,gemini-2.5-pro
LUMI_HUGGINGFACE_MODELS=meta-llama/Llama-3.3-70B-Instruct
LUMI_ALLOWED_MODELS=gemini-2.5-flashUseful runtime overrides:
LUMI_HOME=~/Lumi
LUMI_STATE_DIR=~/.codex/memories/lumi/state
LUMI_CACHE_DIR=~/.codex/memories/lumi/cacheBeacon tightens the coding loop.
/learnmaps the repo, conventions, hotspots, impact files, and suggested tests./buildturns a request into a risk-aware implementation run./review workspacegives you repo-level review behavior instead of only single-file review./fixcitargets lint, typecheck, test, or workflow failures./shipverifies the repo and prepares release artifacts./jobsshows active and completed Workbench jobs in the TUI.
Use when you want Lumi to inspect, plan, edit, test, and prepare artifacts for a coding task.
/build implement structured logging for api requests
/build --plan refactor auth middleware
Use when you want Lumi to understand the repo before making changes.
/learn architecture
/learn payment flow
/learn symbol run_app
/learn refs Engine
/learn impact src/api/auth.py
Existing file review stays in place. Empty-target or workspace review routes through Beacon.
/review workspace
/review src/api/auth.py
Use when the repo is failing lint, typecheck, tests, or CI.
/fixci repair the failing pytest suite
/fixci fix the github actions benchmark gate
Use when you want Lumi to verify the repo and prepare release artifacts.
/ship prepare a release for the current branch
/ship --plan
Shows background Workbench activity in the TUI.
/jobs
Every Workbench run starts with a repo scan and cached intelligence snapshot.
Current capabilities:
- language and framework detection
- entrypoint and config file discovery
- symbol index for common coding languages
- symbol search with
/learn symbol <name> - reference lookup with
/learn refs <name> - dependency hints from imports
- impact file suggestions and
/learn impact <path|symbol> - test target suggestions
- verification command discovery
- workspace warnings and context digests
Lumi keeps lightweight workspace memory under the Workbench state directory.
It stores:
- conventions from
LUMI.mdorCLAUDE.md - decisions made during runs
- recent Workbench executions
- generated artifact history
This keeps Lumi consistent across sessions instead of re-learning the repo from zero every time.
Lumi's default interface is prompt-first:
- compact startup header on launch
- prompt rail and footer shortcuts
- transcript-first flow where the prompt follows the conversation downward
- command menus and model picker
- shortcuts overlay on
? - command palette on
Ctrl+P - TODO pane on
Ctrl+T - review cards and approval flows
- background Workbench jobs pane
- terminal-safe paste and selection behavior
Useful keys:
?shows shortcuts/opens the command menuCtrl+Nopens the model pickerCtrl+Popens the command paletteCtrl+Ttoggles the TODO paneCtrl+Gtoggles the starter cardTabaccepts command or path suggestionsPgUp/PgDnscroll menus and transcriptShift+Up/Shift+Downscroll the transcriptEsccloses transient UI and cancels pending file plans
| Command | Description |
|---|---|
/model |
Switch provider and model |
/effort [low|medium|high|ehigh] |
Set reasoning effort |
/status |
Show session and workspace status |
/doctor |
Check provider and workspace health |
/onboard |
Show first-run and workspace guidance |
/skills [inspect <name>] |
List markdown skills or inspect one |
/hooks [inspect] |
Show lifecycle hook configuration |
/rebirth [status|on|off] |
Show the rebirth capability profile and toggles |
/benchmark [list] |
Show built-in benchmark scenarios |
/tokens or /cost |
Show token usage and session cost |
/logs |
Show recent tool and shell logs |
/clear |
Clear the current conversation |
/exit |
Exit Lumi |
| Command | Description |
|---|---|
/build <task> |
Inspect, plan, edit, test, review, and prepare artifacts |
/learn [topic] |
Build repo intelligence and explain architecture |
/review [file|workspace] |
Review code or run workspace review through Workbench |
/fixci [goal] |
Repair CI, lint, type, and test failures |
/ship [goal] |
Verify the repo and generate release artifacts |
/jobs |
Show background Workbench jobs |
| Command | Description |
|---|---|
/file <path> |
Load a file into context |
/project <dir> |
Load a project into context |
/browse [dir] |
Open the file browser |
/git status |
Show git status |
/git summary |
Summarize repo state |
/git review |
Review git changes |
/search <query> |
Search the web |
/web <url> [question] |
Ask questions about a webpage |
/image <path> [question] |
Inspect an image |
/voice [seconds] |
Record and transcribe voice into the prompt |
/ide [path|status] |
Open the workspace or a file in VS Code |
| Command | Description |
|---|---|
/remember <fact> |
Save a long-term memory |
/memory |
View stored memories |
/note add|list|search |
Manage notes |
/todo add|list|done|rm |
Manage todos |
/lumi.md show|create |
Show or create Lumi project context |
/claude.md show|create |
Show or create Claude Code-compatible project context |
/plugins |
Show plugin status |
/permissions [all|plugins|mode|add|rm] |
Show or update tool permissions, plus plugin permission info |
Lumi can turn markdown files into slash commands.
- workspace roots:
./skills/and./.lumi/skills/ - global root:
~/Lumi/skills/ - runtime command:
/skills - dynamic execution: each discovered skill command appears in the
/menu and runs through Lumi's normal model, memory, and repo context stack
Example skill:
---
name: Release Helper
command: /release
description: Draft release notes for the current branch.
---
Draft release notes for {{args}} in {{workspace}}.Hooks provide deterministic shell automation around Lumi lifecycle events.
- config roots:
./hooks.json,./.lumi/hooks.json, and~/Lumi/configs/hooks.json - supported events:
before_message,after_response,before_command,after_command - runtime command:
/hooks
Example hook config:
{
"before_message": [
{
"name": "lint-guard",
"command": "printf '%s' \"$LUMI_HOOK_INPUT\""
}
]
}Beacon is the release name. Rebirth is still a runtime profile.
Use /rebirth to view the capability matrix and readiness score for core coding-agent workflows.
Use /rebirth on to apply the profile defaults:
- detailed response mode
- compact mode off
- guardian watcher on
Lumi includes two release gates:
scripts/benchmark_gate.pyscripts/rebirth_audit.py
The CI workflow prints gate diagnostics directly into logs when a failure happens. scripts/benchmark_gate.py can also emit machine-readable JSON and Markdown benchmark reports.
If a repo contains LUMI.md or CLAUDE.md, Lumi loads it automatically as project context and Workbench memory seed data.
Example:
# Project Context
## Stack
Python 3.11, FastAPI, PostgreSQL
## Conventions
- Type hints everywhere
- Use pytest
- Keep functions small
- Ship concise release notesThe repo is intentionally source-first. Runtime state, caches, sessions, and generated packaging files are not part of the tracked project layout.
.
├── configs/ configuration and benchmark gate inputs
├── docs/ docs assets and supporting media
├── scripts/ audit and benchmark entry scripts
├── src/
│ ├── agents/ agent loop, council, verification, edit engine
│ ├── chat/ provider clients, model catalogs, cost, effort controls
│ ├── cli/ classic CLI parsing, rendering, and shared context
│ ├── memory/ conversation store, short-term memory, long-term memory
│ ├── prompts/ system prompt and dynamic context building
│ ├── tools/ agent tool runtime, search, MCP, RAG, voice
│ ├── tui/ prompt-first terminal UI, views, input, session state
│ └── utils/ repo profile, permissions, hooks, export, git helpers
├── tests/ unit and integration coverage
├── install.sh installer
├── lumi launcher shim
├── main.py classic CLI entrypoint
└── README.md project overview
Structure notes:
src/is the real product surface.configs/,scripts/, andtests/support that surface.- runtime state lives outside the repo under Lumi's state/cache directories, not in tracked source folders.
- generated files like
egg-info, undo snapshots, model caches, and local memory artifacts are intentionally ignored.
git clone https://github.com/SardorchikDev/Lumi.git ~/Lumi
cd ~/Lumi
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pre-commit installChecks:
pytest -q
ruff check .
python scripts/benchmark_gate.py --config configs/benchmark_gate.json
python scripts/rebirth_audit.py --strict
