@fahimadib01/milo
v0.1.4
Published
Terminal file browser and diff viewer with a VS Code-style layout.
Readme
Milo
Terminal-native file browser and diff viewer for Git repositories, built with Bun, React, and OpenTUI.
Milo brings a VS Code-style file and source-control workflow into your terminal: browse your project tree, inspect changed files, stage and unstage work, search across the workspace, and review diffs without leaving the CLI.
Features
- File explorer with expandable directories and open-file navigation
- Git changes view with separate staged and unstaged sections
- Single-file diff viewer with colored additions, deletions, and line numbers
- File preview pane for reading source files directly in the terminal
- SCM actions for staging, unstaging, selecting, and discarding changes
- Workspace search with quick-open, local find, and global find
- Keyboard-first workflow with familiar editor-style shortcuts
- Mouse support for tabs, files, diff rows, toolbar actions, and search results
- Syntax highlighting powered by Tree-sitter through OpenTUI
- TypeScript navigation with go-to-definition support via
typescript-language-server
Requirements
- Bun
>= 1.3.4 - Git
- A terminal with modern keyboard and mouse event support
Milo is published through npm, but the CLI uses a Bun shebang. Make sure bun is available on your PATH.
Installation
npm install -g @fahimadib01/miloYou can also install with Bun:
bun add -g @fahimadib01/miloUsage
Run Milo from inside a Git repository:
miloKeyboard Shortcuts
Global
| Shortcut | Action |
| --- | --- |
| Ctrl+K | Show or close shortcuts |
| Esc | Close modal or quit |
| Ctrl+C | Quit |
| Tab / Shift+Tab | Cycle focus between sidebar and editor |
| Ctrl+B | Toggle sidebar |
| Cmd/Ctrl+R | Refresh workspace |
| Cmd/Ctrl+Shift+E | Focus Files |
| Cmd/Ctrl+Shift+G | Focus Changes |
Search
| Shortcut | Action |
| --- | --- |
| Ctrl+P | Open file search |
| Ctrl+F | Find in current file |
| Ctrl+Shift+F | Find across files |
| Up / Down or J / K | Move search selection |
| Enter | Open selected result |
Sidebar
| Shortcut | Action |
| --- | --- |
| Up / Down or J / K | Move selection |
| Left / Right or H / L | Collapse or expand directory |
| Enter | Open selected item |
| O | Open selected file |
| Space | Stage or unstage selected change |
| Backspace | Discard selected unstaged change |
Editor
| Shortcut | Action |
| --- | --- |
| Up / Down or J / K | Move selected line |
| Left / Right or H / L | Move cursor by column |
| Option+Left / Option+Right | Move cursor by word |
| Ctrl/Cmd+Left / Ctrl/Cmd+Right | Move to line start or end |
| Home / End or Ctrl+A / Ctrl+E | Move to line start or end |
| Ctrl+] | Go to definition |
| Ctrl+Click | Go to definition from clicked line |
Development
bun install
bun run startUseful checks:
bun test
npx tsc --noEmit
bun run buildPackage
Milo is available on npm:
npm install -g @fahimadib01/miloPackage page: https://www.npmjs.com/package/@fahimadib01/milo
License
MIT
