The iPad draws the interface. Each of your machines does its own work — same files, same toolchain, same credentials you already use at the keyboard.
Pair as many hosts as you have. They sit behind one switcher, each remembering its own projects, open tabs and folder state.
Desktop app with a tray and pairing QR on Ubuntu/Debian. Headless server, VPS, ARM box: a .deb or a single static binary plus systemd.
A menu-bar app that supervises the agent and shows the pairing QR.
The editor, terminal, git and AI-agent launcher behave identically whether the host is your laptop or a server you have never sat in front of.
vim in a phone-sized window. Here it is the same
tree-sitter editor, with search and git, on the box that actually runs the thing.
Runestone with tree-sitter underneath, tuned for reading and writing code on a tablet.
Swift, Go, Python, JavaScript, TypeScript, Rust, C, C++, Java, Ruby, HCL/Terraform, HTML, CSS, JSON, YAML, TOML, Markdown, shell.
Green, blue and red marks in the gutter show what moved since the last commit — the marks, not a diff, so you keep writing.
In the file with ⌘F, or across the whole project with regex, case and whole-word switches.
Auto-detects tabs or spaces per file, with a project override when you want one.
Shift+Option and drag with a trackpad to edit the same column across many lines at once.
⌘Z, ⌘/, ⌘[ and ⌘], ⇧⌘D, ⇧⌘K, ⌥⌘↑↓ — the shortcuts your hands already know.
Your host's git, your credentials, your repositories. SpadeIDE never stores a token and never talks to a git server itself.
Two unrelated edits in one file can be committed separately. The agent cuts the patch itself, so a stale screen cannot apply the wrong thing.
A folder of checkouts is found and listed automatically, with a picker for which one commands act on.
Changed files are tinted and a folder is tinted when something below it moved — a collapsed branch still tells you.
Not sheets. They sit beside your files, reorder, survive renames, and carry an Open File button.
Switch or create from the panel or the status bar. Uncommitted work is protected by git's own refusal, not by us guessing.
.git is watched, so a commit you make in the terminal appears without asking for a refresh.
A real xterm emulator on a login shell — not a command runner that prints output.
vim, htop, lazygit, anything that expects a terminal. Full colour, cursor, scrollback and selection.
Each is its own shell on the host. Minimising keeps them alive; typing exit closes that tab the way a window closes.
A panel with Esc, Ctrl combinations, arrows, F-keys and brackets — on demand, not permanently in the way.
If Claude Code, Gemini CLI, Codex, Copilot or Cursor Agent are installed on the host, SpadeIDE lists them and opens one in a terminal tab at your project root.
Fuzzy file open across the whole project, indexed on the host.
Command palette — save, terminal, new file, open folder, disconnect.
Grep across the tree with replace, scoped to selected files, one file, or every hit.
Bonjour on your own network, matched by certificate fingerprint — a changed IP never loses the machine.
Auto-reconnect with backoff keeps your tabs, workspace and unsaved edits through a sleep or a Wi-Fi blip.
Off your network it tries a direct peer-to-peer tunnel first and only relays when the network refuses.