mrkeyoor.com_
Fri 18 Sept 02:52 UTC
AI Toolsevaluationupdated 26 Aug 2026

lumen review

Lumen is a terminal interface for reading Git and Jujutsu diffs side by side, annotating them, and reviewing pull requests. Its optional AI commands draft commit messages, explain changes, and translate plain English into Git commands, while the diff viewer works without an AI account.

+11stars / 7d
Verdict

Our Lumen build took 305 seconds and 134 of 135 tests passed, with one merge-base test unable to find refs/heads/main. It is worth trying for terminal-first diff review, especially when stacked commits and agent feedback are daily work. Keep sensitive AI keys out of the JSON config, and do not rely on in-memory annotations for a long review until persistence exists.

We ran it

Lab card: what happened when we ran lumenScreenshot of lumen (github.com/jnsahaj/lumen)
Install✓ · 37s518 packages
Build✓ · 305s
Tests✗ · 21s134 passed · 1 failed of 135 (cargo test)
Repo56 files~22,170 lines of source · 1 MB · 1 CI workflows

Answers from our run

Does lumen build from source?

Dependencies installed in 37 seconds (518 packages), and the build succeeded in 305 seconds. We cloned commit f600389 into a clean Debian container with 3 CPUs and no project-specific setup.

Do lumen's tests pass?

Not all of them: 134 of 135 passed and 1 failed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use lumen?

Reviewers who cannot risk losing draft comments: annotations currently live only in memory, and open issue 135 requests persistence across exits.

What are the alternatives to lumen?

difftastic, delta, lazygit. Our Lumen build took 305 seconds and 134 of 135 tests passed, with one merge-base test unable to find refs/heads/main.

Setup4/5Published binary is simple; source build took 305 seconds
Docs4/5Commands and providers are clear; one agent recipe is disputed
Community4/52,769 stars and issue activity continued into August 2026
Maturity3/5v2.32.0 is capable, but comments vanish on exit

Discussed on

  1. hnShow HN: Lumen – Free AI GitHub commit summarizer. Supports fuzzy-search3 points

Who it’s for

Developers who want a mouse-aware, side-by-side code review interface inside a terminal.
Teams reviewing stacked commits or GitHub pull requests without opening a browser.
Coding-agent users who want to send inline annotations back through captured command output.
Developers who prefer choosing among hosted AI providers or a local Ollama model for commit and explanation helpers.

Who it’s NOT for

Reviewers who cannot risk losing draft comments: annotations currently live only in memory, and open issue 135 requests persistence across exits.
Users with split-index Git repositories: issue 190 reports that Lumen's libgit2 path rejects the mandatory link extension.
Anyone expecting the documented Claude Code shell escape to work on every terminal: issue 170 reports a TTY error from !lumen diff.
Teams that prohibit API keys in plain configuration files: the README shows api_key in JSON, and issue 147 asks for operating-system keychain storage.

Setup reality

Our sandbox installed 518 Rust packages in 37 seconds and built Lumen in 305 seconds. Tests took 21 seconds: 134 passed and 1 failed out of 135. The failure said the merge-base test could not check out because refs/heads/main was not found.

The core viewer needs Git; Jujutsu is supported as another backend. fzf is optional for interactive commit selection, and mdcat is optional for formatted output. AI commands need a provider and model, plus an API key except when using local Ollama.

Homebrew and Cargo are the documented install paths, and releases supply a single Rust binary. Configuration can come from flags, a project file, environment variables, or a global JSON file. PR review also depends on GitHub access, while TUI behavior varies with terminal and clipboard support.

Side-by-side review is the product, AI is optional

Lumen opens Git changes in a full-screen terminal interface with a file sidebar, syntax highlighting, hunk navigation, and mouse selection. It can inspect the working tree, one commit, a branch range, or a GitHub pull request. Stacked mode presents commits individually and remembers viewed files while you move through the stack. Jujutsu repositories are supported alongside Git, which gives the tool a wider audience than a conventional Git pager.

The AI features sit beside that viewer rather than inside every action. lumen draft proposes a commit message from staged changes, lumen explain summarizes or answers questions about a diff, and lumen operate proposes a Git command from prose. The last command displays an explanation and asks before execution. More than 10 provider routes are documented, including OpenAI, Claude, Gemini, Groq, DeepSeek, Ollama, OpenRouter, and Vercel AI Gateway.

Annotations work well until the process exits

