Paws logo Paws / docs
GETTING STARTED

Installation & Quick Start

Get Paws running in a few minutes. Install the CLI on the computer where your coding agents run, install the app on your phone, then pair the two.


Introduction

Paws lets you control AI coding agents — Claude Code, Codex, Gemini, OpenCode and other ACP-compatible agents — from another device. The paws CLI wraps the agent's terminal session on your computer; the mobile or web app mirrors it, lets you send instructions, and handles permission prompts.

Mobile / Web App │ HTTP + WebSocket · end-to-end encrypted Sync Server (self-hosted or upstream) │ encrypted sync · machine presence · session state paws CLI / daemon on your computer Claude Code · Codex · Gemini · OpenCode · ACP agents

Everything the server relays is ciphertext — your code and conversations never leave your devices unencrypted.

1

Install the CLI

Paws ships as a single npm package. Install it globally on the machine where your agents run:

$ npm i -g @wangjs-jacky/paws

This provides the paws and happy commands (plus paws-mcp for MCP integration).

Get the app

Download the latest Android APK from GitHub Releases (arm64, sideload install). A web app is also bundled with the self-hosted server.

Download Android APK
2

Connect your computer

Run your agent through Paws instead of launching it directly:

$ paws claude # instead of claude $ paws codex # instead of codex

The first run prints a QR code. Scan it with the Paws app to pair — pairing exchanges encryption keys directly between your devices, so the server never sees them.

$ paws claude → relay started on this machine ✔ scan the QR code with the Paws app to pair…
3

Your first session

Once paired, the running session is mirrored to your phone in real time. To let your phone spawn new sessions on this machine — even when nothing is running — keep the daemon alive:

$ paws daemon start # in the app: tap + → New Session ✔ agent running · your-macbook ◍ streaming terminal to your phone

You're all set. Read on to learn how to steer sessions, get notified, and self-host the whole stack.

Sessions

A session belongs to whichever device is driving it — and switching is instant:

  • Take over from your phone — open the session in the app and start typing; the terminal on your computer hands control over.
  • Take it back at your desk — press any key in the terminal and the session returns to local mode.
  • Approve permissions anywhere — when the agent asks to run a command or edit a file, the prompt appears on your phone.
  • Attach images — add screenshots or photos when creating a session; HEIC photos are converted automatically so vision models can read them.

Notifications

Paws pushes a notification when an agent needs permission, hits an error, or finishes its task — so long runs don't chain you to your desk.

  • On Android, push is delivered via direct FCM for reliability.
  • Notifications also fire while the app is in the foreground; tapping one jumps straight into the session.

Self-hosting

The sync server is a single Docker container with zero-config embedded PGlite (or an external PostgreSQL). Run it anywhere — a home server, a VPS, or an intranet host — and point the CLI at it:

$ export HAPPY_SERVER_URL=http://your-server:3005 $ paws claude

In the app, set the same server URL in Settings. The server also serves the bundled web app, so browsers on your network get a client for free.

Even self-hosted, the server only ever stores ciphertext — end-to-end encryption is part of the protocol, not a hosting option.

Full walkthroughs: server options & source installs · intranet deployment manual

Full documentation

This page covers the essentials. The complete guides — source installs, app builds, OTA updates and troubleshooting — live in the repository:

Getting Started (English) 从零上手(中文) GitHub Repository
© 2026 Paws · MIT License · fork of slopus/happy ← Back to home