Codiff is a beautiful, minimal, local diff viewer for reviewing staged and unstaged Git changes before committing.
- Fast Local Reviews: See changes in any Git repository to review code before committing.
- LLM Walkthroughs: Run
codiff -wto ask Codex or Claude Code to give you a review order and more context. - Inline Review Comments: Comment directly on changed lines and copy all review comments as Markdown for follow-ups.
Install with Homebrew:
brew install --cask nkzw-tech/tap/codiffDownload the latest Codiff app from GitHub Releases.
After installing the app, run Codiff > Install Terminal Helper to make the codiff command available in your shell.
codiffRun it from any Git repository, or pass a path:
codiff /path/to/repositoryReview a specific commit:
codiff a1b2c3dStart with an LLM-generated walkthrough order:
codiff -w
codiff -w a1b2c3dShow all available options:
codiff --helpLaunching Codiff in multiple repositories opens a separate native window for each repository.
Open the command bar with Cmd+Shift+P on macOS, or Ctrl+Shift+P on other platforms. Type to filter commands, use Up/Down to move through results, press Enter to run the selected command, and press Esc to close it.
The command bar includes actions for common review workflows:
- Focus File Filter
- Find in Diffs
- Show File Tree, Show History, and Show Walkthrough
- Copy Review Comments
- Copy Review Comments and Close
- Toggle Viewed for the currently selected file
- Toggle Diff Layout, with the target layout action shown as the hint
- Open the currently selected file in your editor
- Toggle Sidebar
- Reload Window
Codiff reads configuration from ~/.codiff/codiff.jsonc. Open Codiff > Open Config File... to
create the file with defaults and open it in your editor. The file supports JSONC comments and
trailing commas, includes a JSON schema reference for editor completion, and is watched while Codiff
is running so changes apply to open windows.
Set settings.editorCommand to customize file opening. Use {file} for the selected file and
{repo} for the repository root, for example "subl \"{repo}\" \"{file}\"".
Choose View > Split Diff or View > Unified Diff, use Toggle Diff Layout in the command bar,
or set settings.diffStyle to split for side-by-side diffs or unified for unified diffs.
Choose View > Word Wrap, use Toggle Word Wrap in the command bar, or set settings.wordWrap
to true to wrap long diff lines.
Use Mod for Cmd on macOS and Ctrl on other platforms. Shortcut strings can
combine Mod, Ctrl, Alt, Shift, or Meta with a key, for example Mod+Shift+p or
Alt+Enter.
Codiff uses a local agent CLI for walkthroughs and inline review assistance. It supports two
backends, selected with the settings.agentBackend config value (or the --agent flag for a
single launch) and the Agent application menu:
codex(default) — the OpenAI Codex CLI, configured withsettings.openAIModel.claude— the Claude Code CLI, configured withsettings.claudeModel.
Install the backend you want and verify it is available before using codiff -w:
codex --version
claude --versionCodiff looks for the CLI on PATH and the usual install locations. It does not run your shell
startup files to discover them. If a CLI is installed somewhere else, launch Codiff with an
explicit path:
CODIFF_CODEX_PATH=/absolute/path/to/codex codiff -w
CODIFF_CLAUDE_PATH=/absolute/path/to/claude codiff --agent claude -wClaude Code rides your existing claude login (subscription or ANTHROPIC_API_KEY); run claude
once and complete /login if you have not already.
To seed a walkthrough with the agent conversation that produced the change, install its skill from
the application menu (Install Codex Skill or Install Claude Code Skill), then invoke it from the
agent:
$codiff # Codex
/codiff # Claude Code
The skill opens Codiff with codiff -w --codex-session <id> (or --agent claude --claude-session <id>). Codiff then generates its normal diff digest and runs the walkthrough prompt seeded with
that session's conversation, so the walkthrough sees the original context without a lossy summary
handoff.
vp install
vp build
vpr codiffFor live development:
vpr dev
ELECTRON_RENDERER_URL=http://127.0.0.1:5173 vpr electronUseful checks:
vp check
vp test
vp build
{ "$schema": "https://raw.githubusercontent.com/nkzw-tech/codiff/main/src/config/codiff-config.schema.json", "settings": { "agentBackend": "codex", "claudeModel": "claude-sonnet-4-6", "copyCommentsOnClose": false, "diffStyle": "split", "editorCommand": "", "lastRepositoryPath": "", "openAIModel": "gpt-5.3-codex-spark", "showWhitespace": false, "theme": "system", "wordWrap": false, }, "keymap": { "commandBar": "Mod+Shift+p", "diffSearch": "Mod+f", "fileFilter": "Mod+p", "nextSearchMatch": "Enter", "openFile": "Mod+k", "prevSearchMatch": "Shift+Enter", "closeSearch": "Escape", "submitComment": "Mod+Enter", "discardComment": "Escape", "toggleSidebar": "Mod+b", }, }