Skip to content
github-actions[bot] edited this page Oct 18, 2026 · 3 revisions

Nibtree is a native Git client for macOS with a friendly three pane merge tool, workspaces, tabs, blame and history.

Using Nibtree

  • Getting Started: Install Nibtree, open your first folder and find your way around the window.
  • Welcome Screen: Find a recent project, open or clone one, and set up the look before your first folder.
  • Workspaces: Open folders with many repositories, add more folders, and save a workspace to a file.
  • Files Panel: Browse your files and see at a glance what git thinks of each one.
  • File Operations: Create, rename, copy, move and trash files and folders right in the Files panel.
  • File Icons: Show an icon for each file type: no icons, simple Minimal shapes, or full Material Icons.
  • Rounded Panels: Turn the sidebars, editors and terminal into rounded panels with space between them, in any color theme.
  • Editor and Tabs: Edit files in tabs, jump between changes and keep an eye on what you changed.
  • Pin Reorder and Wrap Tabs: Drag tabs into the order you like, pin the ones you always need, and wrap a long row of tabs.
  • Single Tab Title: With one file open, see its name centered above the code instead of a lone tab.
  • Split Editor: Show several files at once: split the editor right or down, again and again.
  • New File and Unsaved Changes: Open a new tab with Cmd+N, save it later, and get your unsaved work back after a restart.
  • Unload Hidden Tabs: Free the memory of tabs you have not looked at for a while; they open again where you left them.
  • Editing Code: Multiple cursors, the Code menu, Go to Line and the IDE features of the editor.
  • Code Appearance: Font weight, line spacing, syntax highlighting, visible whitespace, the cursor, word wrap, indentation detected from each file, and zoom.
  • Markdown Editor: Edit Markdown with a toolbar, a live preview, diagrams, and a rich editor for the finished page.
  • Image and PDF Preview: Open images and PDFs in a preview tab that frees its memory when closed, and compare two versions in a diff.
  • Search Everywhere: Find files, classes, symbols and text in the whole workspace with double Shift.
  • Recent Files: Jump back to the files you worked on last with Cmd+E.
  • Navigation Bar: Move through your project's folders from the keyboard with Cmd+Up and search each folder.
  • Find and Replace: The editor's find and replace bar, and Replace in Files across the workspace.
  • Changes and Commits: Stage what you want, write a message and commit, per repository.
  • Sign In Prompts: Answer a remote's username, password or SSH passphrase question in a dialog instead of a failed push.
  • Commit Box Layout: One commit box at the bottom, or one per repository.
  • Repository Actions: The buttons and the ... menu of each repository in Changes: branch, Sync, Commit and more.
  • Commit Options: Commit and push in one go, and sign-off, author, GPG signing and skipping hooks.
  • Ignoring Files: Add files, folders or extensions to .gitignore from a right-click.
  • Diffs: Compare a file with its last commit side by side and stage single hunks.
  • Inline Diffs: Show a diff in one column, with removed lines above the new ones.
  • Staging View: HEAD, the index and the work tree in three panes; stage single changes.
  • Revert a Change: Throw away one change, or apply one from a commit, from any diff or the editor.
  • Resolving Conflicts: What to do when a merge, rebase or cherry-pick stops on conflicts.
  • Merge Tool: The three pane merge tool: take changes from either side and check the result.
  • Blame: See who changed a line, when and why, and jump to that commit.
  • History and Log: Browse the commit graph, read commits and undo or copy them.
  • Merge Commits: See which files a merge combined, or its changes to each parent.
  • Branches and Tags: Create, switch, merge, rebase, rename and delete branches, and browse tags.
  • Branches Popup: The branch list: checkout, compare, update, push and merge any branch.
  • Remotes: Fetch, pull and push, and what the ahead and behind numbers mean.
  • Stashes: Put work aside and bring it back later.
  • Shelf: Put chosen changes aside as a named patch and bring them back, in full or file by file.
  • Git Menu: Every git command in one menu, including the current file's history.
  • Git Dialogs: Push, Pull, Update Project, Merge, Rebase, Reset, Rollback, Remotes and Clone, with their options.
  • Interactive Rebase: Reorder, reword, squash, edit and drop commits before you share them.
  • Worktrees: Check out several branches of one repository in separate folders.
  • AI Agents: Run AI coding agents in your worktrees from the AI panel and see what each one is doing.
  • AI Tasks: Work on several branches of one project at once: a task per worktree, agents racing, ready to run.
  • AI Usage: See how much of Claude Code's and Codex's 5-hour and weekly limits you used, in the status bar.
  • Keep Computer Awake: Keep the screen on and the computer from sleeping while AI agents work: On, Agent or Off.
  • Submodules: Repositories inside a repository: see their changes and init, update, add or remove them.
  • Git LFS: Large files stored with Git LFS: badges, sizes in diffs, track patterns, pull and prune.
  • GitHub: Sign in to GitHub to share a project, sync a fork and create gists.
  • Git Console: Every git command the app ran, with its output (off by default).
  • Terminal: Run shells below the editor or in a tab, with several terminals and your own shell and font.
  • Terminal Features: Split terminals, find in the output, Cmd+click file paths, drop files, rename, and the optional parts.
  • Scripts: Run npm, Composer, Make, Deno and just scripts with one click, with the right Node version.
  • Navigation: Back and Forward across files, diffs and commits.
  • Menus: The menu bar: what is in each menu, and how its keys work.
  • Settings: Every setting, where it is saved, and the light and dark themes.
  • Settings Search: Type in the Settings search field to find a setting and see its matches highlighted.
  • Color Themes: Pick a light and a dark color theme from 37, including high contrast ones.
  • Settings Terminal and Automation: Every option of the Terminal, GitHub and Automation sections of Settings.
  • Settings Files: What is in ~/.nibtree, editing settings.json by hand, and fixing a broken file.
  • Updates: How Nibtree tells you about new versions, and the beta channel.
  • Status Bar and Help: The status bar, picking the active repository, and how to report a bug or ask for a feature.
  • Notifications: Messages about pushes, pulls and other events: pop-up balloons and the Notifications panel that keeps them.
  • Memory Use: The memory readout, its breakdown and GPU rows, and the debug memory log.
  • Clear Cache: Give back all the memory the window holds with one click; the folder and tabs come back.
  • MCP and CLI: Let AI tools such as Claude Code, and scripts in a terminal, use Nibtree safely.
  • Git Mergetool: Use Nibtree as the merge tool for git on the command line.
  • Keyboard Shortcuts: Every keyboard shortcut on one page.
  • Keyboard Shortcuts Editor: The keys of the editor, the find bar, Markdown, the merge tool, lists and dialogs.
  • Troubleshooting: Common problems and how to fix them.
  • Troubleshooting Git: Git not found, failing hooks, signing in and common git errors.

