Skip to content

Releases: kunkka19xx/lgtm

Lgtm 0.1.6

Choose a tag to compare

@kunkka19xx kunkka19xx released this 22 Oct 15:07

Upgrade

brew upgrade kunkka19xx/tap/lgtm

Others: the README or the guide.

Stacked pull requests

<Space>lp marks a request built on another one with its base, #12 ▸ feat-first-half feat: the second half, so the stack reads off the list. The trunk goes unsaid. A base branch that was merged and deleted, or force-pushed past, still opens: lgtm fetches the commit when the branch is gone.

A checkout is followed, not asked about

Your agent runs git checkout -b fix/thing and lgtm re-diffs against the branch it is now on, says now on fix/thing and moves the badge. Comments are kept per branch in .lgtm/branch-<name>.jsonl, so the ones written on main come back when you check it out again instead of re-anchoring onto code they were never about. The old comments.jsonl is adopted once.

Config without a restart

  • :config edit opens your config in $EDITOR and re-reads it when you come back. :config edit repo opens .lgtm/config.toml.
  • :config reload re-reads it in place.
  • <C-y> in the ? popup copies the selected row as the [keys] line that would bind it, every spelling included.

Also

  • Chinese. [ui] language = "zh", thanks @LuckTerence.
  • Shell and .env syntax highlighting, the latter thanks @sanglam2806.
  • Lists hold one size as the selection moves instead of growing and shrinking under your eye; [ui] fixed_list = false brings the old fit back. Thanks @sanglam2806.
  • Replies: answer your own remark in its thread, <C-p> posts just one to the request, and the comment keys are the same everywhere.
  • Japanese text measures and wraps by its real width.
  • The GitHub code is now behind a forge interface, the first step toward GitLab and Codeberg.

What's Changed

New Contributors

Full Changelog: v0.1.5...v0.1.6

v0.1.5 Replace git with lgtm!

Choose a tag to compare

@kunkka19xx kunkka19xx released this 17 Sep 03:47
137a6ce
image

Upgrade

brew upgrade kunkka19xx/tap/lgtm

Others: the README or the guide.

Use it instead of git

alias git=lgtm holds. What lgtm cannot express it hands to git verbatim, terminal and exit code included, so add -p, commit, rebase -i and log -p all work. What it answers itself:

you type you get
git diff the review, in the pane
git status one table: what changed, by how much, when
git risk what the change did to the tests
everything else git's, unchanged

lgtm git <command> always reaches the real one.

lgtm risk

The one question git cannot answer. A deleted test, an added skip, a body that stopped asserting: git diff shows all three as lines, and lines are the part of a diff people skim.

 src/auth.zig  2 tests removed, 3 fewer assertions
    5  − test "rejects an expired token" {

 src/parse.go  1 skip added
    4  + t.Skip("flaky in CI")

Exits 1 when something was weakened, so CI can ask too: lgtm risk --base origin/main. In the pane it is the same scan ]w walks. By content, never by path. Zig, Go, Python, JavaScript, TypeScript, Rust, Swift.

lgtm status

One table, printed and gone.

 ● R  src/core/{old => new}/app.zig    +3   −3  2h ago
      src/ui/
 ◐ M    ├─ app.zig                    +12   −4  27m ago
 ○ A    └─ status.zig                +210    0  just now

● all of it staged, ◐ some, ○ none, ? untracked. A directory with more than one changed file becomes a header, which is what makes the shape of a turn visible. Piped, it flattens back to whole paths, so lgtm status | grep src/ui keeps working.

Conversations on a pull request

  • <Space>vc opens the thread. Every message, author and age on each, yours marked (you). <CR> edits, r replies, d deletes.
  • A conversation is one row under the line, not one per message. Five stacked would be most of an eighty-column pane spent saying there are five.
  • Your own remarks edit and delete where they live, on the request. Somebody else's is refused.
  • A suggestion block is drawn as the edit it is, signed and coloured the way the diff signs it.
  • <C-s> says who asked for what: the request's remarks go to your agent alongside yours, each with its author, as 3 of mine, 4 from the request.

A commit is a turn

