{"id":50775107,"url":"https://github.com/nmbr7/turboreview","last_synced_at":"2026-06-11T23:00:24.308Z","repository":{"id":363871849,"uuid":"1265077400","full_name":"nmbr7/turboreview","owner":"nmbr7","description":"A terminal based code review tool","archived":false,"fork":false,"pushed_at":"2026-06-10T17:38:25.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T19:13:32.479Z","etag":null,"topics":["code-coverage","code-review","git"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmbr7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-10T12:51:01.000Z","updated_at":"2026-06-10T17:38:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nmbr7/turboreview","commit_stats":null,"previous_names":["nmbr7/turboreview"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nmbr7/turboreview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbr7%2Fturboreview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbr7%2Fturboreview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbr7%2Fturboreview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbr7%2Fturboreview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmbr7","download_url":"https://codeload.github.com/nmbr7/turboreview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmbr7%2Fturboreview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34221150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-coverage","code-review","git"],"created_at":"2026-06-11T23:00:16.379Z","updated_at":"2026-06-11T23:00:24.297Z","avatar_url":"https://github.com/nmbr7.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eTurboReview\u003c/h1\u003e\n\n[![Rust](https://img.shields.io/badge/Rust-stable-orange)](https://www.rust-lang.org/)\n[![Platform](https://img.shields.io/badge/Platform-macOS%20%7C%20Linux%20%7C%20Windows-blue)](#)\n[![UI](https://img.shields.io/badge/UI-Terminal%20TUI-6f42c1)](#)\n\n`turboreview` is a terminal code-review tool for git repositories. Review the\nworking tree (unstaged/staged changes) **or** browse the branch's commit history\nand review each commit's diff. The left pane lists files in a directory tree; the\nright pane shows the selected file's diff with syntax highlighting, a line-number\ngutter, and adjustable context. Stage or unstage whole files, mark files\nreviewed, leave line comments — and let an AI coding agent read those comments,\nfix the code, and respond.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"800\" alt=\"turboreview screenshot\" src=\"https://github.com/user-attachments/assets/69ca499b-052b-47e0-b567-72e123ac4568\" /\u003e\n  \u003cbr\u003e\n  \u003cem\u003eTurboReview diff\u003c/em\u003e\n\u003c/p\u003e\n\n\n## Usage\n\n```\nturboreview [REPO_PATH]   # defaults to the current directory\nturboreview --skill       # print the AI-agent guide and exit\n```\n\nRun inside (or point at) any git repository.\n\n## Layout\n\nTwo views, toggled with `[` / `]`:\n\n- **Changes** — the working tree. Left pane has two sections, `▌ Unstaged (N)`\n  and `▌ Staged (N)`, each a collapsible directory tree.\n- **Commits** — the branch history. Left pane lists commits (short hash, summary,\n  author, date). Press `Enter` on a commit to drill into its changed files (diff\n  vs the commit's first parent); `Esc` steps back out.\n\nIn both views:\n\n- **Left pane — Files.** Each file row shows a colored status letter\n  (`A` added, `M` modified, `D` deleted, `R` renamed), a review tick\n  (`✓` reviewed / `○` not), and a Nerd Font file-type icon. The pane can be\n  resized or hidden entirely (see keys).\n- **Right pane — Diff.** Syntax-highlighted code with a line-number gutter.\n  Added/removed lines are bright with a green/red background; unchanged context\n  lines are dimmed so changes stand out. A line cursor (highlighted row) marks\n  where comments attach. The title shows `(ctx N)` or `(full file)`.\n- **Comments pane (toggle with `C`).** An optional third column listing the\n  current scope's comments grouped by status (Open / NeedsInfo / Wontfix /\n  Resolved). Press `Enter` on a comment to jump to its file and line.\n\nPress `?` at any time for an in-app keybinding overlay.\n\n## Keys\n\n| Key              | Action                                                          |\n|------------------|-----------------------------------------------------------------|\n| `[` / `]`        | switch view (Changes ⇆ Commits)                                 |\n| `Tab`            | switch focus across the visible panes                           |\n| `↑`/`↓` `j`/`k`  | move selection / commit / line cursor in the focused pane       |\n| mouse wheel      | move the focused pane's cursor                                  |\n| `gg` / `G`       | jump to top / bottom of the focused pane                        |\n| `Enter`          | open commit · focus a file's Diff · fold dir · jump to comment  |\n| `C`              | toggle the comment-list pane                                    |\n| `Esc`            | step back (Diff → files → commit list) / focus the Files pane   |\n| `h`/`l` `←`/`→`  | scroll the diff horizontally (Diff pane)                        |\n| `+` / `-`        | increase / decrease diff context lines (step 5)                 |\n| `F`              | toggle full-file view (whole file vs hunks only)               |\n| `z`              | hide / show the file pane (diff goes full-width)               |\n| `\u003c` / `\u003e`        | narrow / widen the file pane                                    |\n| `c`              | comment on the cursor line (opens a modal input box)            |\n| `s`              | stage the selected file (Unstaged) / unstage it (Staged)        |\n| `Space`          | toggle the reviewed checkbox on the selected file               |\n| `R`              | toggle hiding reviewed files                                    |\n| `r`              | refresh everything from disk / git                              |\n| `?`              | show the keybinding help overlay                                |\n| `q` / `Ctrl-C`   | quit                                                            |\n\nIn the comment input box: type freely, **Enter** for a newline, **Ctrl-S** to\nsave, **Esc** to cancel. Saving an empty comment deletes it.\n\n## Staging\n\n`s` on a file in the **Unstaged** section stages it; on a file in the **Staged**\nsection it unstages it. Staging only moves changes into or out of the git index —\nyour working-tree files are never modified. (Hunk-level staging is not yet\nsupported.)\n\n## Comments\n\nPress `c` on a diff line to attach a comment. Comments render in a bordered box\ndirectly under their line.\n\nEach comment is **anchored** to its line's content plus the surrounding lines, so\nit follows the line when the file shifts (e.g. lines inserted above). If a comment\ncan no longer be confidently placed, it is shown as `⚠ outdated` rather than lost.\n\n### AI-agent review loop\n\nComments carry a `status` (`open`, `resolved`, `wontfix`, `needs_info`) and an\noptional `response`. An AI coding agent can close the loop:\n\n1. Run `turboreview --skill` to print a guide describing the on-disk schema and\n   workflow.\n2. The agent reads the open comments, makes the requested changes, then writes a\n   `response` and sets the `status` in the relevant `comments.json`.\n3. Reopen turboreview — each comment box shows the agent's status badge\n   (`✓ resolved`, `✗ wontfix`, `? needs-info`) and its response inline.\n\n## Review state \u0026 storage\n\nReviewed flags and comments persist under `\u003crepo\u003e/.turboreview/`:\n\n| Path                                              | Holds                                   |\n|---------------------------------------------------|-----------------------------------------|\n| `.turboreview/comments.json` · `reviewed.json`    | working-tree review (Changes view)      |\n| `.turboreview/commits/\u003csha\u003e/comments.json` · `…`  | per-commit review (Commits view)        |\n| `.turboreview/comment-log.jsonl`                  | append-only activity log (newest last)  |\n\nThe comment log records one JSON object per comment add/edit\n(`{path, line, scope, date, action}`, where `date` is a `YYYY-MM-DD HH:MM:SS`\ntimestamp), so an agent can read the tail to find the latest review activity. Add `.turboreview/` to your `.gitignore` if you don't\nwant it tracked. `R` hides reviewed files to declutter the list.\n\n## Display notes\n\nFile-type icons use [Nerd Fonts](https://www.nerdfonts.com/) — install a Nerd\nFont in your terminal for the glyphs to render correctly (otherwise you'll see\nfallback boxes). Code highlighting uses the bundled Catppuccin Mocha–style dark\ntheme.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmbr7%2Fturboreview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmbr7%2Fturboreview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmbr7%2Fturboreview/lists"}