Skip to content

v0.18.0

Choose a tag to compare

@knu knu released this 11 Oct 13:57

Critty is the new name of crit. This first release from crittylabs/critty, the original crit repository, brings in everything developed as the TCrit fork since crit 0.2.2. The changelog lists every change in detail under TCrit 0.3.0 through 0.17.0.

Moving to Critty

  • Install from the new repository and Go module path, github.com/crittylabs/critty: go install github.com/crittylabs/critty/cmd/critty@latest or mise install github:crittylabs/critty. Release archives are named critty_*.
  • The command and the bundled agent skills are critty and critty-cli. Old tcrit commands and skills are not aliases: update scripts, reinstall the skills with critty install, and remove the old tcrit and tcrit-cli skills.
  • Reviews, configuration, and custom prompts saved by TCrit stay available. Their paths, .tcrit.config.json, the tcrit_state field, and TCRIT_HOST are unchanged.
  • Codex terminal markers start with CRITTY-. tfil 0.4.1 and later report them with --critty-notify; --tcrit-notify remains an alias.
  • TCrit releases remain available as the tcrit-v0.3.0 through tcrit-v0.17.0 tags.
  • Critty has its own logo and icon.

Agent workflow

  • Review commands follow the Crit workflow: they block until the reviewer finishes, print a result for the agent, and continue in later rounds with critty --session <id>. Reviews keep Crit-compatible review.json data, and critty comment and critty comments script them.
  • critty install adds the shared critty review loop and critty-cli reference to Claude Code, Codex, OpenCode, and Gemini CLI. critty check reports stale integrations, and finish prompts can be customized. The skills describe local effects and the scope of a human approval.
  • Reviews open in a full-width Herdr tab or a tmux split, found from process ancestry when the multiplexer environment is missing. Each round closes its pane or tab.
  • Codex reviews find their pane through the bundled codex wrapper or critty codex, a one-time marker shown by the skill, and optional notifications from terminal filters such as tfil.
  • critty env prints the terminal variables of the pane a review would use, as NAME=value lines or JSON. critty env tty prints only the terminal device, and critty env run <command> runs a command with those variables.

What to review

  • --scope selects all, staged, unstaged, or a committed comparison such as main..HEAD or main...; --staged and --unstaged are shortcuts. Each scope keeps its own session, shown in the header.
  • git diff <base> <head> | critty --diff reviews any Git unified diff, including outside a repository.
  • critty plan saves each revision of a plan and carries comment threads forward.
  • Repeated --attachment FILE flags show documents such as commit messages before the reviewed files. Task lists in attached Markdown become forms for required confirmations, choices, and individual permissions, and --result FILE exports the approved answers.
  • Every review gets its own session ID. critty stop --session <id> keeps it, and critty --session <id> resumes it.
  • --focus PATH[:LINE] and critty FILE:LINE start at a file or line.
  • The header names the project and the Git branch under review; --project and --topic replace them.

Comments

  • Threads support replies, resolution, and reopening. r toggles resolution in place, and R resolves and moves to the next unresolved thread, or opens the finish dialog after the last one.
  • f comments on the whole file, and removed lines can be commented on too.
  • ctrl+v pastes clipboard images into comments as Markdown attachments.
  • The comment editor has a kill ring (ctrl+y, alt+y), GitHub-style suggestions (alt+s), $EDITOR editing (ctrl+o), and @path completion. alt+w copies a source or thread reference, and clicking @path L40 or a comment ID jumps to it.
  • Comments follow edits between rounds: anchors match moved text, multi-line ranges resize with insertions and deletions, and comments without a matching line fold into markers at the right edge of the code.
  • h folds all resolved threads and H hides comment boxes for reading the diff.
  • A new round focuses the first thread with a fresh reply from another author.
  • Each author has a color, unfocused threads shrink to the latest message, and the focused thread has a bright border.

Navigation and display

  • The sidebar has a Files tab with a foldable tree that follows the active file. File tabs use compact paths, follow the tree order, and mark new and deleted files as (A +12) and (D -8).
  • n / N visit changes and unresolved comments across files; [ / ] and { / } move between all or unresolved threads. alt+p switches files by fuzzy search.
  • The top line names what is under review and ends with a Submit button. The mouse can click tabs, lines, threads, and buttons, scroll, and drag the gutter to select lines.
  • w ignores whitespace in diffs.
  • Text adapts to light terminal backgrounds, approval dialogs are light green, and editors place the real terminal cursor for input methods.

Diffs

  • Inline replacements keep whitespace, long highlighted lines wrap, and syntax highlighting starts faster.
  • Paths with spaces or special characters work, and binary files keep their added, deleted, modified, or renamed status.

Fixed

  • Tab-indented code quoted in comment and reply dialogs stays inside the preview border when it wraps.
  • The second click of a double-click that opens a dialog no longer activates a control under the pointer.