Skip to main content

Quickstart

A fresh Linux box, about ten minutes, and one answered Run. Every command here is one the Runtime ships today.

1. Install

curl -fsSL https://usewisp.io/install.sh | sh

The installer downloads the release for your platform, checks it against the manifest the release key signs, unpacks it into ~/.wisp/versions/<version> and links ~/.wisp/bin/wisp at it. It also adds ~/.wisp/bin to your PATH in your shell's rc file — open a new shell, or run the export line it prints.

To install somewhere other than ~/.wisp, set WISP_HOME on the shell that runs the script — curl -fsSL https://usewisp.io/install.sh | WISP_HOME=/srv/wisp sh, not in front of curl, which is a different process. Install minisign first (apt install minisign) if you want the manifest's signature verified rather than skipped: without it the install still checks TLS and the archive's SHA-256, and says that it did not check the signature.

2. Give it a token

Everything reaches the Runtime over HTTP on loopback, and every request carries a bearer token. The token is yours to pick; write it into $WISP_HOME/runtime.json before the first start:

mkdir -p ~/.wisp
printf '{"agentToken":"%s"}\n' "$(openssl rand -base64 32)" > ~/.wisp/runtime.json
chmod 600 ~/.wisp/runtime.json

At least 32 characters, or the Runtime refuses to start. Nothing else goes in the file for now — the release already knows where to reach the model and where you sign in. A file it cannot load, or one owned by another user, exits 78 and says what is wrong.

3. Start it

wisp serve

It writes $WISP_HOME/runtime.lock — the address and token every other command reads, which is why none of them takes a flag. Leave it running and open a second shell:

wisp status
# login_required (wisp 0.1.0, serve)
Or let systemd keep it up

Re-run the installer with WISP_SERVICE=1 and it writes a user unit, enables it and starts it — no root anywhere:

curl -fsSL https://usewisp.io/install.sh | WISP_SERVICE=1 sh
systemctl --user restart wisp # after writing runtime.json
journalctl --user -u wisp -f

A user service stops when you log out until you grant lingering: loginctl enable-linger "$(id -un)".

On Linux the agent's bash_run tool needs bubblewrap and refuses to run commands without it: apt install bubblewrap.

4. Sign in

The Runtime reaches the model through your account, so a fresh install sits at login_required until somebody signs in. A server has no browser, so sign in on whatever machine does:

wisp login --manual

It prints a URL. Open it anywhere, sign in, and paste back the URL you were redirected to. Then:

wisp status
# ready (wisp 0.1.0, serve)

Without --manual the Runtime opens a browser on its own host and the command waits for the login to land.

5. Run something

cd into the folder the agent should work in — that folder becomes the Session's Project, and the agent's tools are confined to it:

cd ~/projects/thing
wisp run "read the source and tell me what this project does"

The answer goes to stdout; the Session's id goes to stderr, so a pipe gets the answer alone. Continue that Session by naming it:

wisp run 6b4f2a7e-… "now write a README for it"

The command waits for the Run and exits 0 when it completed, 1 when it failed or was cancelled, 2 on a bad command line, 4 when no Runtime answered and 5 when the token was refused. --json prints the whole outcome as one JSON document instead.

wisp sessions list # the Sessions this folder has
wisp cancel 6b4f2a7e-… # stop what a Session is running

6. Connect one thing

The agent's own tools are built in. Everything else arrives as an MCP connector — added once, then enabled per Project:

wisp connectors add github --http https://api.githubcopilot.com/mcp/ --header-stdin Authorization
# paste: Bearer <your GitHub token>
wisp connectors enable github --project .
wisp connectors list
# github http connected 38

--header-stdin asks for the secret on the terminal so it never lands in your shell history. A server that signs you in with OAuth instead takes wisp connectors auth github, which prints a URL and takes the redirect the same way wisp login --manual does.

That is the whole loop: install, start, sign in, run, connect.