<Space>lt on a request lists the commits it was built from and ]t [t walk them, newest first. Read-only: comments go on the whole request, where their line numbers mean something to GitHub.

Also

  • Markdown, with the hunk header naming the section: @@ #4 | Install beats @@ #4 in somebody's README. SQL too, thanks @sanglam2806.
  • Japanese. [ui] language = "ja" draws every notice, list and badge in it.
  • The wheel scrolls the review inside tmux. Hold Shift to select as before, or [ui] scroll_lines = 0 to hand the mouse back.
  • lgtm themes prints the bundled ones. :tired drops the screen on the floor.

What's Changed

New Contributors

Full Changelog: v0.1.4...v0.1.5

v0.1.4 PR review

Choose a tag to compare

@kunkka19xx kunkka19xx released this 11 Sep 01:00
2669074

Review pull requests

  • lgtm --pr 123, or :pr 123 without restarting. :pr off comes back.
  • <Space>lp lists the open ones. :pr list all includes merged and closed.
  • Remarks already on the request come down with the diff, with their authors.
  • :post, :approve, :request-changes hand yours back as one review. <C-p> posts a single one.
  • <Space>gc writes a suggestion the author applies with one click.

Needs gh, logged in. Nothing else changes without it.

Also

  • Syntax highlighting for JSON, YAML, TOML and Dockerfiles.
  • Multi-line lists in config.toml, with comments and a trailing comma. Thanks @khongtrunght.
  • A preview panel beside every list: the pane's screen, the remark, the head of a file's diff.
  • A spinner while gh runs, so the pane never looks frozen.

Upgrade

brew upgrade kunkka19xx/tap/lgtm

Others: see the README or the guide.

DEMO

lgtm-pr.mov

What's Changed

New Contributors

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@kunkka19xx kunkka19xx released this 06 Sep 04:39
b6b7580

Support

  • C, C++, C#, lua
  • Fix bugs: git while using lgtm, moving files
  • Add a popup to connect to agent chat session (worked with tmux, i didn't test others)
  • Expanding, Folding lines in a file

Upgrade:

  • Macos brew
brew upgrade kunkka19xx/tap/lgtm
  • Others: Read Readme or user guide

What's Changed

Full Changelog: v0.1.2...v0.1.3

v0.1.2 Java Support

Choose a tag to compare

@kunkka19xx kunkka19xx released this 05 Sep 16:48
a2d4ab6

Fix

  • Indent issue with golang. Thank @dont-wait for the finding

Add

  • Java code highlight support

What's Changed

New Contributors

Full Changelog: v0.1.1...v0.1.2

v0.1.1 Themes switching and bugs fixed

Choose a tag to compare

@kunkka19xx kunkka19xx released this 05 Sep 01:59

Pick a theme without leaving the pane, and two things that used to look broken.

image

Themes, from inside lgtm

:theme takes a name and <Tab> walks the seven bundled ones, so you can see each one on your own diff instead of guessing from a screenshot.

terminal  catppuccin  tokyo-night  gruvbox  dracula  rose-pine  kanagawa
:theme kanagawa

:theme on its own tells you which one is on. :colorscheme and :colo do the same thing if that is what your fingers type. It lasts for the session, and the status line hands you the config line to keep it.

Images no longer come out as noise

A new PNG used to be rendered as its bytes, which buried the rest of the review under a screen of garbage. Anything that is not text now gets one row instead:

  logo.png
  PNG image | 1200x630 | 8.5 KB

Kind, size, and pixel dimensions for PNG, JPEG, GIF, BMP and WebP. A deleted binary says so. The +0 -0 is gone from those rows, since counting lines in a file that has none was never telling you anything.

Highlighting for files outside the review

A file opened with <Space>F that your agent has not touched used to render plain. It is highlighted now, like everything else. Costs about a tenth of a millisecond per thousand lines, once, then it is cached.

Building from source

make dev installs the working tree as lgtm-dev, so it sits beside a released lgtm instead of shadowing it. make clean-dev takes it away again.

Install

# macOS and Linux, arm64 and x86_64 - checksum-verified, no sudo
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/lgtm/main/scripts/install.sh | sh

brew install kunkka19xx/tap/lgtm      # macOS

paru -S lgtm-bin                      # Arch, or lgtm-git to build main or `yay -S lgtm-bin`

nix run github:kunkka19xx/lgtm         # Nix
nix profile add --refresh github:kunkka19xx/lgtm

Then run lgtm in any git repository, in a pane next to your agent. ? lists every key.

Verify a download against SHA256SUMS below.

Full Changelog: v0.1.0...v0.1.1

lgtm v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 17:26

Read what your agent wrote - before you say LGTM.

image

A terminal diff reviewer for agentic coding. It runs in a pane beside your agent, shows what changed as it changes, and lets you point at exact lines when you reply.

lgtm is what you type after reviewing. This is the tool that lets you mean it.

Screen.Recording.2026-09-05.at.1.20.58.mov

Install

# macOS and Linux, arm64 and x86_64 - checksum-verified, no sudo
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/lgtm/main/scripts/install.sh | sh

brew install kunkka19xx/tap/lgtm      # macOS

paru -S lgtm-bin                      # Arch, or lgtm-git to build main

nix run github:kunkka19xx/lgtm         #Nix
nix profile add github:kunkka19xx/lgtm

Then run lgtm in any git repository, in a pane next to your agent. ? lists every key.

You also need git. tmux is optional.

Status

Pre-alpha, and used daily by its author. It started as a Go tool for reading diffs in a terminal; this is a rewrite in Zig, rebuilt around a coding agent rather than a person. The loop works end to end.

Verify a download against SHA256SUMS below.

Full Changelog: https://github.com/kunkka19xx/lgtm/commits/v0.1.0