PairOnce

io.github.paironce由 GitHub 帳號 paironce 發布v0.11.2更新於 Nov 6, 2026

Send files and text between an AI agent and your own paired devices, end-to-end encrypted.

發布方自己的服務:ONCE

概覽

AI 產生的概覽

PairOnce 把 AI 代理與你自己的手機或電腦配對,讓它能傳送檔案和文字、請求照片、掃描檔或檔案,並查看相機或螢幕的靜態畫面。

可以做什麼
  • 配對與裝置管理:用六位數代碼和安全碼核對把手機或電腦配對,並列出已配對裝置
  • 傳送檔案與訊息:把本機檔案或文字、連結以端對端加密方式傳到已配對裝置
  • 接收檔案:等待使用者從已配對裝置傳來檔案,並存到本機資料夾
  • 請求內容:說明理由後請使用者拍攝照片、掃描紙本頁面產生 PDF,或挑選某個檔案
  • 觀看相機或螢幕:請求取得使用者所見畫面的靜態圖片,並可隨時停止分享
適用情境
適合代理在電腦上工作時需要使用者手機或其他裝置上的東西:標籤或錯誤畫面的照片、紙本頁面的掃描檔、只存在那台裝置上的檔案,或查看使用者螢幕以便一步步指引。也適合把建置紀錄、連結或文件推到手機。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 22 或更新版本(Windows、macOS 或 Linux)。另一台裝置只需用瀏覽器開啟 PairOnce 網站,不需要帳號。需要能連線 paironce.com;直連受阻時走 443 埠的加密中繼或通道,在限制網域的沙箱中須放行該網域。可選環境變數 PAIRONCE_NAME 與 PAIRONCE_HOME。
安裝前請注意
代理可以請求觀看使用者的相機或螢幕並取得靜態圖片;每次請求都會顯示理由,使用者可拒絕,任一方都能停止分享。檔案和訊息會從本機傳到使用者裝置,接收的檔案寫入伺服器工作目錄(預設 inbox)。傳送時會排除 .env、.ssh 等隱藏檔案與資料夾,但其他敏感檔案不受限制。裝置金鑰與已配對裝置清單保存在只有本人可讀的本機目錄。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PairOnce,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

paironce

Send files and text from a terminal to your own phone or computer with PairOnce. Pair once with a six-digit code; after that, npx paironce send report.pdf puts the file on your phone. End-to-end encrypted, direct between the devices whenever the network allows, and through an encrypted relay when it does not. No account.

sh
npx paironce pair                 # shows a code: type it at paironce.com on your phonenpx paironce send build.zip       # sends to the paired devicenpx paironce text "https://example.com/some/long/link"npx paironce receive --to ./inbox # receives files sent from the phone

The other device is any browser with https://paironce.com open: iPhone, Android, Windows, Mac or Linux. Nothing to install there.

Commands

CommandWhat it does
paironce pairShows a six-digit code. On the other device, open paironce.com, choose Enter a code and type it. Both screens show the same safety code; approve the device in the terminal.
paironce pair 123456Joins with the code the other device shows, for a person at this terminal.
paironce send <file>...Sends files to the paired device. With several paired devices, add --to "<name>". The other device accepts each file before it arrives.
paironce text "<message>"Sends a message or a link.
paironce receiveReceives files into the current folder (--to <folder>). Asks before each file; --yes accepts every file during this run. Large files are written straight to disk, so they can be as large as the sender may send, and one cut off continues when it is sent again.
paironce devicesLists paired devices.
paironce forget <name>Forgets a paired device.
paironce mcpRuns as an MCP server for AI agents.

--name "<name>" (or the PAIRONCE_NAME variable) sets what the other device shows for this one, for example --name "Build server". The key stays the same, so paired devices still know it. --agent marks this device as an AI agent on the other device (the MCP server always does). The MCP server stays connected for 30 minutes after its last tool call, so the next task needs no tap on your device; you see it as connected and can end it there. The MCP tools save inside the folder the server runs in (inbox by default). --ephemeral uses a throwaway identity in a temporary folder, which the other device forgets after a day without a connection: right for a sandbox that is thrown away.

When a paired device is not connected, the command asks it to connect: PairOnce on that device shows "Windows · Terminal wants to reconnect" with a Connect button.

Use it from an AI agent (MCP)

paironce mcp gives an agent ten tools:

ToolWhat it does
pair_devicePairs one of your devices. The agent gives you a six-digit code; you open paironce.com on that device, choose Enter a code and type it. The agent then tells you a safety code, and goes on only after you say your device shows the same. Once per device.
send_file, send_textSends to a paired device; you accept every file there.
receive_filesWaits while you send files from your device (a photo of a whiteboard, a scan, a document) and saves them into ./inbox.
request_photo, request_scan, request_fileAsks for something specific, with the reason. Your device shows the request; you take the photo, scan the pages or choose the file there, or decline. Saved into ./inbox.
watch_frames, watch_stopAsks to see your camera or screen, with the reason. You share it on your device, or decline; the agent then gets a still picture each time it asks (at most two a second) and can guide you step by step. Your device shows the share and a stop button; it ends when either side stops it.
list_devicesLists the paired devices.

