Launchpad / Getting started

Getting started

Launchpad is a native macOS app. There's no pre-built binary yet — you build it from source, which takes a couple of minutes the first time (Rust compiles everything) and a few seconds on subsequent builds.

Prerequisites

  • macOS — Launchpad is macOS-only at the moment (some features like Finder integration and the folder picker use osascript).
  • Rust — install via rustup.
  • Node.js 18+ — for Vite and the frontend toolchain.
  • Xcode Command Line Tools — for linking against system frameworks.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
xcode-select --install

Install from source

Clone the repo, install JS deps, run a release build, and drop the .app into /Applications.

git clone https://github.com/WalrusQuant/launchpad.git
cd launchpad
npm install
npx tauri build

cp -R src-tauri/target/release/bundle/macos/Launchpad.app /Applications/

The first build compiles the Rust backend and can take 2–5 minutes depending on your machine. Incremental builds are under 10 seconds.

Note: an app you build yourself from source isn't code-signed, so macOS Gatekeeper will complain on first launch — right-click the app and choose Open, or xattr -dr com.apple.quarantine /Applications/Launchpad.app. (The official .dmg from Releases is signed and notarized, so it launches with no warning.)

Dev build

For hacking on Launchpad itself, use the dev command. It hot-reloads the frontend and recompiles the Rust side on change.

npm install
npx tauri dev

Other useful commands:

# Rust-only typecheck (faster than a full build)
cargo check --manifest-path src-tauri/Cargo.toml

# Rust tests
cargo test --manifest-path src-tauri/Cargo.toml

# Frontend-only dev (no native shell, less useful)
npm run dev

Your first project

Open Launchpad. You'll land on the project picker — an empty welcome state the first time. Click Open folder (or drop a folder onto the window) to pick any directory on disk.

That directory becomes the project. The window transforms into the workspace:

  • The file browser on the left is rooted at the project.
  • The terminal on the right spawns at the project root.
  • Press ⌘G to open the git panel if the directory is a git repo.
  • Press ⌘P to fuzzy-search files in the project.

Open as many files as you like — each opens as an editor tab next to your terminal tabs in a single unified tab bar.

Multi-window

One window = one project. Clicking a project in the picker takes over the current window (VS Code convention). To open a second project in parallel, hit ⌘⇧N — a fresh picker appears in a new window so you can choose another folder.

If you try to open a project that's already open in another window, that window gets focused instead of opening a duplicate.

The button in the toolbar tears down the workspace and returns to the picker.

Config files

Launchpad persists two files under ~/.launchpad/:

  • ~/.launchpad/config.json — settings (font, size, scrollback, git refresh interval, etc.)
  • ~/.launchpad/projects.json — your recent projects list

Both are plain JSON. You can edit them by hand if you want — changes to config.json are picked up on app restart.

Open the settings UI any time with ⌘,.

Troubleshooting

"Launchpad can't be opened because Apple cannot check it for malicious software"

This only happens with an app you built from source (the official .dmg from Releases is signed and notarized). Either right-click → Open, or clear the quarantine attribute:

xattr -dr com.apple.quarantine /Applications/Launchpad.app

Terminal shows no output / is blank

Likely your shell config (.zshrc, .bash_profile) is erroring. Launch from Terminal.app to see stderr:

/Applications/Launchpad.app/Contents/MacOS/Launchpad

Git panel says "not a git repository"

The project directory isn't a git repo. Run git init in the terminal and the panel picks it up on the next poll (within 3 seconds).

Need a debug log

Click the ⦿ debug-capture button in the toolbar. It writes recent activity to ~/.launchpad/debug.log.


Next: dig into the full feature list, or skim the keyboard reference.