Tutorial

Celistra Setup Guide: From Download to First Agent in 5 Minutes

Akshay Sarode
Direct answer

Five minutes. Three steps. Free for 1 paired node forever.

This is the canonical setup guide. You'll download the Celistra daemon, pair your machine, spawn an agent, attach to it from your phone, and grant it a sandbox capability. Five minutes if you don't get distracted.

Prerequisites

Step 1 — Install the daemon (1 minute)

macOS

Download from celistra.dev/download. Drag Celistra.app into /Applications. Double-click once to launch. The Celistra mark appears in your menu bar.

On first launch, the onboarding wizard opens. Three steps: welcome, workspace folder (default ~/CelistraAgents), permissions (skip what you don't need). Done.

Linux

curl -L https://celistra.dev/dl/celistrad-linux-amd64.tar.gz | tar xz
sudo mv celistrad /usr/local/bin/
celistrad install-systemd-unit
sudo systemctl enable --now celistrad

Windows

Download the signed MSI from celistra.dev/download. Run the installer. Celistra registers as a Login Item and appears in your system tray.

Step 2 — Pair the machine (30 seconds)

Open the dashboard at celistra.dev. Sign in with Google. The dashboard loads in the empty fleet-view state.

On the machine: click the Celistra tray icon → Pair this machine. The browser jumps to celistra.dev/pair?token=…. Constant-time compared, single-use, 600-second TTL. The handshake completes silently. The machine appears in your fleet view.

Step 3 — Spawn your first agent (1 minute)

From the dashboard, click Spawn agent. Pick the host. Enter the command — anything you'd run in a terminal:

claude --resume my-first-task

or

python3 my-script.py

Toggle Auto-restart if you want the daemon to respawn on crash (5/60s ceiling).

Hit Run. The PTY opens in your browser via xterm.js + WebSocket. The agent is now supervised by the daemon — survives terminal close, lid close, network drop.

Step 4 — Watch from your phone (2 minutes)

Install Celistra mobile (iOS via TestFlight: celistra.dev/mobile · Android via Play Store). Sign in with the same Google account. Your fleet view appears.

Tap the running agent. The PTY attaches; you can read along. When the agent asks for a permission ("can I run git push?"), the phone buzzes. Long-press → Approve. Face ID confirms. The agent continues.

Step 5 — Sandbox a capability (1 minute)

By default, agents can write inside the workspace and read everywhere — workspace_rw + read_anywhere + network + subprocess. If a particular agent needs more (e.g. screen recording for visual UI work), grant per-agent:

Tray menu → Edit Agent Capabilities… opens ~/.celistra_capabilities.json:

{
  "grants": [
    {
      "match": { "agentNamePattern": "screenshot-*" },
      "capabilities": ["screen_capture"]
    }
  ]
}

Save. Next spawn whose name matches gets the extra capability. The audit log records every grant.

Step 6 — When you're off Wi-Fi (0 minutes — automatic)

The dashboard probes 127.0.0.1:33120 first. If unreachable (you're at a coffee shop, the daemon is on your home laptop), it falls back to <machine>.tunnel.ujex.dev transparently. nginx terminates TLS with Let's Encrypt; CAA pinned. The user-visible difference: latency. Otherwise identical.

What you can do next

Common first-time stumbles

SymptomFix
Tray icon doesn't appear on macOSSystem Settings → Login Items → ensure Celistra is allowed
"Pair this machine" opens browser but pairing doesn't completeMake sure you're signed into the dashboard with the same Google account
Spawn says "permission denied"Workspace folder needs read+write — check ~/CelistraAgents permissions or pick a different folder via tray
Mobile app doesn't show machinesSame Google account on mobile + dashboard. Pull-to-refresh.
Off-LAN says "machine offline"Check the daemon is running (tray icon present). Tunnel needs internet on both sides.

Pricing

PlanCostIncludes
HobbyistFree1 paired node, full daemon, sandbox, mobile
Professional$2/mo5 paired nodes, priority tunnel, scheduled agents, secrets manager
Team$10/moUnlimited nodes, RBAC, multi-owner machines

Free tier is real. Download.

FAQ

Do I need a Firebase account?

No — Celistra uses a Firebase project we manage. You sign in with Google; the auth flow is standard.

What if I'm behind CGNAT?

The tunnel is outbound from the daemon. CGNAT is invisible to it (same as Cloudflare Tunnel).

Can I run multiple daemons on the same machine?

No — the daemon binds 127.0.0.1:33120 exclusively. One daemon per machine.

Does Celistra auto-update?

macOS app: yes (signed updates). Linux: install via package manager when available, otherwise download new binary. Windows: MSI updater.