pairlet
Pairlet (formerly CC Pocket / cc-pocket) — Continue your local AI coding tasks from phone, tablet, or desktop.
Install / Use
npx skills add heypandax/pairletInstalls into whichever agent you are using.
Other
Other agent config
Quality Score
Category
AI & Machine LearningSupported Platforms
Our assessment of pairlet
pairlet scores 86/100 on our quality scale, 526th of 937 AI & Machine Learning skills we index.
Its Other is 17 KB long, well organised into 13 sections with 8 code examples: a thorough specification that gives an agent plenty to work with.
It has 150 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 7 days ago, so pairlet is actively maintained.
- Our last check on 2026-10-21 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (3 minor notes below). An AI review of the same text found nothing harmful.
- noteInstalls by piping a downloaded script into a shellline 30
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash # macOS · Linux - noteInstalls by piping a downloaded script into a shellline 31
irm https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.ps1 | iex # Windows - noteInstalls by piping a downloaded script into a shellline 101
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
pairlet compared with similar skills
All 4 of these similar skills score higher than pairlet; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| pairlet (this skill)by heypandax | 86 | 150 | 7d ago | Other |
| claude-memby thedotmack | 100 | 103.0k | today | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 88.2k | 2d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 77.8k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.6k | today | CLAUDE.md |
Frequently asked questions
- How do I install pairlet?
- Run
npx skills add heypandax/pairlet. The install tabs above show the steps for each supported agent. - Which AI agents does pairlet work with?
- It is written for Claude Code and OpenAI Codex, as a Other file. Other agents that read the same format can often use it too.
- Is pairlet safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands (3 minor notes below). An AI review of the same text found nothing harmful. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is pairlet still maintained?
- The repository was last updated 7 days ago, so pairlet is actively maintained.
Skill content
View source on GitHubPairlet
Pairlet was formerly called CC Pocket (cc-pocket). This is the same project, with its history and existing download links preserved.
English | 简体中文
Your coding agents stay on your computer. You stay in control from anywhere.
Pairlet is an open-source, local-first control plane for command-line coding agents. The agent keeps running on your own machine, against your own checkout; from a phone, a tablet or another computer you watch it work, answer the permission prompts that block it, continue the same session, and read what it changed. Traffic is end-to-end encrypted and passes through a zero-knowledge relay that only ever forwards ciphertext — no Pairlet account, no content logging. Clean-room Kotlin, MIT.
v1.9.4 drives six agent backends — Claude Code, OpenAI Codex, OpenCode, Kimi Code (Preview), ZCode and DeepSeek. They are not equivalent: see the capability matrix before you pick one.
🌐 Website · 🛠️ Engineering Wiki · 📖 User manual · 💬 Support, no sign-in · 📦 Latest release
<p align="center"><a href="https://pairlet.org/"><img src="site/assets/product/overview.png" alt="Pairlet: the desktop console showing paired machines and a live session, beside the phone app showing a session list and an approval decision." width="900"></a></p><sub>Real product UI with scripted demo data — regenerate with bash marketing/site/generate-assets.sh. Provenance: site/assets/product/manifest.json.</sub>
Development builds now include Firebase/GA4 product outcomes and Sentry diagnostics, with controls for sharing usage and diagnostic data. See the observability guide for configuration, privacy boundaries, verified results and remaining release requirements.
Quick start
1 · Get the app — App Store (iPhone · iPad) · TestFlight beta · Android APK. Prefer a computer? See the Desktop app.
2 · Install the daemon on the machine that runs your agent CLI — any supported one, not Claude specifically:
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash # macOS · Linux
irm https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.ps1 | iex # Windows
3 · Pair — run pairlet pair, then scan the QR it prints (or type the 6-digit code) in the app. You are connected end-to-end.
pairlet is the short command; cc-pocket-daemon still supports the same subcommands. If an older installation has no pairlet command yet, keep using cc-pocket-daemon until you update through its original installer or package manager.
Package managers, mirrors, updates and per-platform notes: Install details.
The four jobs
| | Job | What you get | |---|---|---| | 01 | Watch | Streaming output, tool events with timing, sub-agent cards and background-task state, across devices. Filter projects, sessions and usage by agent. | | 02 | Approve | A permission request reaches your phone the moment the agent raises one. Allow or deny in seconds; no answer times out to a safe deny. | | 03 | Continue | Take a running session over in place instead of forking it, start a new task straight from the phone or the desktop app, and get missed output backfilled after a reconnect. | | 04 | Inspect | Changed files with line-level diffs, file preview, context and usage. Images in your own prompts stay visible in replay. |
Capability differs by backend — the matrix below is the source of truth.
Agent support
Public capability claims for v1.9.4, audited against commit e9ee816f on main. Machine-readable copy: site/public-capabilities.json.
| 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, and live streaming. Every backend does all of it.
- OpenCode has no enforceable interactive approval.
opencode runhas no approval protocol, so those sessions run at Full access and the app says so up front instead of offering modes it cannot enforce. - Kimi Code is Preview. DeepSeek is supported, but narrow: approvals and multiple-choice questions are bridged to the app, but the sandbox mode is fixed at launch (changing it relaunches the session), and there is no Changed-files/diff view, no usage accounting and no model switching.
- DeepSeek Harness has no timeout of its own. Left alone, an unanswered approval or question blocks its turn indefinitely — it does not deny. Pairlet puts the request on the daemon's normal approval window instead: an approval that expires is answered reject, and a question that expires is answered skipped, so an unanswered request ends the wait rather than hanging it. DeepSeek also has no "always allow" — every request is a one-off decision.
- Boundaries follow the release. Full detail: Features and the User manual.
Architecture & trust boundary
flowchart LR
app["📱🖥️ Pairlet app<br/>(phone · tablet · desktop)"] -- "wss · ciphertext" --> relay["relay<br/>(zero-knowledge broker)"]
relay -- "wss · ciphertext" --> daemon["local daemon<br/>(your computer)"]
daemon -- "stdio" --> agent["agent CLI<br/>(claude · codex · opencode · kimi · zcode · DeepSeek)"]
The daemon runs on your computer, drives the agent CLI as a subprocess and dials out to the relay — no inbound ports to open. The relay pairs your devices and routes opaque encrypted frames; it holds no message content and no private keys. The app and the daemon run an end-to-end session (P-256 ECDH + HKDF + AES-256-GCM, an X3DH/Noise-style handshake), so plaintext never leaves the two trusted endpoints. On the same network the app connects to the daemon directly for lower latency; the relay stays as the from-anywhere fallback. Pairings expire and can be revoked.
Honest limits: the agent still executes with your own operating-system permissions — end-to-end 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. Threat model: docs/SECURITY.md. Report vulnerabilities privately via GitHub security advisories.
Platforms & distribution
| Surface | Official packages |
|---|---|
| Phone / tablet app | iOS · iPadOS (App Store, TestFlight) · Android APK |
| Desktop app | macOS Apple Silicon · Intel (signed .dmg) · Windows x86_64 .msi. Linux x86_64 .deb · .rpm · arm64 .deb · .rpm (unsigned; an .AppImage is attached to the release when it builds). |
| Local daemon | macOS Apple Silicon · macOS Intel · Linux x86_64 · Linux arm64 · Windows x86_64 |
| HarmonyOS | Signed HAP, Preview — limited capability |
| Relay | Hosted zero-knowledge relay by default; self-hosting supported |
The desktop app and the local daemon are different packages: the app is a client, the daemon is what actually runs the agent.
Install details
<details> <summary><b>macOS</b> — signed & notarized</summary>curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash
pairlet pair
Verifies the download against the release's SHA256SUMS, installs under ~/.local (one directory per version), and registers the launchd service so it runs on login and reconnects itself. Homebrew: brew install --cask heypandax/tap/cc-pocket (use the full name; an unrelated cask is also called cc-pocket).
curl -fsSL https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.sh | bash
pairlet pair
Pulls a self-contained tarball (bundled JRE, no system Java), installs under ~/.local and registers a systemd --user service. Voice transcription uses ffmpeg instead of macOS's afconvert. There is no official Linux desktop app package — build it from source.
irm https://raw.githubusercontent.com/heypandax/pairlet/main/scripts/install.ps1 | iex
One command: installs, registers a logon Scheduled Task, and drops straight into pairing. Scoop: scoop bucket add heypandax https://github.com/heypandax/scoop-bucket then scoop install cc-pocket-daemon.
GitHub downloads crawl there, so the installer and release artifacts are mirrored on the relay: curl -fsSL https://pocket.ark-nexus.cc/dl/install.sh | bash (Windows: irm https://pocket.ark-nexus.cc/dl/install.ps1 | iex). Same script, checksum-verified, with automatic fallback to GitHub. The daemon's self-update uses the mirror too.
pairlet version reports what is running, how it was installed, and the single command that updates this install — offline, and whether or not the daemon is up. The app shows the same under Settings ▸ Versions.
A daemon installed by the one-liner keeps itself current: it checks daily and applies the update in the background. Turn that off with pairlet config --auto-update off and you get a phone notification instead. Homebrew, Scoop and Windows installs never self-apply — update them through their own package manager (brew upgrade --cask heypandax/tap/cc-pocket, scoop update cc-pocket-daemon). The desktop app states it plainly when
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
103.0kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Understand-Anything
88.2kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
77.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.6kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
