Launch the right workspaces in the right windows with the right terminals already running — without hand-editing .code-workspace files.
CodeLaunch is a desktop app (built with Tauri) that allows you to visually configure, per project:
- which folders belong to the workspace;
- whether integrated terminals should launch automatically;
- how those terminals are grouped into splits (e.g., 3 side-by-side terminals: 2 backend, 1 frontend);
- what command each terminal runs on startup (e.g.,
docker compose up -d; npm run dev).
Currently, it generates and launches VS Code workspaces, but it was designed from the ground up to support other IDEs (see Architecture and CONTRIBUTING.md).
It is common to accumulate multiple repositories (e.g., backend + frontend for each product) and repeat the same manual routine every day: open each VS Code window, open the integrated terminal, split it into panes, navigate into each directory, run docker compose up, run npm run dev... VS Code can already handle much of this on its own via tasks.json (presentation.group for splits, runOptions.runOn: "folderOpen" for autostart) — but writing this JSON by hand is tedious and error-prone. CodeLaunch provides an intuitive visual interface to generate this configuration properly.
Prerequisites: Node.js 18+, Rust (via rustup), and Tauri system prerequisites for your OS (on macOS, Xcode Command Line Tools are sufficient).
npm install
npm run tauri devThis launches the app in development mode with frontend hot-reloading and automatic Rust recompilation when backend files change.
To build an installable binary:
npm run tauri build- Import an existing workspace — if you already have a hand-configured
.code-workspacefile from VS Code, click "Import .code-workspace..." on the project list. CodeLaunch reads the folders, terminal groups, and configured commands, recreating the project. - Or create a new one — click "New project", provide a name, and add folders (the file picker allows selecting multiple folders at once).
- Configure terminals (optional) — toggle "Integrated terminals", add one or more groups, and add the terminals that should open side-by-side within each group. Each terminal has: the directory it opens in, an optional startup command, and whether to "keep alive after command" (useful for long-running foreground commands like
npm run dev— if you hitCtrl+C, the terminal stays open in an interactive shell instead of closing). - Save and open — "Save and open" generates the
.code-workspacefile (in CodeLaunch's dedicated config directory, not cluttering your repos) and executescode --new-windowon it. - Launch multiple projects at once — in the project list, check the boxes for your desired projects and click "Launch selected".
crates/codelaunch-core/ # pure business logic, independent of the Tauri runtime
├── model/ # Project, Folder, TerminalGroup, Terminal, validation
├── storage/ # JSON persistence (one file per project)
├── ide/ # IdeAdapter trait + VS Code implementation
│ └── vscode/ # generates and imports .code-workspace (folders, settings, tasks)
└── launcher.rs # resolves the target adapter and spawns the IDE process
src-tauri/ # thin Tauri binary — exposes commands, no business logic
└── src/commands.rs
src/ # React + TypeScript + shadcn/ui frontend
├── routes/ # project list and edit screens
├── components/ # TerminalGrid/TerminalGroupPanel/TerminalPane (split view UI)
└── lib/ # types + typed wrappers for invoke()
The core extensibility point is the IdeAdapter trait (crates/codelaunch-core/src/ide/mod.rs): adding support for any new IDE (Cursor, JetBrains, etc.) only requires implementing render (generates the configuration) and launch_command (constructs the command to open the IDE) — the rest of the application (storage, UI, Tauri commands) works out of the box. Check CONTRIBUTING.md for a step-by-step guide on adding a new IDE.
cargo test --workspace # backend tests, including golden-file / round-trip suites
cargo clippy --workspace --all-targets
npx tsc --noEmit # frontend type-checkingThe ide/vscode tests include real-world fixtures (crates/codelaunch-core/tests/fixtures/) that verify the generator faithfully reproduces handwritten .code-workspace files.
MIT.