# Pairlet

> Pairlet (also written cc-pocket) is an open-source, local-first, end-to-end encrypted cross-device control plane for command-line coding agents. The agent keeps running on the user's own computer; from a phone, tablet or another computer the user watches the live stream, answers the permission requests that block it, continues the same session, and reads what it changed. Traffic passes through a zero-knowledge relay that only ever forwards ciphertext. MIT-licensed, no Pairlet account, clean-room Kotlin Multiplatform.

Product baseline verified: 2026-08-27. Product availability and third-party plan requirements can change; use the individually dated, sourced notes below for comparisons.

Public baseline: **v1.9.4**. Every capability claim on this site was audited against commit `e9ee816f` on `main`. Machine-readable fact contract: https://pairlet.org/public-capabilities.json

## What it is

- **Category:** developer tool / cross-device control plane for command-line AI coding agents.
- **Problem it solves:** coding agents pause to ask permission and stream long output; the developer does not want to be chained to the laptop. Pairlet moves the approval loop and the live session to another device.
- **Who it's for:** developers who run a coding agent CLI locally and want to watch or unblock it while away from the desk.
- **Cost:** free, open source (MIT). No account or sign-up.
- **Not** a cloud IDE and **not** a re-host of the model: the code and the agent stay on the user's machine; Pairlet only relays encrypted control traffic.

## The four jobs

1. **Watch** — streaming output, syntax-highlighted code, tool events with timing, sub-agent cards, background-task state. Projects, sessions and usage can be filtered by agent.
2. **Approve** — a tool-permission request reaches the phone the moment the agent raises one; allow or deny in seconds. No answer times out to a safe deny, never a silent allow.
3. **Continue** — take a running session over *in place* rather than forking it; start a new task from the phone or the desktop app; output missed during a dropout is backfilled on reconnect.
4. **Inspect** — changed files with line-level diffs, file preview, context and usage. Images in the user's own prompts stay visible in session replay.

## Agent backends and their exact boundaries (v1.9.4)

Six backends, four promoted capability columns. They are **not** equivalent.

| Agent | Core session | Approval & mode | Changes & diff | Usage |
|---|---|---|---|---|
| Claude Code | Yes | Yes | Yes | Yes |
| OpenAI Codex | Yes | Yes | Yes | Yes |
| OpenCode | Yes | No — always Full access | No | Yes |
| Kimi Code (Preview) | Yes | Yes | No | Yes (new in v1.8.0) |
| ZCode | Yes | Yes | No | Yes (new in v1.8.0) |
| DeepSeek Harness (narrow v1) | Yes | Yes | No | No |

- **Core session** means: discover, replay, create, resume, send and receive text, live streaming. All six do all of it.
- **OpenCode has no enforceable interactive approval.** `opencode run` exposes no approval protocol, so those sessions run at **Full access**; the app states this instead of offering modes it cannot enforce.
- **Kimi Code is Preview.**
- **DeepSeek is supported but narrow (not Preview).** Approvals and multiple-choice questions are bridged to the app; the sandbox mode is fixed at launch. It has no Changed-files/diff view, no usage accounting and no model switching. DeepSeek has no timeout of its own — an unanswered request rides the daemon approval window (expired approval: reject; expired question: skipped).
- A session stays bound to one backend for its lifetime.

## Platforms and distribution

