--- title: SCRYPT emoji: 🕯️ colorFrom: green colorTo: gray sdk: docker app_port: 7860 pinned: false --- # SCRYPT A deck-builder escape room played in a terminal, against an LLM that owns the machine. The Warden sacrifices your shell commands, remembers every run, and threatens your files (sandboxed copies — nothing real is touched). ## The web layer This Space is a **custom Osaka-Jade frontend on top of `gradio.Server`** — Gradio is the engine room, not the face. The app *is* a `gradio.Server` (a FastAPI app), driven by uvicorn so our own routes stay authoritative: - `GET /` — a hand-built CRT landing page (`space/static/`), where the Warden mutters at you before you enter. - `GET /api/whisper` — the backend that feeds those mutterings, in voice. - `GET /play` + `WS /pty` — an xterm.js terminal bridged to a private `python -m scrypt.app` process per visitor: their own sandbox, their own Warden, streamed byte for byte. Run locally: `python space/app.py` (needs `gradio>=6`), then open `http://localhost:7860`. ## Secrets `SCRYPT_API_KEY` — an OpenRouter or NVIDIA NIM key for `nvidia/nemotron-3-nano-30b-a3b`. Without it the Warden falls back to scripted lines: playable, but quieter. Sandboxes here are always fabricated, never mirrored from a real machine.