self-hosted · own machines, own models · no cloud

Hold to talk.

Your words and the agent's thinking stream live on a dark canvas, the tape. The paper SLAPP — the QR — is the key that wires this phone to this Mac: scan it and the conversation travels with you.

$ curl -fsSL https://slapp.dev/install.sh | bash

hold to copy — the same hold that talks

terminal door free forever · app $10 once

the tape

Everything that moves, on one dark canvas

Hold the mic. Your words go up in ink; the agent's thinking and its commands stream alongside, in light. This is the tape — the live conversation, nothing hidden behind a send button. Swipe right, it goes back.

Answers can arrive as sound, a clip, or a set of photos — they play right here in the chat. Five looks, one word each: grid paper — the work sheet — plus manila, lime, amber and mint.

the dm 2m
the dm

ink is you · light is the agent · hold the mic to join

the SLAPP

The paper is the key

A printed SLAPP carries the QR. Point your phone's Camera at it and this phone talks to this Mac — no typing the address, no finding the port. Scan it once and the conversation travels with you, on any phone that scans that paper back.

1 · print

The terminal door prints a SLAPP to paper, or on screen — nothing sent anywhere.

2 · scan

Phone Camera on the QR. It carries the address and this Mac's code, together.

3 · carry

The conversation now travels with that phone. Leave the house with it.

what it does

A door, one per Mac

hold to talk

The whole mic is a button. Hold, speak, release. Transcribed on your Mac, delivered in seconds.

thinking streams live

The agent's words and its commands ride the tape beside yours. You see it think, in real time.

it sees

Point, shoot, send. The agent looks at what you showed it and answers about that.

annotate

Scribble on the photo, circle the thing. The marks ride along — the circle is the sentence.

media in the chat

Sound plays with its own live bars, a clip plays inline, a set of photos lands as one small grid.

run it yourself

Security honesty is the selling feature

You run the model. You run the network. Nothing phones home. Own machines, own models — BYOK, paste your own model key. The compute, the repos and the model all live on your machines. No relay, no account, no telemetry.

by default, a Mac nobody configured is locked

A request that cannot name the Mac's code gets a 401 — nothing is served to a stranger. shadow (logged, then served) is opt-in, never the default.

enforcement is built and already on

Self-hosting on a reachable network means reachability is trust. Bind the daemon to your tailnet, set the bridge admin token, and lock.sh on re-asserts the lock after a reboot — anything that can't name the Mac gets a 401.

In the app's settings: new code re-mints the Mac's code — every phone that has not learned it is locked out, which is the revoke; forget this Mac lets a phone go.

no cloud · no wake word · no subscription

Full install + security posture, read before you put a phone near a real network: docs/SELF-HOSTING.md and docs/HARDENING.md ship inside the slapp repo — which is private today (github.com/Snail3D/Slapp returns 404 without access; ask the owner for a collaborator invite).

price + install

Terminal door free forever

The terminal door and the SLAPP are free to run on your own machines. The phone app is $10, once — no subscription, no unlock, no trial clock.

$ curl -fsSL https://slapp.dev/install.sh | bash

A phone cannot pair yet: the bridge — the phone's door on :8651 — is a separate service whose source is not in the slapp repo. The line above wires the daemon and the terminal doors; pairing needs a bridge you supply.

No Mac yet? The app opens on a demo — the tape, a real conversation, no network. And when a row cannot answer, it says why in three lowercase words, never a silent spinner.

the line does

  • clones slapp
  • wires slappd :8123
  • links the slapp command ~/.local/bin/slapp
  • runs slappd as a LaunchAgent

you do

  • paste your model key BYOK, no relay
  • bind to your tailnet 100.x, not the internet
  • scan a SLAPP to pair

need

  • a mac only — no linux, no docker
  • node ≥ 24
  • your own model + key