Repository navigation
Markdown Editor
Markdown files get their own editor: the text, a live preview of the finished page, and a toolbar for the usual formatting. You can even edit the finished page directly, like a word processor.
This works for files ending in .md, .markdown and .mdx (MDX is shown as plain Markdown). Open one from the Files panel or with Go to File (Cmd+P, see Search Everywhere), as with any file.

Editor and Preview: the text on the left, the preview on the right, the path bar and the formatting toolbar above both.
The three buttons at the right end of the path bar (the slim bar under the tabs, see Editor and Tabs) switch the view:
| Button | What you see |
|---|---|
| Editor Only | Just the text, like any other file. |
| Editor and Preview | The text and a live preview side by side. This is the default. |
| Rich Editor (the eye with a pencil) | The finished page, which you can edit in place (see below). |
The same choices are in the menu bar under View > Markdown (Editor Only, Editor and Preview, Rich Editor). They are enabled only while a Markdown file is the active tab.
Each file remembers its own view until you quit the app. New files open in the view picked in Settings > Editor > Markdown preview; see Settings.
In Editor and Preview, drag the line between the two sides to give the preview more or less room. Double-click the line to split 50/50. The size is kept for every Markdown file and saved for next time.

The formatting row with the Heading menu open, and the view switch in the path bar above it.
The formatting buttons sit in a low row of their own under the path bar, in every view. From left to right:
- Bold, Italic, Strikethrough, Inline code and Link.
- Heading: a menu with Heading 1, Heading 2, Heading 3 and Normal text.
- Bulleted list, Numbered list, Task list, Quote, Code block and Table.
In the text editor, press a button again to remove the style (Bold on bold text removes the stars). With no selection, a style applies to the word under the cursor. Each press is one Undo step, on every cursor at once. Table adds three columns, a header and two rows, and selects "Column 1" so you can type its name.
Keys in a Markdown text editor: Cmd+B for bold, Cmd+I for italic and Cmd+K for a link, as the buttons' tooltips show. While you type in the file, Cmd+B makes text bold instead of hiding the sidebar.
The preview follows your typing after a short pause, and only the changed parts are drawn again.
- Scrolling is linked. Scroll either side and the other follows to the same place.
-
Task boxes work. Click a box in the preview to tick or clear
- [ ]in the text. -
Links open. Web and mail links open in your browser. Links to other files in your workspace open them in a tab. Links to a heading (
#install) scroll to it. Anything else shows Link not opened. - Code blocks are colored with the same colors as the editor.
- Cmd+S saves, also while the preview has focus.

The Rich Editor: headings, lists, task boxes and tables are edited as they look.
The Rich Editor shows the finished page and lets you type in it, like Typora or a word processor. Behind the scenes the text is still the real file:
- Only what you edit changes. Text you did not touch keeps its exact spelling: list markers, emphasis style, table padding, blank lines and line endings stay as they were. Only the words you type or format are new.
- Undo, save and diff work as usual. The tab shows the unsaved dot, Cmd+S saves and the diff shows the change.
- The toolbar works here too. The same buttons format the selected text. Link (or Cmd+K) asks for an Address. When the cursor is already on a link, it removes that link.
- Cmd+B and Cmd+I make text bold and italic.
- Click a task box to tick it.
- Links: a click puts the cursor in the link text, so you can edit it. Cmd+click follows the link.
-
Front matter (the
---block of settings at the top of some files) is kept as written and hidden from the page.
Raw HTML such as a <table> or <details> block shows as it is and is kept as written; you edit the text around it. Some files cannot be kept exactly, and then the page stays read-only with a note that says why:
- This file has HTML, JSX or MDX the rich editor cannot keep exactly. Edit it in the text editor.
-
This file has reference-style links, which the rich editor cannot keep exactly. Edit it in the text editor. (links like
[text][name]with[name]: urlbelow) - This file has footnotes, which the rich editor cannot keep exactly. Edit it in the text editor.
- This file is too large for the rich editor. Edit it in the text editor. (over 600 KB)
Switch to Editor and Preview to change such a file.
Leaving the Rich Editor opens the text at the top of the file.
A fenced code block with the language mermaid becomes a diagram:
```mermaid
flowchart LR
Cart --> Checkout --> Paid
```
The preview draws mermaid diagrams. In the Rich Editor the diagram shows under its code, and changes as you type.
Diagrams follow the light or dark look and your color theme. A diagram with a mistake shows Mermaid: and the error instead.
-
Images in your workspace show, as long as they are PNG, JPEG, GIF, WebP or SVG and at most 10 MB. Paths are relative to the Markdown file, and
/pathstarts at the repository root, like on GitHub. - Images from the web are not loaded. You see Remote image not loaded with the address as a tooltip. This keeps the app from contacting servers just because you opened a file.
- Images outside the workspace show Image outside the workspace.
A Markdown file can contain raw HTML, and a file from a cloned repository is not always trustworthy. So the preview removes scripts, event handlers, frames, forms, styles and javascript: links before anything is shown, and the page never navigates away. Diagrams are cleaned the same way.
- Long files with many diagrams stay light: diagrams and images are drawn only when they are near the screen, and a tab you are not looking at frees its preview until you come back.
- A link like
other.md#sectionopens the file but does not scroll to the section yet. - In the Rich Editor, diagrams keep their old colors after you change the theme until they are drawn again: scroll far away and back, or reopen the file.
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