Skip to content

Releases: crittylabs/critty

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:14

Fixed

  • OpenCode’s /critty command now links to the installed supporting skills and review references. critty doctor recognizes installations with these corrected links as current.

v1.3.0

Choose a tag to compare

@knu knu released this 19 Oct 02:51

Added

  • History management — group reviews by task with critty history and the bundled critty-history skill. Save portable Markdown archives with attachments and images, inspect task storage, and defer maintenance across conversations. Reviews are retained by default. Automatic retention rotates eligible completed backups within a per-directory disk budget, while protecting ongoing reviews and explicit archives. Ordinary reviews report history warnings; critty doctor provides fresh checks and remedies. See history settings.

  • Review before editing — review proposed updates to notes, reports, configuration files, and other text outside Git while the originals stay untouched. Use critty tmp prepare, snapshot, and apply to create, split, rename, or delete files through reviewed copies. Originals stay unchanged until approval and explicit application consent. Concurrent-edit checks, backups, and saved progress support safe retries; application is atomic per file, not across the batch. See the workflow.

  • Side-by-side diffs — compare code in unified or side-by-side diffs. Switch with the Split: off/on header control or S, and set split = true to start with two columns. Both views preserve comment anchors and support supplied patches without original files; narrow panes temporarily use unified rendering. See configuration.

  • Check Git prerequisites and local marker delivery with critty doctor. It reports missing Git or versions below 2.31.0 and tests marker delivery in a foreground terminal without launching an agent. Unsupported terminal contexts are skipped; standalone documents and attachment-only reviews remain available without Git. See setup.

  • Inspect changes, documents, patches, and attachments with critty --dry-run in the current terminal. Search and display controls remain available without saving a review or history, migrating configuration, or allowing edits and external applications.

Changed

  • User settings now use TOML: $XDG_CONFIG_HOME/critty/config.toml globally and .critty.toml in projects. Existing JSON settings are converted once when the TOML destination is absent; remove or replace JSON null values before migration. Review records and JSON command output keep their formats. See configuration.

  • Local state, configuration, custom prompts, and launcher variables use Critty names. Startup migrates old paths only when the corresponding Critty destination is absent, without merging directories or retaining compatibility aliases. Update launchers to use CRITTY_HOST.

  • Approval requests use a short description and ordinary approval for a single action. The approval skill covers publication details and separate permissions or choices. AI review and cowork skills carry authorization across covered task revisions while tying each review to its exact snapshot; new services, broader access, and publication require separate authorization.

Fixed

  • Paste text with C-v in comment and reply editors. Prefer plain text on Linux and macOS, with HTML text extraction when needed and an additional RTF fallback on macOS. Image paste remains available.

  • Replaced attachments appear in collapsed, read-only history after current attachments. Their checkboxes are inactive, and answers belong to current forms.

  • Markdown formatting and link click targets survive wrapped rows and deleted lines. Links in attachment choices open without changing the answer; use the checkbox or surrounding space to select it.

  • critty review --help explains desktop terminal launchers outside a multiplexer, replacing the removed auto launcher description.

v1.2.0

Choose a tag to compare

@knu knu released this 16 Oct 03:16

Added

  • Inspect local images in a lightbox from documents, comments, and image diffs. Click a preview or press M-o to open it, zoom with the keyboard or mouse wheel, and use the arrow keys to browse images on the same line or labeled Before/After revisions. Comments show image previews while you write. M-o also opens Markdown links, HTML links, and plain web URLs with the system browser or viewer; external applications do not open over SSH. See image previews.

  • Open reviews in a floating pane on capable tmux 3.8+ servers, a split on older servers, or a desktop terminal window without a multiplexer. Choose built-in or custom launchers with --launcher or configuration. Desktop launchers support macOS, Linux with xdg-terminal-exec, and WSL with Windows Terminal; they skip known SSH connections. See review launchers.

  • Review changes and approval requests from Antigravity CLI (agy) with critty install agy (or antigravity), using the ordinary /critty and /critty-approval skill names. install all includes Antigravity; legacy Gemini CLI remains available explicitly. Restricted AI reviewer launches continue to support Claude Code and Codex. See Antigravity setup.

  • Install user integrations from any directory with critty install --user <target>. Codex skills now use .codex/skills in projects and ~/.codex/skills for users. Choose install agents for shared skills in .agents/skills or ~/.agents/skills. Existing copies in old locations remain in place; remove obsolete copies to avoid duplicate skill names. See agent skill installation.