Working on Nibtree

  • Developer Guide: Start here: set up the project, run it, and find your way around these pages.
  • Architecture: How the Rust backend, the Svelte frontend and git fit together.
  • Project Layout: What lives in which folder and file.
  • Backend: Tauri commands, the git read and write split, errors, the CLI runner and the file watcher.
  • How Folder Watching Works: The file watcher: how each file event becomes a repository or folder refresh.
  • Folder Watching Bugs We Fixed: The watcher bugs we found, why they happened and how we fixed them.
  • How Workspace Files Work: Workspace files, VS Code compatibility and which folders reopen at start.
  • How the Preview Scheme Works: The gmpreview URL scheme: how previews stream images and PDFs to the web view, safely and in pieces.
  • Backend Services: The terminal, search, scripts, Git Console, GitHub, MCP and other Rust services, and how they stay idle until used.
  • How Terminal Features Work: Split groups, find, file links, drops and the terminal addons, each lazy and switchable.
  • Terminal Bugs We Fixed: The terminal bugs we found, why they happened and how we fixed them.
  • Frontend: The shell, stores, Svelte 5 runes, the API bridge, keys, menus and colors.
  • How the Rich Markdown Editor Works: How the Rich Editor edits the page and patches each edit onto the file's own text, refusing files it cannot keep exactly.
  • Rich Markdown Bugs We Fixed: The Rich Editor bugs we found, why they happened and how we fixed them.
  • Git Menu Links: How Open Repository in Browser and the GitHub link items turn remote URLs into web pages.
  • Menu Keys and Routing: How one key press runs either a page handler or a menu item, never both.
  • Frontend Modules: The feature folders in src/lib, their stores, and what loads only on first use.
  • Blame Bugs We Fixed: The blame bugs we found, why they happened and how we fixed them.
  • Project Color And Title Bar: The project's color glow and the macOS window buttons in the top bar.
  • One Diff View: How every place that shows a diff shares one view, its panes and its buttons.
  • Diff Bugs We Fixed: The diff view bugs we found, why they happened and how we fixed them.
  • Merge Tool Layouts: The merge tool's Columns and Stacked layouts: one set of editors moved between two frames.
  • Merge Tool Bugs We Fixed: The merge tool bugs we found, why they happened and how we fixed them.
  • Color Theme Bugs We Fixed: The color theme bugs we found, why they happened and how we fixed them.
  • How the Connected Diff Works: Side by side without padding: each side scrolls itself, bands join the changes.
  • Rounded Panels Bugs We Fixed: The rounded panels bugs we found, why they happened and how we fixed them.
  • Update Bugs We Fixed: The update check and link bugs we found, why they happened and how we fixed them.
  • Status Bar Bugs We Fixed: The status bar and Help link bugs we found, why they happened and how we fixed them.
  • MCP and CLI Bugs We Fixed: The MCP server and command line tool bugs we found, why they happened and how we fixed them.
  • Repository Actions Bugs We Fixed: The repository row and Changes title bar bugs we found, why they happened and how we fixed them.
  • How the Changes Tab Works: The Changes tab opened from the status bar: every uncommitted file compared with the last commit.
  • CodeMirror Patterns: State fields, compartments, widgets, keymaps and update rules for every text pane.
  • How the Cursor Works: The editor cursor settings and the rounded selection: shapes, blinking, smooth movement and extra caret height.
  • How Editor Features Work: Auto-close, completion, folding, indent guides, the margin line and the languages, each switchable and lazy.
  • How the Path Bar Works: The slim bar above the code: breadcrumbs, badges and icon actions, and how it collapses when narrow.
  • Commands and Events: Index of the backend commands, plus every event and channel.
  • Settings Reference: Every settings.json and state.json key with its default, range and where it is used.
  • Commands Workspace and Changes: Commands for folders, status, staging, commits, diffs, conflicts, stashes, the shelf and ignore files.
  • Commands Branches and Remotes: Commands for branches, merge and rebase dialogs, interactive rebase, fetch, pull, push, remotes, clone, patches and tags.
  • Commands History and Extras: Commands for the log, blame, file history, reset, worktrees, submodules, Git LFS and GitHub.
  • Commands App and Tools: Commands for files, config, the memory log, search, scripts, the terminal, the Git Console and the MCP server.
  • Testing: How the Rust and Vitest suites work, test repositories and what to test.
  • Test Suites: Every Vitest and Rust test file, folder by folder, and what it covers.
  • Debugging: Web view devtools, Rust logs, reading IPC errors and common dead ends.
  • Debugging with MCP: Inspect, measure and drive the running app with the MCP tools and nibtree cli.
  • Measuring Setting Memory: How the memory cost of each setting was measured, the results, and the marks in Settings.
  • How Terminal Memory Is Measured: The Terminals rows in the memory details: each shell's process tree, summed per terminal.
  • How Markdown Diagrams Work: Mermaid diagrams in a hidden frame that leaves memory with the last document.
  • Releases and CI: CI and the beta and stable release workflows.
  • Publishing the Wiki: How wiki.yml turns docs/wiki into the GitHub wiki.
  • Versioning and Changelog: Where the version lives, the changelog rules and scripts/version.ts.
  • Browser Version Packages: The browser version's npm packages, their CI on six platforms and publishing them with each release.
  • Browser Release Checks: How a browser version release is rehearsed, checked after publishing, and finished when it breaks halfway.
  • Docker Image: The browser version's Docker image: what is inside, its CI on amd64 and arm64, and publishing it.
  • Platforms and Signing: Code signing and notarization, and the plan for Windows and Linux.
  • Windows Support: What the code does differently on Windows: console windows, the home folder, PATH and paths.
  • Windows Bugs We Fixed: Bugs the Windows CI job found, why they happened and the fixes.
  • Windows MCP and CLI: The command line tool as a console program, the screenshot and quoting on Windows.
  • Docs and Screenshots: How this wiki is built, how screenshots are taken, and keeping docs in sync.
  • UI Library: The Svelte component library, its showcase and the design tokens shared by every platform.
  • UI Library MCP: The MCP server that answers AI agents' questions about components, tokens, icons and rules.
  • UI Library Bugs: Bugs fixed in the UI library: what you saw, why, and the fix.
  • UI Library Migration: How the app uses the library as a local package and moves onto it, screen by screen.
  • Contributing: Code style, commits, pull requests and the docs checklist.

How each feature works

One chapter per feature: why it exists, how it works, the decisions behind it and the bugs we fixed.

Elsewhere

Home

Using Nibtree

Developers

How features work

Clone this wiki locally