PrivateClaw plugin setup
Use this skill when the user wants to install, enable, verify, configure, or pair the PrivateClaw OpenClaw plugin.
This skill is especially relevant for requests like:
- - install PrivateClaw
- enable the PrivateClaw plugin
- set up private encrypted chat for OpenClaw
- start QR pairing
- return the pairing QR to the current Telegram, Discord, or QQ chat
- configure a custom PrivateClaw relay
- use
/privateclaw, /privateclaw group, /session-qr, or INLINECODE3 - inspect active local sessions with INLINECODE4
- remove one participant with INLINECODE5
- use the standalone
privateclaw-provider CLI instead of the OpenClaw alias - pause or resume group-bot replies with
/mute-bot or INLINECODE8 - renew or re-share an existing PrivateClaw session
- 安装 PrivateClaw 插件
- 启用 PrivateClaw
- 配置 PrivateClaw relay
- 启动二维码配对
- 把配对二维码发回当前 Telegram / Discord / QQ 对话
- 查看当前本地会话或踢出群组成员
Core facts
- - The production plugin package is
@privateclaw/privateclaw. - Keep
--dangerously-force-unsafe-install on every manual install path. openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest is the default published install, and if the user already has a local package directory, prefer openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider over archive installs. - The plugin id is
privateclaw. - The standalone npm binary is
privateclaw-provider. - The default public relay is
https://relay.privateclaw.us. - The iOS App Store release (YourClaw) is available at
https://apps.apple.com/us/app/yourclaw/id6760531637. - The Android closed alpha lives at
https://play.google.com/store/apps/details?id=gg.ai.privateclaw, but Google Play only grants access after the tester joins https://groups.google.com/g/gg-studio-ai-products. - Desktop app releases live at
https://github.com/topcheer/PrivateClaw/releases; tell users to choose the app-v* GitHub Releases when they need Windows / macOS / Linux builds. - If the user is happy with the default public relay, do not set
relayBaseUrl. - PrivateClaw is an OpenClaw plugin, not an OpenClaw channel. Do not run
openclaw channels add privateclaw. - The public local CLI surface is
pair, sessions, and kick, available as either openclaw privateclaw <subcommand> or privateclaw-provider <subcommand>. - INLINECODE28 now defaults to returning after printing the QR while the session stays alive in a background daemon until expiry.
- INLINECODE29 keeps the session in the current terminal; on supported runtimes,
Ctrl+D hands the live session off to the detached background daemon without invalidating the QR. - INLINECODE31 prints the invite and QR, then immediately closes the session instead of keeping it alive.
- Active sessions expose
/session-qr and /renew-session; active group sessions also expose /mute-bot and /unmute-bot. - After
openclaw plugins install, openclaw plugins enable, or any openclaw config set plugins.entries.privateclaw.config... change, the running OpenClaw gateway or service must be restarted before testing.
Preferred behavior
Default to the production npm install path unless the user explicitly asks for:
- - a local checkout / linked development install
- a custom relay
- a pinned package version
If the user wants the pairing QR or invite to be sent back to the current existing OpenClaw chat conversation, prefer the registered plugin command flow:
- -
/privateclaw for a normal one-to-one encrypted session - INLINECODE40 for a multi-participant encrypted room
That flow is preferred because the plugin command returns the invite URI and QR image back to the original Telegram, Discord, or QQ conversation through OpenClaw's normal reply payload path.
If the current environment can directly invoke the registered privateclaw plugin command in the active conversation, prefer that over local CLI pairing.
If there is no suitable active OpenClaw chat channel available, fall back to the local CLI pairing flow:
- - INLINECODE42
- INLINECODE43
- INLINECODE44
- INLINECODE45
- INLINECODE46
If the user does not have the OpenClaw alias available but does have the standalone npm binary installed, use the equivalent privateclaw-provider ... commands.
Client app access
When a user asks where to get the PrivateClaw client builds, point them at:
- - iOS App Store (YourClaw): INLINECODE48
- Android closed alpha tester group: INLINECODE49
- Android closed alpha (Google Play): INLINECODE50
- Desktop GitHub Releases (Windows / macOS / Linux, choose the
app-v* releases): INLINECODE52
Be explicit that Android testers must join the Google Group before Google Play will admit them to the closed alpha, and that desktop users should download from the app-v* GitHub Releases rather than the provider / relay v* releases.
Recommended execution flow
1. Preflight
First confirm that the openclaw CLI is available:
CODEBLOCK0
If openclaw is missing, stop and tell the user that OpenClaw itself must be installed first.
2. Install and enable the plugin
Use the published npm package by default, and keep --dangerously-force-unsafe-install on every manual install path:
CODEBLOCK1
If the user already has a local package directory, prefer installing that directory instead of an archive because OpenClaw 2026.3.31 can drop the unsafe-install override on archive installs:
CODEBLOCK2
3. Optional relay override
Only do this when the user explicitly wants to point PrivateClaw at a self-hosted or custom relay:
CODEBLOCK3
If the user is using the default public relay at https://relay.privateclaw.us, skip this step.
4. Restart the running OpenClaw gateway or service
Do not claim setup is complete until the running OpenClaw process has reloaded the plugin and config.
That usually means restarting the active openclaw start process or whichever service unit hosts the gateway.
5. Verify command registration
Check that the privateclaw command is now registered:
CODEBLOCK4
Confirm that privateclaw appears in the command list before moving on.
Pairing flows
Flow A: return the QR to the current Telegram / Discord / QQ conversation
Use this flow when:
- - the user is already using an OpenClaw-backed channel conversation
- the user wants the pairing QR returned to that same chat
Preferred next step:
- - have the user send
/privateclaw in that same conversation - use
/privateclaw group when the user wants a shared encrypted room for multiple app participants
Expected result:
- - OpenClaw replies in the original channel conversation
- the reply contains the invite URI and QR image
- the user scans that QR with the PrivateClaw mobile app
If the runtime can execute the registered plugin command directly for the current channel conversation, do that instead of asking the user to repeat the command manually.
Flow B: local CLI fallback
Use this flow when there is no active OpenClaw chat channel available, or when the user explicitly wants local terminal pairing:
CODEBLOCK5
Useful variants:
CODEBLOCK6
INLINECODE65 creates a multi-participant room.
INLINECODE66 opens a local browser preview page for the QR, which is useful when terminal rendering alone is inconvenient.
By default, pair prints the invite and then returns while a background daemon keeps the session alive until expiry.
Use --foreground when the user explicitly wants to keep the session attached to the current terminal. On supported runtimes, Ctrl+D hands that live foreground session off to the background daemon without replacing the QR.
Do not recommend --print-only unless the user only wants a one-shot QR printout, because that mode closes the session immediately after printing.
The same public subcommands also exist on the standalone npm binary:
CODEBLOCK7
Flow C: active-session commands inside PrivateClaw
Once a PrivateClaw session is already active, the participant can request the current pairing QR again from inside that encrypted session:
CODEBLOCK8
Use this when the user wants to re-share the existing active session instead of creating a new one.
If the user needs to extend the session lifetime without replacing the whole setup, use:
CODEBLOCK9
In active group sessions, participants can also pause or resume assistant replies without interrupting participant-to-participant chat:
CODEBLOCK10
Use those only for group sessions where the user specifically wants the chat room to stay open while temporarily muting or restoring bot replies.
Local checkout / development flow
Only use this when the user explicitly wants to install from a local repository checkout instead of npm:
CODEBLOCK11
Then restart the running OpenClaw gateway or service before testing.
Guardrails
- - Do not use
openclaw channels add privateclaw; PrivateClaw is not a channel transport. - Do not set
relayBaseUrl unless the user asks for a custom relay. - Do not default to the
--link development install unless the user is working from a local checkout. - Do not say setup succeeded until the gateway or service has been restarted and
openclaw commands list shows privateclaw. - If the user's goal is to receive the QR in the current Telegram, Discord, or QQ conversation, prefer
/privateclaw over openclaw privateclaw pair. - Do not recommend
--print-only when the user expects the QR to remain usable after the command exits. - If the OpenClaw alias is unavailable but the standalone binary exists, use
privateclaw-provider ... rather than inventing a different command surface. - After a successful pairing flow, remind the user to scan the returned QR with the PrivateClaw app.
Troubleshooting
privateclaw does not appear in openclaw commands list
Likely causes:
- - the plugin was installed but not enabled
- the gateway or service was not restarted after install or config change
- the user is looking at an older OpenClaw instance than the one they just modified
The user wants /privateclaw in Telegram, Discord, or QQ but nothing happens there
PrivateClaw is only the plugin that creates the QR invite. The surrounding channel transport still has to exist separately in OpenClaw. If the user wants /privateclaw inside Telegram, Discord, or QQ, those channels must already be set up in OpenClaw.
The user wants to use their own relay
Set:
CODEBLOCK12
Then restart the running OpenClaw gateway or service before testing again.
openclaw privateclaw pair returns immediately and the user thinks the session stopped
That is expected with the current default behavior. Local pairing now returns after printing while a background daemon keeps the session alive.
If the user wants the session to stay attached to the current shell, use:
CODEBLOCK13
If the user already started a foreground session and wants to hand it off without stopping it, Ctrl+D is the preferred path on supported runtimes.
The user printed a QR but nobody can join anymore
Check whether they used --print-only. That mode prints the invite and QR, then immediately closes the session.
If they need a live reusable session, have them use normal pair, pair --group, or pair --foreground instead.
The user needs to inspect or moderate a locally managed group session
Use:
CODEBLOCK14
Use the standalone privateclaw-provider sessions / privateclaw-provider kick ... forms when the user is working outside the OpenClaw alias. If they need to clear all background daemon sessions at once, use openclaw privateclaw sessions killall or privateclaw-provider killall.
Completion checklist
The setup should usually end with all of the following being true:
- - the plugin is installed
- the plugin is enabled
- the running OpenClaw gateway or service has been restarted
- INLINECODE94 shows INLINECODE95
- the user has either:
- received a
/privateclaw QR reply in the original channel conversation, or
- received a local
openclaw privateclaw pair or
privateclaw-provider pair QR and invite URI
- - if the user expects a local CLI session to stay alive after the command returns,
sessions shows the active session instead of the session having been created with INLINECODE100
PrivateClaw 插件设置
当用户想要安装、启用、验证、配置或配对 PrivateClaw OpenClaw 插件时,使用此技能。
此技能特别适用于以下请求:
- - 安装 PrivateClaw
- 启用 PrivateClaw 插件
- 为 OpenClaw 设置私有加密聊天
- 启动二维码配对
- 将配对二维码返回到当前的 Telegram、Discord 或 QQ 聊天
- 配置自定义 PrivateClaw 中继
- 使用 /privateclaw、/privateclaw group、/session-qr 或 openclaw privateclaw pair
- 使用 openclaw privateclaw sessions 检查活动的本地会话
- 使用 openclaw privateclaw kick 移除一个参与者
- 使用独立的 privateclaw-provider CLI 而不是 OpenClaw 别名
- 使用 /mute-bot 或 /unmute-bot 暂停或恢复群机器人回复
- 续订或重新共享现有的 PrivateClaw 会话
- 安装 PrivateClaw 插件
- 启用 PrivateClaw
- 配置 PrivateClaw 中继
- 启动二维码配对
- 把配对二维码发回当前 Telegram / Discord / QQ 对话
- 查看当前本地会话或踢出群组成员
核心事实
- - 生产插件包是 @privateclaw/privateclaw。
- 在每个手动安装路径上保留 --dangerously-force-unsafe-install。openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest 是默认的发布安装方式,如果用户已有本地包目录,优先使用 openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider 而不是归档安装。
- 插件 ID 是 privateclaw。
- 独立的 npm 二进制文件是 privateclaw-provider。
- 默认公共中继是 https://relay.privateclaw.us。
- iOS App Store 版本 (YourClaw) 可在 https://apps.apple.com/us/app/yourclaw/id6760531637 获取。
- Android 封闭测试版位于 https://play.google.com/store/apps/details?id=gg.ai.privateclaw,但测试者需先加入 https://groups.google.com/g/gg-studio-ai-products 后 Google Play 才会授予访问权限。
- 桌面应用版本位于 https://github.com/topcheer/PrivateClaw/releases;当用户需要 Windows / macOS / Linux 构建版本时,告知他们选择 app-v* 的 GitHub Releases。
- 如果用户对默认公共中继满意,不要设置 relayBaseUrl。
- PrivateClaw 是一个 OpenClaw 插件,不是 OpenClaw 通道。不要运行 openclaw channels add privateclaw。
- 公共本地 CLI 接口包括 pair、sessions 和 kick,可通过 openclaw privateclaw 或 privateclaw-provider 使用。
- pair 现在默认在打印二维码后返回,同时会话在后台守护进程中保持活动直到过期。
- pair --foreground 将会话保留在当前终端;在支持的运行时中,Ctrl+D 将活动会话移交给分离的后台守护进程,而不会使二维码失效。
- pair --print-only 打印邀请和二维码,然后立即关闭会话而不是保持其活动。
- 活动会话暴露 /session-qr 和 /renew-session;活动群组会话还暴露 /mute-bot 和 /unmute-bot。
- 在 openclaw plugins install、openclaw plugins enable 或任何 openclaw config set plugins.entries.privateclaw.config... 更改后,必须重启正在运行的 OpenClaw 网关或服务才能进行测试。
首选行为
默认使用生产 npm 安装路径,除非用户明确要求:
- - 本地检出 / 链接的开发安装
- 自定义中继
- 固定包版本
如果用户希望将配对二维码或邀请发送回当前现有的 OpenClaw 聊天对话,优先使用注册的插件命令流程:
- - /privateclaw 用于普通的一对一加密会话
- /privateclaw group 用于多参与者加密房间
该流程是首选,因为插件命令通过 OpenClaw 的正常回复负载路径将邀请 URI 和二维码图像返回到原始的 Telegram、Discord 或 QQ 对话。
如果当前环境可以直接在活动对话中调用已注册的 privateclaw 插件命令,优先于本地 CLI 配对。
如果没有合适的活动 OpenClaw 聊天通道可用,则回退到本地 CLI 配对流程:
- - openclaw privateclaw pair
- openclaw privateclaw pair --group
- openclaw privateclaw pair --open
- openclaw privateclaw sessions
- openclaw privateclaw kick
如果用户没有可用的 OpenClaw 别名但已安装独立的 npm 二进制文件,则使用等效的 privateclaw-provider ... 命令。
客户端应用访问
当用户询问在哪里获取 PrivateClaw 客户端构建版本时,引导他们前往:
- - iOS App Store (YourClaw):https://apps.apple.com/us/app/yourclaw/id6760531637
- Android 封闭测试版测试者群组:https://groups.google.com/g/gg-studio-ai-products
- Android 封闭测试版 (Google Play):https://play.google.com/store/apps/details?id=gg.ai.privateclaw
- 桌面 GitHub Releases (Windows / macOS / Linux,选择 app-v* 版本):https://github.com/topcheer/PrivateClaw/releases
明确说明 Android 测试者必须先加入 Google Group,Google Play 才会允许他们进入封闭测试版,桌面用户应从 app-v 的 GitHub Releases 下载,而不是 provider / relay 的 v 版本。
推荐执行流程
1. 前置检查
首先确认 openclaw CLI 可用:
bash
openclaw --version
如果 openclaw 缺失,停止并告知用户必须先安装 OpenClaw 本身。
2. 安装并启用插件
默认使用发布的 npm 包,并在每个手动安装路径上保留 --dangerously-force-unsafe-install:
bash
openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest
openclaw plugins enable privateclaw
如果用户已有本地包目录,优先安装该目录而不是归档,因为 OpenClaw 2026.3.31 可以在归档安装时移除 unsafe-install 覆盖:
bash
openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider
openclaw plugins enable privateclaw
3. 可选的中继覆盖
仅在用户明确想要将 PrivateClaw 指向自托管或自定义中继时执行此操作:
bash
openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com
如果用户使用位于 https://relay.privateclaw.us 的默认公共中继,跳过此步骤。
4. 重启正在运行的 OpenClaw 网关或服务
在正在运行的 OpenClaw 进程重新加载插件和配置之前,不要声称设置完成。
这通常意味着重启活动的 openclaw start 进程或任何托管网关的服务单元。
5. 验证命令注册
检查 privateclaw 命令现在是否已注册:
bash
openclaw commands list
在继续之前确认 privateclaw 出现在命令列表中。
配对流程
流程 A:将二维码返回到当前的 Telegram / Discord / QQ 对话
在以下情况下使用此流程:
- - 用户已经在使用基于 OpenClaw 的通道对话
- 用户希望将配对二维码返回到同一个聊天
首选下一步:
- - 让用户在同一对话中发送 /privateclaw
- 当用户想要为多个应用参与者创建共享加密房间时,使用 /privateclaw group
预期结果:
- - OpenClaw 在原始通道对话中回复
- 回复包含邀请 URI 和二维码图像
- 用户使用 PrivateClaw 移动应用扫描该二维码
如果运行时可以直接为当前通道对话执行已注册的插件命令,则执行此操作,而不是要求用户手动重复命令。
流程 B:本地 CLI 回退
在以下情况下使用此流程:没有可用的活动 OpenClaw 聊天通道,或者用户明确想要本地终端配对:
bash
openclaw privateclaw pair
有用的变体:
bash
openclaw privateclaw pair --group
openclaw privateclaw pair --open