Repository navigation
File Operations
You can create, rename, copy, move and delete files and folders right in the Files panel. These are plain file changes on your disk. Git notices them by itself, so a moved file shows up in Changes as deleted in one place and new in the other (or as renamed, once you stage both sides).

Right-click a file for New File..., New Folder..., Cut, Copy, Paste, Duplicate, Rename... and Move to Trash, each with its key.
- Click a row to select it (a file also opens in the preview tab, as before).
- Cmd-click adds a row to the selection, or takes it out again.
- Shift-click selects every row from the last clicked one to this one.
- Shift+Up and Shift+Down grow or shrink the selection with the keyboard.
Right-click inside the selection to act on all selected rows. Right-click any other row and only that row is selected.
On one file or folder:
-
New File... and New Folder... ask for a name and create it inside the folder, or next to the file. Type
lib/money.tsto create thelibfolder on the way. A new file opens in a tab; a new folder opens and is selected. - Cut and Copy remember the selected rows. Cut rows look dimmed until you paste.
- Paste puts them into the folder you right-clicked, or into the folder of the file. A cut moves the rows; a copy copies them, and you can paste a copy again.
- Duplicate makes a copy next to the original.
-
Rename... asks for the new name. The name is already selected without its extension, so typing replaces
cartand keeps.ts. - Move to Trash asks first, then moves the rows to the system Trash. You can put them back from the Trash in the Finder (the Recycle Bin on Windows).
With several rows selected, the menu has Cut, Copy, Paste, Move to Trash and Copy Paths (every full path, one per line).
A top-level workspace folder (see Workspaces) offers only New File..., New Folder... and Paste: it cannot be renamed, moved or trashed from here. Right-click the empty space below the rows, or an empty folder, to create or paste into the workspace folder itself.
When a name is taken, a copy gets a new one: cart copy.ts, then cart copy 2.ts. A move or a new name never replaces a file that is already there: you see a message such as "cart.ts already exists in src" and nothing changes.

