Guide

Run your own wisp Grid

wisp Grid is what runs wisp Cloud, and it’s in the wisp repo (MIT). Put it on one small Linux server and everyone you let in gets their own wisp at name.wisp.example.com: signed in with GitHub, Google or your company’s OpenID Connect, sandboxed from each other, asleep when idle. grid.trywisp.dev runs on a Hetzner CAX21 (4 Arm vCPUs, 8 GB) for about €12 a month, which is enough for 4 people with agents running at once.

Source on GitHub

Free and open source · Claude Code, Codex, Cursor CLI, opencode, Antigravity CLI, Grok Build · macOS, Linux, Windows (beta) · Node 20+

Try it on your computer first

npx wisp-agents grid dev --fake-agents

Open http://wisp.localhost:8080 and sign in with any email (dev sign-in). --fake-agents runs tasks with wisp’s test agents, so nothing needs an account.

1. Install it on a server

Debian 13 or Ubuntu 24.04, with ports 80 and 443 open. Copy the wisp repo there and run, as root:

DOMAIN=wisp.example.com ./grid/deploy/install.sh

It installs Node.js 22, Docker with gVisor, Caddy and some swap, builds the image each person’s wisp runs in (git, gh, Claude Code, Codex, opencode), and sets up the firewall and the service. Then:

sudo -u wisp node bin/wisp.js grid init --domain wisp.example.com --data /var/lib/wisp-grid

2. Point DNS at it

Two A records to the server’s address: wisp and *.wisp (for wisp.example.com). Caddy gets a certificate for each name the first time it’s asked for, after checking with the grid that the name belongs to someone.

3. Set up sign-in

  1. GitHub: github.com → Settings → Developer settings → OAuth Apps → New. Callback URL: https://wisp.example.com/auth/github/callback.
  2. Google: Google Cloud → APIs & Services → Credentials → OAuth client ID (Web). Redirect URI: https://wisp.example.com/auth/google/callback.
  3. Put each client id in /var/lib/wisp-grid/grid.json and each secret in its own file under secrets/ (chmod 600).
  4. Decide who gets in: "allow": { "accounts": ["github:you"], "domains": ["example.com"], "githubOrgs": ["your-org"] }.
  5. Turn on the sandbox: "hostd": { "driver": "container" }.
sudo -u wisp node bin/wisp.js grid doctor --data /var/lib/wisp-grid
sudo systemctl enable --now wisp-grid

How people are kept apart

Questions

How big a server do I need?
About 2 GB of memory per person with an agent running. A 4-core, 8 GB machine with swap handles 4 people at once.
Does it need KVM or bare metal?
No. gVisor runs on ordinary cloud VMs, Arm or x86.
Can people use the desktop and phone apps with my grid?
Yes. In Settings → Cloud, or on the phone app’s first screen, they type your grid’s address instead of grid.trywisp.dev.
Where is the full reference?
grid/README.md in the wisp repo: commands, configuration, secrets and isolation.