A reviewer can attach a note to selected text, a hunk, or a whole file. Pressing I opens the annotation list, and s exports formatted feedback to standard output. That output route is clever for coding agents: invoke Lumen through a shell escape, mark the diff, then return those comments as the agent's next input. No editor extension or vendor-specific message format is required.

The notes are currently held in memory. Open issue 135 explains that an accidental exit loses the review and proposes per-commit files. That limitation changes how we would use the tool: short agent passes are fine, but a long pull-request review needs regular exports. Issue 145 also supplies a reproducible panic when the annotation preview truncates Cyrillic at a non-character byte boundary. Teams reviewing multilingual comments should test that path before depending on it.

What happened when we ran it

Our sandbox installed 518 Rust packages in 37 seconds. Building commit f600389 took 305 seconds on 3 CPUs and 12 GB of RAM. The checkout itself was compact at 56 files, roughly 22,170 source lines, and 1 MB. It had 1 CI workflow, no Dockerfile, and no separate tests directory. A release binary avoids making every user pay that source-build time.

The test step ended with exit code 101 after 21 seconds. Cargo reported 134 passing tests and 1 failure out of 135. test_get_merge_base_returns_ancestor panicked while setting up a checkout, with the message reference 'refs/heads/main' not found. The log does not say why that reference was absent, so we cannot label it a branch-name assumption or an environment defect without evidence beyond the run.

A mostly passing suite is encouraging for a terminal application, but the single failure sits in version-control behavior central to the product. The practical response is to try Lumen on the branch layouts and backends your team uses. Our run did not exercise the interactive display, a real GitHub pull request, provider APIs, clipboard integration, or Jujutsu. Those paths need a terminal-level trial rather than an inference from 134 tests.

Configuration can expose an API key in plain JSON

The viewer requires no AI credential. Optional AI commands accept provider, key, and model through command flags or environment variables. lumen configure writes settings to ~/.config/lumen/lumen.config.json, and the README's advanced example includes an api_key property in that file. Open issue 147 specifically requests system-keychain storage because a configuration file is not a safe home for secret values.

Use environment injection or another secret manager instead of committing a project-level key. Configuration precedence also deserves attention: command flags win over a selected config file, which wins over environment variables and then defaults. A repository can contain lumen.config.json, so inspect it before assuming your global provider and model apply. Local Ollama avoids a hosted credential, though it still needs a running local model service.

Terminal and repository edge cases affect the headline workflow

Lumen routes its TUI to /dev/tty when standard output is captured, allowing clean annotations to return to a coding agent. Issue 170 reports that the README's !lumen diff recipe fails inside Claude Code with No such device or address. The report was still open when fetched. If agent handoff is your main reason to install Lumen, reproduce that exact shell and TTY path first.

Repository internals can also matter. Issue 190 shows lumen explain failing on a split-index repository because libgit2 rejects the mandatory link extension. Configurable keybindings and generated-file ignore rules remain open requests. Release v2.32.0 did fix clipboard copying on Wayland and added C, C++, and Java highlighting, which shows the maintainer is working through platform and language gaps rather than only adding AI providers.

July release work continued through August issues

GitHub recorded the last source push on July 16, 2026, when v2.32.0 was released. The repository had 2,769 stars and 69 combined issues and pull requests when fetched. Issue discussion continued into August, including an August 25 request for arbitrary keyboard text selection. The later issue activity matters because the release date alone would miss current user engagement.

Lumen has a clear job and a better interaction model than piping a large diff through a colorizer. Its 134 passing tests, stacked review, annotations, and plain-output agent handoff justify a trial. The open persistence, secret-storage, TTY, Unicode, and split-index reports are concrete boundaries. Install the release binary, export notes early, and validate the one terminal workflow you intend to use before moving a team review onto it.

Alternatives

ProjectWhat it isPick it when
difftastic gh↗A syntax-aware structural diff tool that can replace Git's text diff output.pick this instead when language-aware change matching matters more than an interactive review interface.
delta gh↗A fast pager that adds syntax highlighting and navigation to Git diffs.pick this instead when you want prettier command output without a full-screen annotation workflow.
lazygit gh↗A terminal Git client covering staging, history, branches, rebases, and custom commands.pick this instead when repository operations matter more than focused side-by-side review.

Sources

  1. Lumen README
  2. Lumen repository facts
  3. Lumen v2.32.0 release
  4. In-memory annotation issue 135
  5. API key storage issue 147
  6. Claude Code TTY issue 170

More ai tools reviews

OpenBitFun · rowboat · skills · superpowers-zh · yolov5 · eve · the whole board →