Changed

  • critty --version shows a colored brand mark on terminals, and Help opens in the pager selected by PAGER (less by default). Colors adapt to the terminal background. Redirected output, NO_COLOR, and agent tools retain plain output.

  • The Submit dialog starts on one Approve/Comment/Reject choice group, with keyboard navigation between choices, the overall comment, and action buttons. Bracket navigation continues through the dialog and wraps between matching threads and form items.

  • critty doctor checks supported desktop launchers without opening windows, identifies Critty and tfil Codex wrappers, and can test terminal marker binding and notifications. Its paged report groups checks by area, highlights status and advice, wraps to the terminal width, and ends with a summary.

Fixed

  • Delayed image capability replies and mouse reports no longer spill into text fields when sequences arrive in separate reads, including tmux extended-key input. Image detection starts only when needed or explicitly requested, retries when the review pane becomes visible, and rechecks unconfirmed support on image tabs. Ordinary typing no longer triggers detection. The Images control shows N/A while previews are inactive.

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 14 Oct 16:52

Fixed

  • Files containing a bare carriage return, such as shell scripts, no longer show the lines after it shifted against their line numbers and diff markers. Carriage returns and other control characters in source lines now appear in caret notation such as ^M.

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 08:38

Changed

  • Diagnose installed integrations, AI review Python/MCP prerequisites, and image forwarding settings with critty doctor; critty check remains an alias. Partial installations report missing resources, --python selects a dedicated review environment, and color-coded text or --json reports present the results. tmux pane settings and local Herdr configuration include advice without changing stored settings. On macOS and Linux, image support is probed on the current foreground TTY; an unavailable TTY reports a skipped check without an error.

  • AI review and collaboration skills are now named critty-ai-review and critty-ai-cowork, matching the other Critty skills. Reinstall with critty install --force <agent> to update references and automatically remove recognized old crit-ai-review and crit-ai-cowork skill folders after installing their replacements. See the upgrade instructions.

  • Checkboxes and choices in attachments stand out with colored badges and highlighted labels. Submitting asks for confirmation when an unanswered item has never scrolled into view, so items below the visible area are not missed. You can review the item, submit anyway, or cancel.

  • Review data now uses the critty state directory, with a compatibility link preserving old paths and running sessions. If the directories conflict or cannot be linked, Critty keeps using the legacy directory. Saved reviews use critty_state, with the old tcrit_state key retained for compatibility. Review launchers use CRITTY_HOST, with TCRIT_HOST supported as a fallback.

Fixed

  • Improved readability on light terminal backgrounds. Text that used pale ANSI colors, such as cursor markers, item counts, warnings, attachment names, Markdown code, links, and headings, now uses darker shades. Code is highlighted with a light color scheme, line numbers are a subdued gray, and button keys are white on dark yellow. Item counts in dialogs share the gray background of the header counts.

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 20:17

Fixed

  • Improved detection of inline image support, which could incorrectly report images as unavailable on supported terminals, especially through tmux. Detection handles tmux's extended-key input and retries unanswered startup queries. If support remains unconfirmed, the first keypress checks again after the terminal becomes visible. Press I or click Images to restart an unsuccessful or ongoing check as often as needed. The Images control shows when a check is in progress.

v1.1.0

Choose a tag to compare

@knu knu released this 13 Oct 17:35

Features

  • Experimental AI review: Get second opinions with crit-ai-review, or refine work with another AI using crit-ai-cowork before final human review. Both require an existing Critty session and authorized reviewer access. Reviewers post findings and manage their own threads; your agent makes edits and runs checks. All agent install targets include these skills, with restricted CLI setups for Claude Code (Python 3.10+) and Codex (Python 3.11+ with the MCP SDK). See the README for usage and setup.

  • Navigate attachment checkboxes and choices alongside review threads. [ / ] visit every thread and form item; { / } visit unresolved threads and unanswered required items. n / N visit diff hunks, unresolved threads, unanswered required items, and optional form items. A required choice group has one unresolved stop until answered. See the navigation table.

  • Added actionable counters to the main screen and decision dialogs to show item counts and completion status. Click a counter to jump to an item. Tab titles flag unresolved threads and unanswered checkboxes and choices instead of underlining filenames. Prominent messages and colors highlight unresolved threads and unanswered items to help prevent omissions. Required answers block approval; optional answers remain optional, and unchecked consents stay unauthorized.

  • Switch to the previous or next file tab with M-{ or M-}, alongside S-TAB and TAB.

  • Export verdicts, feedback, and attachment identities as compact JSON with --summary FILE. Bundled skills use it to read results and retain original human feedback for host permission checks.

