SpadeIDE

Every machine you work on.
One iPad.

A native IDE and a real terminal for the workstation under your desk, the Linux box in the corner, and every server you keep alive. Pair them once and switch between them — editing the actual files each machine runs. No SSH session to babysit, no cloud VM to rent, no folder to keep in sync.

Linux and macOS hosts · desktop or server · free on your own network · iPadOS 15+

SpadeIDE on iPad — editor, explorer, source control and terminal
The editor, explorer, source control and terminal — all running against your host.

One app for every box you own

Most of us are not working on one machine. There is the laptop, the desktop that actually has the RAM, a home server, and a handful of VPSes that need looking after. SpadeIDE pairs with each of them and puts them behind one tab strip.

Your workstation

The full IDE — tree-sitter editor, git with per-hunk staging, project search, your AI agents. This is where the day's work happens.

Your servers

The same editor for an nginx config or a compose file, and the same real shell for systemctl, logs and a quick fix at 11pm. No separate SSH app.

Switch without losing your place

Every host keeps its own projects, open tabs and expanded folders. Come back to a machine and it is where you left it.

The editor is the point, and it is the same everywhere. Editing a Kubernetes manifest on a server should not be a worse experience than editing your application code — same syntax highlighting, same find and replace, same git.

Not a remote desktop. Not a cloud IDE.

Each host runs a small agent. The iPad talks to it over an encrypted connection and draws a real, native interface — so it feels like an IDE, not like a screen share.

The compute is yours

Your compiler, your toolchain, your SSH keys, your git credentials — on each machine. Nothing is uploaded and nothing is rented by the hour.

Native, not streamed

Text renders on the iPad. No video codec between you and your code, so typing feels local even when the machine is not.

End-to-end encrypted

Mutual TLS 1.3 with keys pinned on both ends. Even our relay is a blind pipe that cannot read your files.

A real editor, not a text box

Tree-sitter syntax highlighting for 18 languages, line numbers, indentation that follows the file, find and replace across the project, and a command palette.

SpadeIDE editor with syntax highlighting and git change bars
Change bars in the gutter show what you touched since the last commit.

Git that works the way you expect

Stage and unstage per file or per hunk, commit, push and pull — all executed by the git on your host, with your credentials, in your repositories. Several checkouts in one project are found and listed automatically.

Source Control panel with staged and changed files
Staged, changed and untracked, grouped like VS Code.
Diff tab with per-hunk Stage and Discard
Diffs open as tabs, with Stage and Discard on every hunk.

A real terminal, and your AI agents in it

A full xterm emulator attached to a login shell on your host — vim, htop, build logs, colours and all. If Claude Code, Gemini, Codex, Copilot or Cursor Agent are installed on that machine, SpadeIDE lists them and opens one in a new tab at your project root.

Terminal running an AI CLI on the host
The agent runs on your machine, with your files and your API keys.

Three steps to working

Install the agent on each machine

A tray app on Ubuntu/Debian, a systemd unit on a headless box, a menu-bar app on macOS. It listens only on your own network until you say otherwise.

Scan the pairing QR from the iPad

The QR carries the host's certificate fingerprint, so the iPad pins the right machine before it sends anything. Pairing keys live in the Secure Enclave.

Open a folder as a project

That folder becomes the read-write root and the terminal's working directory. Everything outside it stays read-only. Repeat on the next machine — they all live in the same app.

Full installation guide

Works from anywhere — without opening a port

On your own network, nothing leaves it: the iPad finds the host over Bonjour and connects directly. Away from home, both sides dial out to a small introducer that helps them find each other, then hands off to a direct peer-to-peer tunnel where the network allows it.

Same network

Bonjour discovery, direct connection. No internet traffic at all — not even a DNS lookup.

Anywhere else

The introducer matches two opaque handles and gets out of the way. It never learns who you are.

Or run your own

The introducer is a single Go binary you can host yourself. Point the app and the agent at it and we are out of the loop entirely.

No inbound port is ever opened on your machine. The agent always dials out, so there is nothing to forward and nothing new exposed to the internet. How it works →

Start on your own network, free

Every feature on one paired host, no time limit. Pairing the rest of your machines and reaching them from outside is the paid part — the only part that costs us anything to run.