- **Phone / tablet app:** iOS / iPadOS — [App Store](https://apps.apple.com/cn/app/id6778773969), new versions first on [TestFlight](https://testflight.apple.com/join/8z26MWWr). Android — [APK from GitHub Releases](https://github.com/heypandax/cc-pocket/releases/latest/download/cc-pocket-android.apk).
- **Desktop app:** macOS Apple Silicon and Intel (signed `.dmg`), Windows x86_64 (`.msi`). **There is no official Linux desktop package** — Linux users build the desktop app from source.
- **Local daemon** (the piece that actually runs the agent): macOS Apple Silicon, macOS Intel, Linux x86_64, Linux arm64, Windows x86_64. Install script, Homebrew or Scoop.
- **HarmonyOS:** signed HAP, Preview, limited capability.
- **Relay:** a hosted zero-knowledge relay is the default; self-hosting is supported.
- The desktop app and the local daemon are **different packages**.

## How it works

`phone / tablet / desktop client  →  relay (zero-knowledge broker)  →  daemon (the user's computer)  →  agent CLI`

- The **daemon** runs on the user's computer, drives the agent CLI as a subprocess, and dials out to the relay — no inbound ports to open.
- The **relay** pairs devices and routes opaque encrypted frames. It holds no message content and no private keys.
- The **client** and the daemon run an end-to-end encrypted session, so plaintext never leaves the two trusted endpoints. On the same network the client connects to the daemon directly; the relay is the from-anywhere fallback.

## Security model and honest limits

- **End-to-end encryption** between client and daemon: P-256 ECDH + HKDF + AES-256-GCM, X3DH / Noise-style handshake.
- **Zero-knowledge relay:** forwards ciphertext only; cannot read messages, never holds private keys, no content logging.
- **No account:** pairing is device-to-device. The daemon's key travels out-of-band via QR, so even a malicious relay cannot MITM that path. Pairings expire and can be revoked.
- **Limits, stated plainly:** the agent still executes with the user's own operating-system permissions — encryption is not a sandbox. OpenCode sessions have no enforceable interactive approval. The custom Noise-style channel has not had an independent third-party audit.

## Product media

Screenshots and the control-loop videos on the website are generated from the real Compose UI with scripted demo data by `marketing/site/generate-assets.sh`. They are mechanical product evidence, not customer validation, and no real user data is read or shown. Provenance: https://pairlet.org/assets/product/manifest.json

## Differentiation from first-party mobile options

- Anthropic offers Claude Code Remote Control. Its official guide, checked 2026-07-13, documents `/remote-control` and `claude remote-control`, Claude Code 2.1.51+, and Pro / Max / Team / Enterprise eligibility.
- OpenAI announced Codex in ChatGPT mobile on 2026-05-14. The announcement says iOS and Android, all ChatGPT plans including Free and Go, with files and credentials kept on the computer; consult OpenAI for current rollout details.
- Pairlet is the independent option for one client across **six** agent backends, MIT-licensed source, optional relay self-hosting, and no Pairlet account. It is not affiliated with or endorsed by Anthropic, OpenAI, Moonshot, DeepSeek or any other vendor.

## Technical facts

- **Languages / stack:** Kotlin Multiplatform; UI in Compose Multiplatform (Android, iOS, desktop); daemon and relay in Kotlin/JVM with Ktor; shared wire protocol via kotlinx.serialization.
- **License:** MIT.
- **Repository modules:** `:protocol` (shared wire protocol), `:daemon` (runs on the user's computer), `:relay` (cloud broker), `:mobile` (the Pairlet app).

## Links

- [Website](https://pairlet.org/)
- [Public capability contract — JSON](https://pairlet.org/public-capabilities.json)
- [Product media manifest — JSON](https://pairlet.org/assets/product/manifest.json)
- [Public smart support — no sign-in required](https://pairlet.org/support/)
- [User manual — English](https://pairlet.org/manual/en/)
- [用户手册 — 中文](https://pairlet.org/manual/zh/)
- [Manual AI index — structured JSON](https://pairlet.org/manual/ai-index.json)
- [Manual AI index — full text](https://pairlet.org/manual/llms-full.txt)
- [Schedule a prompt for later](https://pairlet.org/manual/en/schedule-a-prompt/)
- [Fix an offline computer](https://pairlet.org/manual/en/fix-offline-computer/)
- [中文首页](https://pairlet.org/zh/)
- [Full feature list](https://pairlet.org/features.html)
- [Claude Code mobile remote guide](https://pairlet.org/guides/claude-code-mobile-remote.html)
- [OpenAI Codex mobile remote guide](https://pairlet.org/guides/codex-mobile-remote.html)
- [Remote options comparison](https://pairlet.org/guides/compare-remote-options.html)
- [Security model and limitations](https://pairlet.org/guides/security.html)
- [Self-hosting architecture](https://pairlet.org/guides/self-hosting.html)
- [FAQ](https://pairlet.org/guides/faq.html)
- [GitHub repository](https://github.com/heypandax/cc-pocket)
- [README / user guide](https://github.com/heypandax/cc-pocket#readme)
- [Security model](https://github.com/heypandax/cc-pocket/blob/main/docs/SECURITY.md)
- [Privacy policy](https://pairlet.org/privacy.html)
- [Latest releases & downloads](https://github.com/heypandax/cc-pocket/releases/latest)
