LaunchDock
Public beta · Desktop companion available now

Code from your iPad.
Your desktop does the heavy lifting.

LaunchDock is a native iPad developer workspace. A desktop companion keeps your repos, Git, terminal, language servers, and coding agents on your own machine — connected over a relay we run for you.

Download host

iPad app via TestFlight when Apple approves external testing · no self-hosting required

RemoteAgentClient.swift
models.go×
page.tsx×
RemotePadRemoteRemoteAgentClient.swift
40func connect() async throws {
41guard let relay = profile.relayURL else {
42throw ConnectionError.missingRelay
43}
44let session = try await relay.open(
45host: profile.hostId, resume: true
46)
47}
Problems1CompletionsSymbol
44:9Initialization of immutable value ‘session’ was never used
relayURLresumeWorkspace()hostIdopenSessioncapabilities
ConnectedHost save248 linesp95 6.2 msSwift

How it connects

One workspace, two devices, a relay in between.

Your iPad draws the workspace and sends intent. Your desktop does the work. LaunchDock's relay keeps them in sync — securely, with nothing to configure.

iPad app

Native workspace UI

relay or direct

LaunchDock relay

Hosted & encrypted

secure session

Desktop companion

macOS · Windows · Linux

On your machine — your code never leaves the desktop
Repos & filesGit status & diffsTerminalLanguage serversCodex & Claude

A clean split of responsibility

The iPad owns the surface. Your desktop owns the machine.

No copied checkouts, no shadow filesystem. What you see on iPad is exactly what lives on the desktop that owns it.

On the iPad

A focused control surface

  • Editor, tabs, and breadcrumbs
  • Source control review
  • Terminal & agent control
  • Touch-native navigation

On your desktop

The full toolchain, local

  • Repos, files & Git
  • Terminal & language servers
  • Diagnostics & completions
  • Codex & Claude execution

Source control

Review every change before it ships.

Branch state, ahead/behind, staged and unstaged changes, and full side-by-side diffs — read live from the repo on your desktop. Stage, commit, pull, push, and stash without leaving the iPad.

  • Live branch & working-tree status
  • Side-by-side syntax-highlighted diffs
  • Commit, Pull, Push, Stash
SetupLinkView.swift
RemotePadHost/Views/SetupLinkView.swift
Working tree
@@ -18,7 +18,14 @@ struct SetupLinkView
18 var body: some View {
19 SectionCard(title: "iPad pairing") {
20- qrPanel(for: url)
21+ qrPanel(for: url.absoluteString)
22+ Text("Scan with the iPad camera to connect.")
23 }
24 }

Coding agents

Run Codex and Claude with real guardrails.

Agents stream their plan, tool calls, and file changes as they work. Every command and edit waits for your explicit approval — and runs on the desktop, never on the iPad.

  • Codex + Claude harnesses
  • Allow, Allow for session, or Deny
  • Plans, tool calls & file diffs inline
Codexgpt-5-codex
82% remaining
Add the pairing QR panel to the host setup view.
Plan
  • ✓ Read SetupLinkView.swift
  • ✓ Render QR with finder patterns
  • → Add copy / rotate controls
command

$ swift build --target RemotePadHost

Compiling RemotePadHost (3 files)… ok

Apply file change to SetupLinkView.swift1 pending
AllowAllow for sessionDeny
Ask for follow-up changes

Terminal

Real shells where the toolchain already lives.

Full terminal sessions, quick commands, and resize-aware output run on the desktop. The iPad stays a clean control surface for the machine that owns your tools.

  • Live host shell sessions
  • One-tap quick commands
  • Run anything in the workspace
TerminalRUNNING
~/Code/launchdock
120x32

$ git status --short --branch

## main...origin/main [ahead 2]

M RemotePad/Remote/RemoteAgentClient.swift

?? RemotePadHost/Views/SetupLinkView.swift

$ npm run dev

▲ Next.js 16.2.6 — ready on http://localhost:3000

$

GitInstallDevTestPNPMList
Run command on Mac in this workspace

And everything you'd expect

A real editor, not a viewer.

LaunchDock speaks to the language servers and tools on your desktop, so the iPad behaves like the editor you already know.

Diagnostics

Errors and warnings stream into the Problems panel with line, column, and severity.

Completions

Language-server suggestions surface as you type, served from the host.

Multi-folder workspaces

Open and switch between several granted folders on one host.

Project search

Search across the workspace with results and jump-to-line.

Symbol tools

Hover info, go-to-definition, and rename backed by the language server.

Stale-save protection

Host-validated saves keep the iPad and desktop from clobbering each other.

Security & control

Your desktop stays in control.

LaunchDock is built so the machine that owns your code decides what's reachable — and your code never has to leave it.

Folder allowlists
The desktop decides exactly which folders are exposed. Nothing else is reachable.
Pairing link & QR
Pair by scanning a setup QR or opening a link. Credentials stay on your devices.
Managed relay
We run the relay so there's no backend to host. Switch to Direct/LAN whenever you like.
Files stay local
Source, Git, and terminal output live on your machine — the relay only routes encrypted traffic.
LaunchDock Host
Hosting via relayAgent 2.4.0

iPad pairing

Scan with the iPad camera, or open this link on the iPad to connect.

launchdock://setup?relay=v2&t=••••••
Copy linkRotate
Relay
Online
Hosting
Active
Workspaces
1 granted

Get LaunchDock

Install in two steps.

Add the desktop companion to the machine with your code, then put the workspace on your iPad.

Step 1 · iPad

LaunchDock app

The native iPad workspace. Joining the beta needs the public TestFlight link, which opens once Apple approves external testing.

FAQ

Questions, answered.

Put a real dev workspace on your iPad today.

Download the desktop companion now. Pair your iPad the moment the TestFlight beta opens.

Download host