Features
Every feature is scoped to a project and designed to stay out of the way of a terminal-first workflow. Visual tools where they help, keyboard where they don't.
Projects
A project is just a root directory. When you open one, every terminal spawned in that window starts at the project root, the file browser is locked there, and the git panel operates on that repo. ⌘P fuzzy-search stays inside the project.
This means you can run a CLI agent like claude or
aider in a terminal tab and click around the file tree
without ever sending a stray cd to the shell — the file
browser is purely visual.
- One window = one project. Opening a project in the picker takes over the current window (VS Code convention). Already-open projects get focused if you try to open them again.
- Multi-window on demand. ⌘⇧N opens a fresh project picker so you can open a second project in parallel. Each window is fully independent.
- Picker with recents. Projects are stored at
~/.launchpad/projects.json. Right-click (or the ⋯ hover menu) to rename, open in a new window, or remove from the list. - Back to projects — a ← button in the toolbar tears down the workspace and returns to the picker.
Terminal
Full PTY-backed terminal with tabs, split panes, and a split workspace. Spawns real zsh/bash processes with proper signal handling, 256-color support, and correct escape sequences.
Tabs and panes
- Multiple tabs (⌘T / ⌘W / ⌘1-9)
- Split pane within a tab (⌘D) with draggable divider
- Split workspace into left/right groups (⌘\) — each group has its own tab bar
- Drag tabs between groups, or move with ⌘⇧M
- Switch focus between groups with ⌘⌥← / ⌘⌥→
- Clear screen (⌘K)
Under the hood
- WebGL-accelerated rendering with canvas fallback
- Unicode 11 width tables for correct CJK/emoji rendering
- Backpressure flow control prevents xterm.js write queue overflow
- Right-click context menu (Copy, Paste, Clear)
- Drag files from the sidebar to paste paths
- Configurable font, size, cursor style, scrollback
Code editor
Files open as tabs alongside your terminal tabs — one unified tab bar. Click a file in the sidebar or use ⌘P, and it opens in a full CodeMirror 6 editor.
- Syntax highlighting for JS, TS, JSX, TSX, Python, Rust, HTML, CSS, JSON, Markdown, SCSS, TOML, YAML, Shell
- Find and replace (⌘F / ⌘H)
- Bracket matching, close brackets, code folding
- Autocompletion, highlight selection matches
- Rectangular selection, crosshair cursor
- Line numbers, active line highlight, indent guides
- File path breadcrumb with
›separators + line/column status bar - Modified indicator in tab (yellow dot)
- Unsaved changes warning on close
- Right-click context menu (Cut, Copy, Paste, Select All)
- Save with ⌘S
Git panel
Open with ⌘G. A visual git workflow designed so you never have to remember git commands. Stage, commit, push, pull, stash, merge, create branches — all from buttons.
Working with changes
- Quick actions toolbar — Pull, Push, Fetch, Stash, Pop in one click
- Staged vs unstaged split — clear separation of what's going into your commit
- Stage / unstage / discard — per-file buttons with confirmation on destructive actions
- Commit form — multi-line textarea with conventional commit prefix dropdown (feat / fix / chore / ...) and character counter
- Diff preview — click any changed file to see a structured diff with line numbers and hunk headers
Branches and history
- Branch management — create, switch, delete, merge branches. View local and remote branches with last commit info.
- Commit history — last 30 commits with OID, message, author, and timestamp. Click to expand and see changed files with +/- line counts.
- Ahead/behind indicators — see how your branch compares to remote at a glance
- Auto-push with upstream — first push to a new branch automatically sets up tracking
GitHub and conflicts
- GitHub integration — Open Repo, Open Branch, and Create PR buttons (auto-detected from your remote URL, works for SSH and HTTPS)
- Conflict resolution — when merge conflicts happen, resolve with Ours / Theirs buttons or open the file in the editor
- Stash management — save, pop, apply, and drop stashes
- Cancellable network ops — push, pull, fetch, merge can be cancelled mid-operation
- Git cheatsheet — hit ? for a plain-English explanation of git concepts
git2 crate for speed. Network operations shell out to your
system git so they respect your SSH keys, credential
helpers, and .gitconfig. No credential storage reinvention.
File browser
- Tree view with expandable directories, rooted at the project directory
- Color-coded by file type (JS yellow, Python green, Rust pink, config cyan) and git status (modified yellow, new green, deleted red, staged green, conflict pink)
- Agent-safe — navigating folders never writes to a terminal. Browse freely while a CLI agent runs, without risk of sending a surprise
cd. - Root-locked — nav-up ↑ caps at the project root, go-home ⌂ jumps back to the root from any depth
- CRUD operations — right-click to create new files/folders, rename, delete, reveal in Finder
- Live filesystem watcher — files created, modified, or deleted from the terminal or externally appear instantly in the tree (no manual refresh needed)
- Off-DOM tree building — folder expansion is flicker-free thanks to detached DOM fragment rendering
- Click to open in editor, double-click folder to navigate
- Drag files to terminal to paste the path
- Right-click: copy path, copy name, reveal in Finder
- Search / filter with ⌘F
- Toggle hidden files, resizable sidebar
Quick open (⌘P)
Fuzzy file search across your project. Case-insensitive, ranked by path
length. Skips hidden dirs, node_modules, target,
and other build noise. Arrow keys to navigate, Enter to open as an
editor tab.
Settings (⌘,)
All preferences in one place, applied live to open terminals and editors:
- General — sidebar width
- Terminal — font family (SF Mono, Menlo, Fira Code, JetBrains Mono...), font size, scrollback, cursor style, cursor blink
- Editor — font size, tab size, word wrap
- Git — auto-refresh interval, default commit prefix
Settings saved to ~/.launchpad/config.json. Project list saved to ~/.launchpad/projects.json.
Keep going: keyboard shortcuts · architecture.