I built Xiryn — an open-source personal agent that gets its own Linux desktop
Description and use
Xiryn is a local personal agent that runs in a Docker container with a virtual Linux desktop, handles logins, CAPTCHAs, and payments with user approval, and stores all data in an encrypted vault.
Problem
Users want a personal agent that runs locally, keeps data private, and can interact with a desktop environment without exposing their machine to external servers.
Outcome
Xiryn enables a fully local personal agent that runs its own Linux desktop, handles authentication and payments with user approval, and keeps all data encrypted and private, all set up with a single command.
Workflow
- 1. Install Xiryn via a single shell or PowerShell command that installs Git, Node.js, and Docker if missing.
- 2. Xiryn builds a desktop image and starts the agent at http://127.0.0.1:6796.
- 3. The agent runs in a Docker container with Xvfb, Chromium, and noVNC, exposing a virtual desktop.
- 4. When the agent encounters a login, one-time code, or CAPTCHA, it pauses and hands control to the user via the virtual desktop.
- 5. The user can take over, resolve the challenge, and hand control back with a note.
- 6. Xiryn stores chats, memory, settings, and keys in a single SQLite file and uses an encrypted vault (AES-256-GCM) for logins and cards.
- 7. Payments are queued until the user approves them via the app or a Telegram button.
- 8. The agent can be controlled from anywhere by pairing Telegram with a QR code; live progress and approvals are sent as buttons.
- 9. Users can choose any model (OpenAI, Anthropic, Google Gemini, etc.) or a local model; prompts never leave the computer if a local model is used.
Evidence
Every agent gets its own Linux desktop in a Docker container: Xvfb draws the screen, a real Chromium runs on it, and x11vnc with noVNC lets you watch.
When it reaches a login, a one-time code or a CAPTCHA, it stops and hands you its screen.
No account, no telemetry. Chats, memory, settings and keys live in one SQLite file on your disk.
Pair Telegram by scanning a QR code. Xiryn long-polls from your machine, so there's no public URL or port forwarding.
Set it up in one command: curl -fsSL https://raw.githubusercontent.com/SouravBeraAkaSpeed/xiryn/main/setup.sh | bash
- Record date: 2026-10-12T15:40:58.162Z