Changed

  • Configuration uses ~/.config/critty/config.json and .critty.config.json, falling back to the legacy TCrit file only when the new file is absent at that level. Custom prompts use the corresponding critty/prompts/ and .critty/prompts/ directories, with TCrit paths as fallbacks. Project settings still override global settings, and review storage stays unchanged.

  • Resolve and Images controls underline their shortcut keys, r and I; the Images button uses less footer space.

v1.0.0

Choose a tag to compare

@knu knu released this 12 Oct 14:56

Critty 1.0 brings code and document reviews, approvals, and user choices into one terminal session. Review proposed changes alongside an approval checklist or a choice of next steps, or use the same workflow for a standalone decision. Your agent receives both your review feedback and explicit answers.

Features

  • Submit reviews with Approve, Reject, or Comment and an optional overall comment thread, as on GitHub. Individual threads' resolution state informs the suggested decision, and approval asks before resolving remaining threads.

  • Preview images referenced by relative paths in Markdown documents, image files in diff reviews, and images pasted into comments and replies. PNG, JPEG, GIF, and WebP are supported.

  • Image previews require a terminal that implements the Kitty graphics protocol with Unicode image placeholders, such as Kitty, Ghostty, and iTerm2. Within these terminals, previews work through tmux or Herdr with passthrough enabled. Press I or click the Images button to toggle image previews.

  • Incremental search supports regular expressions, smart case, Unicode word search, and searching across files. Matching text is highlighted as you type. Keyboard and clickable controls let you change search modes, move between matches across files, keep the result, or cancel.

  • Search supports pasted text, the shared kill ring, and multilingual IME input. Long queries keep their input end visible. Controls stay available in short terminals and wrap after resizing.

Changed

  • n / N also stop on whole-file reviews, attachments, and files whose diffs have disappeared, even without unresolved comments.

  • Buttons without a background now use the same subtle gray background as the Submit dialog, including close, comment navigation, and resolution controls.

  • Keyboard Help shows the running build's version beside a colored logo. Help and the review banner share the logo, with a terminal prompt and green accents. Help keeps its scroll controls on the bottom row, beside the version when space allows.

  • Building from source requires Go 1.27.2 or later.

  • The bundled critty, critty-cli, and critty-approval skills cover interactive reviews, CLI operations, and approval requests, with input and display rules in the CLI reference.

  • Keyboard Help moves to M-?, leaving ? for incremental search.

  • Updated Keyboard Help includes the search-mode shortcuts and scrolls with keys, the mouse wheel, and Up/Down buttons when it does not fit the terminal.

Fixes

  • Dialog buttons remain clickable when submission or clipboard status messages wrap.

  • critty env and critty env tty report output write failures instead of returning success.

  • Unresolved drifted comments show their threads by default. Resolved threads expand while focused with [, ], or the arrow keys, without requiring Enter.

  • TUI saves preserve comments and replies added or changed by concurrent CLI commands. Conflicting edits to the same field report a save error instead of overwriting another writer's changes.

  • Demo recordings select the build prepared by demo/setup.sh, even when a tmux pane's login shell changes PATH.

  • Bundled skills refresh the selected review input after edits, distinguish ordinary approval from interactive forms, and preserve complete output for manually launched reviews. Comment examples consistently target a session and handle bodies that need JSON input.

v0.18.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 21:06

Features

  • The bundled critty-approval skill prepares Markdown approval attachments with YAML frontmatter and interactive confirmations, choices, and consents, then ties execution to the exact human-approved result. All four agent integrations install it.

  • --null reviews only attached documents without requiring a Git repository.

Fixes

  • Empty diff input, including --diff=/dev/null, can be reviewed with attachments and resumed from its saved session.

  • Markdown quotes and italic text use the primary text color to stay readable on diff backgrounds.

  • n and N stop at added, deleted, and modified binary files even though they have no diff hunks.

  • demo/release.sh can upload recordings to a draft release before its tag exists.

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.