The agent reaches only devices you paired and approved, and nothing arrives anywhere unasked. Your device marks it Agent when it asks to be approved and in your saved devices. Design and plans: Agent as a Device.

send_file does not send hidden files and folders (such as .env or .ssh), Windows's AppData, a Mac's Library or this device's own PairOnce files; you can still send those yourself with paironce send. A file that arrives after receive_files or a request stopped waiting is saved in the folder it was accepted for, and the next receive_files reports it. Changes in each version are in the releases.

Claude Code:

sh
claude mcp add paironce -e PAIRONCE_NAME="Claude Code · Agent" -- npx -y paironce mcp# in a throwaway sandbox: ... -- npx -y paironce mcp --ephemeral# on Windows, through cmd: claude mcp add paironce -- cmd /c npx -y paironce mcp

Other clients (Cursor, Claude Desktop and others), in their MCP configuration:

json
{ "mcpServers": { "paironce": { "command": "npx", "args": ["-y", "paironce", "mcp"], "env": { "PAIRONCE_NAME": "Cursor · Agent" } } } }

Then ask: "pair with my phone", "send the build log to my phone", or let the agent ask you: "I need a photo of the label on the back of the router".

How it works

The CLI runs the same connection code as paironce.com: the PairOnce protocol and @paironce/core for pairing and encryption, with WebRTC from node-datachannel for direct connections and @roamhq/wrtc (libwebrtc) for the relay. Files and messages are encrypted on this computer and decrypted on the other device; the PairOnce service only introduces the two devices and, when needed, relays encrypted bytes it cannot read.

This computer's device key and the list of paired devices are kept in ~/.paironce (or $PAIRONCE_HOME), readable only by you. The private key never leaves this computer.

It connects directly whenever the networks allow it, otherwise through the encrypted relay over UDP, TCP or TLS on port 443, and where even that is blocked, through the PairOnce tunnel: the same encrypted data over a secure WebSocket to paironce.com. So it works on servers, in containers that block UDP, and behind a web proxy (HTTPS_PROXY is used automatically). In a cloud sandbox with an allow-list, such as Claude Code on the web, add paironce.com to the allowed domains. PAIRONCE_DEBUG=1 shows each step of connecting.

Requires Node.js 22 or later on Windows, macOS (x64 and arm64) or Linux (x64 and arm64).

License

Apache-2.0. PairOnce is a trademark of its owner; see https://paironce.com.

來源:README.md,提交 3fc987e

工具

10

pair_device

Pair one of the user's devices (phone or computer) with this agent through PairOnce; needed once per device. Three calls. First call: returns a six-digit code; tell the user to open https://paironce.com on that device, choose "Enter a code" and type it. Second call: waits until they did and returns a safety code; ask the user whether their device shows the same one. Third call: confirm true if they said yes, false if not. Never confirm without asking the user.

輸入參數confirmwait_seconds

list_devices

List the devices this agent is paired with through PairOnce.

無需輸入參數。

send_file

Send files from this computer to one of the user's paired devices through PairOnce, end-to-end encrypted. The user accepts each file on that device, and PairOnce must be open there. Hidden files and folders (such as .env or .ssh) are not sent.

輸入參數paths必填device

send_text

Send a message or a link to one of the user's paired devices through PairOnce, end-to-end encrypted. PairOnce must be open there.

輸入參數text必填device

receive_files

Wait for the user to send files (photos, scans, documents) from one of their paired devices, and save them into a folder here. Tell the user to open https://paironce.com on that device, tap Connect, then choose the files. Returns the saved paths and any messages the user sent.

輸入參數devicefolderwait_seconds

request_photo

Ask the user for a photo from one of their paired devices (usually their phone), for example of a label, a screen, an error message or a document. Their device shows your request with your reason; they take the photo there and it is saved here (default ./inbox). They may decline.

輸入參數devicefolderpurpose必填wait_seconds

request_scan

Ask the user to scan paper pages with one of their paired devices (usually their phone): it makes a PDF there with straightened pages, which is saved here (default ./inbox). Their device shows your request with your reason. They may decline.

輸入參數devicefolderpurpose必填wait_seconds

request_file

Ask the user for a file from one of their paired devices: their device shows your request with your reason, they choose the file there, and it is saved here (default ./inbox). They may decline.

輸入參數devicefolderpurpose必填wait_seconds

watch_frames

See what the user sees: ask to watch their camera or screen on one of their paired devices, then get still pictures of it, returned as images you can look at (and saved, default ./inbox/watch). The first call asks; their device shows your reason and they share the camera or the screen there, or decline. Later calls return new stills from the same share, so you can guide them step by step ("now turn the switch on the left"). It ends when they stop, when you call watch_stop, or after 5 minutes without a call; their device ends it after 15 minutes.

輸入參數countdevicefolderpurposewait_secondsinterval_seconds

watch_stop

Stop watching the user's camera or screen (see watch_frames). Their device stops sharing.

無需輸入參數。

版本歷史

4
  1. v0.11.2最新Nov 6, 2026
  2. v0.11.1Nov 5, 2026
  3. v0.11.0Nov 5, 2026
  4. v0.10.0Nov 5, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Once 整合