Rename selects the name without its extension. The dialog tells you when the name is taken or not valid.
Click in the tree first, then:
| Keys | Action |
|---|---|
| Cmd+C, Cmd+X, Cmd+V | Copy, Cut, Paste |
| Cmd+D | Duplicate |
| F2 or Shift+F6 | Rename the row with the keyboard focus |
| Cmd+Backspace or Delete | Move to Trash (asks first) |
| Esc | Forget a pending cut |
| Enter | Open the file or toggle the folder, as before |
While the tree has the keyboard, these keys act on files, not on text: the Edit menu's Cut, Copy and Paste do not run as well. On Windows and Linux, use Ctrl in place of Cmd.
- Drag rows onto a folder to move them into it. Dropping on a file moves them into that file's folder.
- Hold Option while you drop to copy instead of move. The label next to the pointer says Move or Copy.
- Hover over a closed folder for a moment and it opens, so you can drop deeper.
- Drag near the top or bottom edge of the list to scroll it.
- The folder that would take the drop is highlighted. Press Esc to cancel the drag.
A move asks first ("Move cart.ts into src/lib?"). When the folder already has a file or folder of that name, you see the message at once, without the question. To skip that question, turn off Confirm drag and drop in Settings, Layout (see Settings). Copies never ask.
Files from the Finder: drag files or folders from the Finder (File Explorer on Windows) onto a folder in the panel, and they are copied there. The originals stay where they were.
- Rename or move a file and its tab follows it to the new name. Moving a folder takes the tabs of the files inside it along.
- Moving a file to the Trash closes its tab.
- A file with unsaved edits cannot be renamed, moved or trashed. You see "Save or revert cart.ts first"; save it (Cmd+S) or undo your edits, then try again.
- Open folders and the selection follow a rename or a move too.
AI tools connected through the MCP server, and the nibtree cli command, can do the same with create_file, create_folder, copy_paths, rename_path, move_paths and trash_paths. They follow the same rules as the panel: only your workspace folders, no replaced files, tabs follow along and files with unsaved edits are refused. Rename, move and trash start off; turn them on in Help > Available MCP Tools.... For example:
nibtree cli call rename_path entryPath=/Users/me/shop/src/cart.ts newName=basket.ts- Nothing here runs git. To keep the history of a renamed file, commit the deletion and the new file together; git pairs them up as a rename.
- The
.gitfolder and anything outside your workspace folders are never touched. - On Windows the Trash is called the Recycle Bin.
These pages are generated from docs/wiki. To correct something, open a pull request against the source file; edits made here are overwritten.
Using Nibtree
- Getting Started
- Welcome Screen
- Workspaces
- Files Panel
- File Operations
- File Icons
- Rounded Panels
- Editor and Tabs
- Pin Reorder and Wrap Tabs
- Single Tab Title
- Split Editor
- New File and Unsaved Changes
- Unload Hidden Tabs
- Editing Code
- Code Appearance
- Markdown Editor
- Image and PDF Preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and Replace
- Changes and Commits
- Sign In Prompts
- Commit Box Layout
- Repository Actions
- Commit Options
- Ignoring Files
- Diffs
- Inline Diffs
- Staging View
- Revert a Change
- Resolving Conflicts
- Merge Tool
- Blame
- History and Log
- Merge Commits
- Branches and Tags
- Branches Popup
- Remotes
- Stashes
- Shelf
- Git Menu
- Git Dialogs
- Interactive Rebase
- Worktrees
- AI Agents
- AI Tasks
- AI Usage
- Keep Computer Awake
- Submodules
- Git LFS
- GitHub
- Git Console
- Terminal
- Terminal Features
- Scripts
- Navigation
- Menus
- Settings
- Settings Search
- Color Themes
- Settings Terminal and Automation
- Settings Files
- Updates
- Status Bar and Help
- Notifications
- Memory Use
- Clear Cache
- MCP and CLI
- Git Mergetool
- Keyboard Shortcuts
- Keyboard Shortcuts Editor
- Troubleshooting
- Troubleshooting Git
Developers
- Developer Guide
- Architecture
- Project Layout
- Backend
- How Folder Watching Works
- Folder Watching Bugs We Fixed
- How Workspace Files Work
- How the Preview Scheme Works
- Backend Services
- How Terminal Features Work
- Terminal Bugs We Fixed
- Frontend
- How the Rich Markdown Editor Works
- Rich Markdown Bugs We Fixed
- Git Menu Links
- Menu Keys and Routing
- Frontend Modules
- Blame Bugs We Fixed
- Project Color And Title Bar
- One Diff View
- Diff Bugs We Fixed
- Merge Tool Layouts
- Merge Tool Bugs We Fixed
- Color Theme Bugs We Fixed
- How the Connected Diff Works
- Rounded Panels Bugs We Fixed
- Update Bugs We Fixed
- Status Bar Bugs We Fixed
- MCP and CLI Bugs We Fixed
- Repository Actions Bugs We Fixed
- How the Changes Tab Works
- CodeMirror Patterns
- How the Cursor Works
- How Editor Features Work
- How the Path Bar Works
- Commands and Events
- Settings Reference
- Commands Workspace and Changes
- Commands Branches and Remotes
- Commands History and Extras
- Commands App and Tools
- Testing
- Test Suites
- Debugging
- Debugging with MCP
- Measuring Setting Memory
- How Terminal Memory Is Measured
- How Markdown Diagrams Work
- Releases and CI
- Publishing the Wiki
- Versioning and Changelog
- Browser Version Packages
- Browser Release Checks
- Docker Image
- Platforms and Signing
- Windows Support
- Windows Bugs We Fixed
- Windows MCP and CLI
- Docs and Screenshots
- UI Library
- UI Library MCP
- UI Library Bugs
- UI Library Migration
- Contributing
How features work
- Welcome screen
- Workspaces and folders
- Files panel
- File operations
- File icons
- Editor and tabs
- Pin, reorder and wrap tabs
- Single tab title
- Split editor
- New File and unsaved changes
- Unload hidden tabs
- Editing code
- Code appearance
- Markdown editor
- Image and PDF preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and replace
- Changes and commits
- Sign-in prompts
- Commit box layout
- Repository actions
- Commit options
- Ignoring files
- Diffs
- Inline diffs
- Staging view
- Revert a change
- Resolving conflicts
- Merge tool
- Blame
- History and log
- Merge commits
- Commit tabs
- Branches and tags
- Branches popup
- Remotes
- Stashes
- Shelf
- Git menu
- Git dialogs
- Interactive rebase
- Worktrees
- AI agents
- AI usage
- Keep computer awake
- AI tasks
- Submodules
- Git LFS
- GitHub account
- Git Console
- Back and Forward
- Integrated terminal
- Scripts tool window
- Menu bar
- Settings
- Search in Settings
- Color themes
- Rounded panels
- Updates and release channels
- Status bar and help links
- Notifications
- Memory readout and memory log
- Clear Cache
- MCP server and command line tool
- git mergetool mode