@privateclaw/privateclaw-relay 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@
7
7
  <meta name="description" content="PrivateClaw gives you beautiful, private rooms for the people you trust around one shared OpenClaw." />
8
8
  <title>PrivateClaw</title>
9
9
  <link rel="icon" type="image/png" href="./assets/privateclaw_app_icon.png?v=20260314-2" />
10
- <link rel="stylesheet" href="./styles.css?v=20260316-3" />
10
+ <link rel="stylesheet" href="./styles.css?v=20260329-2" />
11
11
  </head>
12
12
  <body class="marketing-page">
13
13
  <div class="aurora aurora-a"></div>
@@ -29,15 +29,15 @@
29
29
 
30
30
  <nav class="topbar-actions">
31
31
  <a class="ghost-button icon-link" href="https://github.com/topcheer/PrivateClaw" target="_blank" rel="noreferrer">
32
- <img src="./assets/icon-github.svg?v=20260314-1" alt="" class="icon-link-image" />
32
+ <img src="./assets/icon-github.svg?v=20260329-1" alt="" class="icon-link-image" />
33
33
  <span class="sr-only" data-i18n="site.navGithub"></span>
34
34
  </a>
35
35
  <a class="ghost-button icon-link google-icon-link" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer">
36
- <img src="./assets/icon-google-group.svg?v=20260314-1" alt="" class="icon-link-image" />
36
+ <img src="./assets/icon-google-group.svg?v=20260329-1" alt="" class="icon-link-image" />
37
37
  <span class="sr-only" data-i18n="site.navBetaGroup"></span>
38
38
  </a>
39
39
  <a class="ghost-button icon-link" href="https://t.me/+W3RUKxEO9kIxMmZl" target="_blank" rel="noreferrer">
40
- <img src="./assets/icon-telegram.svg?v=20260314-1" alt="" class="icon-link-image" />
40
+ <img src="./assets/icon-telegram.svg?v=20260329-1" alt="" class="icon-link-image" />
41
41
  <span class="sr-only" data-i18n="site.navTelegramGroup"></span>
42
42
  </a>
43
43
  <label class="locale-picker" for="locale-select">
@@ -58,7 +58,12 @@
58
58
  <a id="web-entry" class="primary-button" href="./chat/">
59
59
  <span data-i18n="site.heroPrimaryCta"></span>
60
60
  </a>
61
- <a class="ghost-button" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer" data-i18n="site.heroSecondaryCta"></a>
61
+ <a class="ghost-button button-with-icon" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer">
62
+ <span class="button-icon-surface" aria-hidden="true">
63
+ <img src="./assets/icon-google-group.svg?v=20260329-1" alt="" class="button-icon-image" />
64
+ </span>
65
+ <span data-i18n="site.heroSecondaryCta"></span>
66
+ </a>
62
67
  </div>
63
68
 
64
69
  <div class="device-hint card-inline">
@@ -69,19 +74,25 @@
69
74
  <span class="coming-soon-badge" data-i18n="site.appComingSoon"></span>
70
75
  <div class="store-button-grid">
71
76
  <a
72
- class="store-button store-button-live"
73
- href="https://testflight.apple.com/join/XvgJ9c33"
77
+ class="store-button store-button-live store-button-rich"
78
+ href="https://apps.apple.com/us/app/yourclaw/id6760531637"
74
79
  target="_blank"
75
80
  rel="noreferrer"
76
81
  >
82
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
83
+ <img src="./assets/icon-app-store.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
84
+ </span>
77
85
  <span class="store-button-label" data-i18n="site.iosComingSoon"></span>
78
86
  </a>
79
87
  <a
80
- class="store-button store-button-live"
88
+ class="store-button store-button-live store-button-rich"
81
89
  href="https://play.google.com/store/apps/details?id=gg.ai.privateclaw"
82
90
  target="_blank"
83
91
  rel="noreferrer"
84
92
  >
93
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
94
+ <img src="./assets/icon-google-play.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
95
+ </span>
85
96
  <span class="store-button-label" data-i18n="site.androidComingSoon"></span>
86
97
  </a>
87
98
  </div>
@@ -126,6 +137,80 @@
126
137
  <div class="scenario-grid" id="scenario-grid"></div>
127
138
  </section>
128
139
 
140
+ <section class="section-block">
141
+ <div class="section-heading">
142
+ <span class="section-kicker" data-i18n="site.desktopDownloadsKicker"></span>
143
+ <h2 data-i18n="site.desktopDownloadsTitle"></h2>
144
+ <p data-i18n="site.desktopDownloadsBody"></p>
145
+ </div>
146
+ <div class="coming-soon-row">
147
+ <span class="coming-soon-badge badge-with-icon">
148
+ <span class="badge-icon-surface" aria-hidden="true">
149
+ <img src="./assets/icon-github.svg?v=20260329-1" alt="" class="badge-icon-image" />
150
+ </span>
151
+ <span data-i18n="site.desktopDownloadsBadge"></span>
152
+ </span>
153
+ <div class="store-button-grid">
154
+ <a
155
+ class="store-button store-button-live store-button-rich"
156
+ href="https://github.com/topcheer/PrivateClaw/releases/download/app-v0.1.14/PrivateClaw-v0.1.14-b70560865-windows-x64.zip"
157
+ target="_blank"
158
+ rel="noreferrer"
159
+ >
160
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
161
+ <img src="./assets/icon-windows.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
162
+ </span>
163
+ <span class="store-button-label" data-i18n="site.desktopDownloadWindowsX64"></span>
164
+ </a>
165
+ <a
166
+ class="store-button store-button-live store-button-rich"
167
+ href="https://github.com/topcheer/PrivateClaw/releases/download/app-v0.1.14/PrivateClaw-v0.1.14-b70560865-macos-arm64.dmg"
168
+ target="_blank"
169
+ rel="noreferrer"
170
+ >
171
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
172
+ <img src="./assets/icon-macos.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
173
+ </span>
174
+ <span class="store-button-label" data-i18n="site.desktopDownloadMacosArm64"></span>
175
+ </a>
176
+ <a
177
+ class="store-button store-button-live store-button-rich"
178
+ href="https://github.com/topcheer/PrivateClaw/releases/download/app-v0.1.14/PrivateClaw-v0.1.14-b70560865-macos-x64.dmg"
179
+ target="_blank"
180
+ rel="noreferrer"
181
+ >
182
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
183
+ <img src="./assets/icon-macos.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
184
+ </span>
185
+ <span class="store-button-label" data-i18n="site.desktopDownloadMacosX64"></span>
186
+ </a>
187
+ <a
188
+ class="store-button store-button-live store-button-rich"
189
+ href="https://github.com/topcheer/PrivateClaw/releases/download/app-v0.1.14/PrivateClaw-v0.1.14-b70560865-linux-x64.tar.gz"
190
+ target="_blank"
191
+ rel="noreferrer"
192
+ >
193
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
194
+ <img src="./assets/icon-linux.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
195
+ </span>
196
+ <span class="store-button-label" data-i18n="site.desktopDownloadLinuxX64"></span>
197
+ </a>
198
+ <a
199
+ class="store-button store-button-live store-button-rich"
200
+ href="https://github.com/topcheer/PrivateClaw/releases/download/app-v0.1.14/PrivateClaw-v0.1.14-b70560865-linux-arm64.tar.gz"
201
+ target="_blank"
202
+ rel="noreferrer"
203
+ >
204
+ <span class="button-icon-surface store-button-icon-surface" aria-hidden="true">
205
+ <img src="./assets/icon-linux.svg?v=20260329-1" alt="" class="button-icon-image store-button-icon-image" />
206
+ </span>
207
+ <span class="store-button-label" data-i18n="site.desktopDownloadLinuxArm64"></span>
208
+ </a>
209
+ </div>
210
+ </div>
211
+ <p class="community-footnote" data-i18n="site.desktopDownloadsNote"></p>
212
+ </section>
213
+
129
214
  <section class="section-block setup-section">
130
215
  <div class="section-heading">
131
216
  <span class="section-kicker" data-i18n="site.setupKicker"></span>
@@ -143,8 +228,18 @@
143
228
  <p data-i18n="site.betaBody"></p>
144
229
  </div>
145
230
  <div class="community-actions">
146
- <a class="primary-button" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer" data-i18n="site.betaPrimaryCta"></a>
147
- <a class="ghost-button" href="https://t.me/+W3RUKxEO9kIxMmZl" target="_blank" rel="noreferrer" data-i18n="site.betaTelegramCta"></a>
231
+ <a class="primary-button button-with-icon" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer">
232
+ <span class="button-icon-surface" aria-hidden="true">
233
+ <img src="./assets/icon-google-group.svg?v=20260329-1" alt="" class="button-icon-image" />
234
+ </span>
235
+ <span data-i18n="site.betaPrimaryCta"></span>
236
+ </a>
237
+ <a class="ghost-button button-with-icon" href="https://t.me/+W3RUKxEO9kIxMmZl" target="_blank" rel="noreferrer">
238
+ <span class="button-icon-surface" aria-hidden="true">
239
+ <img src="./assets/icon-telegram.svg?v=20260329-1" alt="" class="button-icon-image" />
240
+ </span>
241
+ <span data-i18n="site.betaTelegramCta"></span>
242
+ </a>
148
243
  <span class="community-footnote" data-i18n="site.betaFootnote"></span>
149
244
  </div>
150
245
  </div>
@@ -169,6 +264,6 @@
169
264
  </footer>
170
265
  </div>
171
266
 
172
- <script type="module" src="./scripts/site.js?v=20260316-3"></script>
267
+ <script type="module" src="./scripts/site.js?v=20260328-2"></script>
173
268
  </body>
174
269
  </html>
@@ -7,7 +7,7 @@
7
7
  <meta name="description" content="PrivateClaw privacy policy." />
8
8
  <title>PrivateClaw Privacy</title>
9
9
  <link rel="icon" type="image/png" href="../assets/privateclaw_app_icon.png?v=20260314-2" />
10
- <link rel="stylesheet" href="../styles.css?v=20260316-3" />
10
+ <link rel="stylesheet" href="../styles.css?v=20260329-2" />
11
11
  </head>
12
12
  <body class="marketing-page policy-page" data-policy-page="privacy">
13
13
  <div class="aurora aurora-a"></div>
@@ -29,15 +29,15 @@
29
29
 
30
30
  <nav class="topbar-actions">
31
31
  <a class="ghost-button icon-link" href="https://github.com/topcheer/PrivateClaw" target="_blank" rel="noreferrer">
32
- <img src="../assets/icon-github.svg?v=20260314-1" alt="" class="icon-link-image" />
32
+ <img src="../assets/icon-github.svg?v=20260329-1" alt="" class="icon-link-image" />
33
33
  <span class="sr-only" data-i18n="site.navGithub"></span>
34
34
  </a>
35
35
  <a class="ghost-button icon-link google-icon-link" href="https://groups.google.com/g/gg-studio-ai-products" target="_blank" rel="noreferrer">
36
- <img src="../assets/icon-google-group.svg?v=20260314-1" alt="" class="icon-link-image" />
36
+ <img src="../assets/icon-google-group.svg?v=20260329-1" alt="" class="icon-link-image" />
37
37
  <span class="sr-only" data-i18n="site.navBetaGroup"></span>
38
38
  </a>
39
39
  <a class="ghost-button icon-link" href="https://t.me/+W3RUKxEO9kIxMmZl" target="_blank" rel="noreferrer">
40
- <img src="../assets/icon-telegram.svg?v=20260314-1" alt="" class="icon-link-image" />
40
+ <img src="../assets/icon-telegram.svg?v=20260329-1" alt="" class="icon-link-image" />
41
41
  <span class="sr-only" data-i18n="site.navTelegramGroup"></span>
42
42
  </a>
43
43
  <label class="locale-picker" for="locale-select">
@@ -78,6 +78,6 @@
78
78
  </footer>
79
79
  </div>
80
80
 
81
- <script type="module" src="../scripts/policy.js?v=20260316-3"></script>
81
+ <script type="module" src="../scripts/policy.js?v=20260325-1"></script>
82
82
  </body>
83
83
  </html>
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, onLocaleChange, t } from "./i18n.js?v=20260318-1";
1
+ import { applyTranslations, bindLocaleSelect, onLocaleChange, t } from "./i18n.js?v=20260325-1";
2
2
  import {
3
3
  createIdentity,
4
4
  decodeBase64,
@@ -9,20 +9,20 @@ const BUNDLES = {
9
9
  brandTagline: "Private rooms for your OpenClaw",
10
10
  languageLabel: "Language",
11
11
  navGithub: "GitHub",
12
- navBetaGroup: "Beta Google Group",
12
+ navBetaGroup: "Android test group",
13
13
  navTelegramGroup: "Telegram group chat",
14
14
  heroBadge: "Private • Encrypted • Invite-only",
15
15
  heroTitle: "Bring your people into one private OpenClaw room.",
16
16
  heroBody:
17
17
  "PrivateClaw turns one shared OpenClaw into a beautiful private room for the people you actually trust. Scan once, join instantly, and let the relay carry ciphertext only.",
18
18
  heroPrimaryCta: "Open web chat",
19
- heroSecondaryCta: "Join the beta group",
19
+ heroSecondaryCta: "Join Android testing",
20
20
  heroDesktopHint:
21
21
  "Web chat works on desktop and phone. On desktop, pasting an invite or selecting a saved QR image is usually the fastest way in.",
22
22
  heroMobileHint:
23
23
  "Web chat works here too, so you can open the PrivateClaw room right away from this phone.",
24
- appComingSoon: "iOS public beta + Android closed alpha",
25
- iosComingSoon: "Join iOS public beta",
24
+ appComingSoon: "iPhone App Store + Android closed alpha",
25
+ iosComingSoon: "Download on the App Store",
26
26
  androidComingSoon: "Join Android closed alpha",
27
27
  androidBetaNote:
28
28
  "Android closed alpha is delivered through Google Play. Join the Google Group first or Play will say the test is unavailable.",
@@ -108,57 +108,71 @@ const BUNDLES = {
108
108
  body: "Spin up an invite-only room when you need a focused conversation without dragging people into another public chat silo.",
109
109
  },
110
110
  ],
111
- setupKicker: "Quick setup",
112
- setupTitle: "Get the provider ready in five short steps.",
111
+ desktopDownloadsKicker: "Desktop downloads",
112
+ desktopDownloadsTitle: "Download the desktop builds from GitHub for now.",
113
+ desktopDownloadsBody:
114
+ "Until the desktop store listings are ready, the current Windows, macOS, and Linux builds are published here as direct GitHub release assets.",
115
+ desktopDownloadsBadge: "GitHub desktop downloads",
116
+ desktopDownloadWindowsX64: "Windows ZIP",
117
+ desktopDownloadMacosArm64: "macOS Apple Silicon DMG",
118
+ desktopDownloadMacosX64: "macOS Intel DMG",
119
+ desktopDownloadLinuxX64: "Linux x64 tar.gz",
120
+ desktopDownloadLinuxArm64: "Linux ARM64 tar.gz",
121
+ desktopDownloadsNote:
122
+ "These links point to the latest published GitHub desktop release assets. We can switch the site over to native store links later.",
123
+ setupKicker: "Simple install",
124
+ setupTitle: "Start with one command. Keep the manual path as backup.",
113
125
  setupBody:
114
- "If you already run OpenClaw, PrivateClaw is mostly a quick plugin setup. The public relay is already preconfigured, so the relay override is only needed for your own deployment.",
126
+ "On a fresh machine, the recommended path is the one-command npx wizard. It installs or updates the provider, enables it, restarts the gateway if needed, and starts pairing for you. The longer OpenClaw plugin flow is still here as a backup when you want full control or your own relay from the start.",
115
127
  setupSteps: [
116
128
  {
117
- step: "Step 1",
118
- title: "Install the provider",
119
- body: "Add the official PrivateClaw plugin from npm.",
120
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
129
+ step: "Recommended",
130
+ title: "Run the one-command setup wizard",
131
+ body: "Use this first on a fresh machine. The wizard handles install or update, enables the plugin, confirms the command is ready, and walks you straight into pairing.",
132
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
133
+ note: "The wizard will ask whether you want a single chat or group chat, then let you choose a session duration from 30 minutes to permanent. Because it comes from npm directly, it is also the fastest way to pick up a newer npm patch before ClawHub does.",
134
+ featured: true,
135
+ variant: "recommended",
121
136
  },
122
137
  {
123
- step: "Step 2",
124
- title: "Enable it",
125
- body: "Turn the plugin on in your OpenClaw install.",
126
- commands: ["openclaw plugins enable privateclaw"],
127
- },
128
- {
129
- step: "Step 3",
130
- title: "Optional: use your own relay",
131
- body: "Skip this if you are happy with the default public relay at https://relay.privateclaw.us.",
138
+ step: "Backup",
139
+ title: "Manually install the plugin if you prefer",
140
+ body: "Choose this path only when you want to manage OpenClaw yourself or point at your own relay before pairing. Keep `--dangerously-force-unsafe-install` on every manual install path. If you already have a local package directory, prefer installing that directory directly because OpenClaw 2026.3.31 can drop the unsafe-install override on archive installs.",
132
141
  commands: [
142
+ "openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest",
143
+ "openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider",
144
+ "openclaw plugins enable privateclaw",
133
145
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
134
146
  ],
147
+ note: "Skip the relay command if you are happy with the default public relay at https://relay.privateclaw.us. If you intentionally install from ClawHub, also keep the flag: `openclaw plugins install --dangerously-force-unsafe-install clawhub:@privateclaw/privateclaw@latest`.",
148
+ variant: "fallback",
135
149
  },
136
150
  {
137
- step: "Step 4",
138
- title: "Restart the gateway",
139
- body: "Restart the running openclaw start process or whichever service hosts your gateway so the new plugin and config are reloaded.",
140
- },
141
- {
142
- step: "Step 5",
143
- title: "Generate a QR invite",
144
- body: "In any OpenClaw chat channel, create a room invite and let people scan it into PrivateClaw.",
145
- commands: ["/privateclaw", "/privateclaw group"],
146
- note: "Use `/privateclaw group` when you want multiple people sharing the same room.",
151
+ step: "Backup",
152
+ title: "Then restart and pair locally or from chat",
153
+ body: "If you used the manual path, restart the OpenClaw gateway, then either run the local pairing command or create a room invite from an existing OpenClaw chat channel.",
154
+ commands: [
155
+ "openclaw privateclaw pair --open",
156
+ "/privateclaw",
157
+ "/privateclaw group",
158
+ ],
159
+ note: "Use `openclaw privateclaw pair --group --open` or `/privateclaw group` when you want multiple people sharing the same room.",
160
+ variant: "fallback",
147
161
  },
148
162
  ],
149
- betaKicker: "Early access",
150
- betaTitle: "Join the PrivateClaw beta circle.",
163
+ betaKicker: "Mobile apps",
164
+ betaTitle: "Get YourClaw on iPhone. Join Android testing.",
151
165
  betaBody:
152
- "iOS public beta is live on TestFlight, and Android closed alpha is live on Google Play. Join the Google Group first so Google Play will admit you to the Android test.",
153
- betaPrimaryCta: "Join the Google Group",
166
+ "YourClaw is now live on the App Store for iPhone, and Android closed alpha is live on Google Play. Join the Google Group first so Google Play will admit you to the Android test.",
167
+ betaPrimaryCta: "Join Android test group",
154
168
  betaTelegramCta: "Join the Telegram chat",
155
169
  betaFootnote:
156
- "Android closed alpha requires Google Group membership first. iOS public beta is open through TestFlight, and Telegram stays open for the early community.",
170
+ "Android closed alpha still requires Google Group membership first. iPhone users can now download YourClaw on the App Store, and Telegram stays open for the early community.",
157
171
  footerLine: "Private rooms, shared OpenClaw, and a calmer way to chat.",
158
172
  footerDisclaimer: "PrivateClaw is independent and not affiliated with OpenClaw.",
159
173
  footerPrivacy: "Privacy",
160
174
  footerTerms: "Terms",
161
- footerSupport: "Beta updates live in the Google Group.",
175
+ footerSupport: "Android testing updates live in the Google Group.",
162
176
  footerCopyright: "Copyright GG AI Studio 2026.",
163
177
  },
164
178
  chat: {
@@ -295,18 +309,18 @@ const BUNDLES = {
295
309
  brandTagline: "给 OpenClaw 的私密聊天室",
296
310
  languageLabel: "语言",
297
311
  navGithub: "GitHub",
298
- navBetaGroup: "Google 内测群组",
312
+ navBetaGroup: "Android 内测群组",
299
313
  navTelegramGroup: "Telegram 群聊",
300
314
  heroBadge: "私密 • 加密 • 邀请制",
301
315
  heroTitle: "把你信任的人带进同一个私密 OpenClaw 房间。",
302
316
  heroBody:
303
317
  "PrivateClaw 把一套共享的 OpenClaw 变成只属于你们的小房间。扫一次码就能进入,中继只负责转发密文,不读取聊天内容。",
304
318
  heroPrimaryCta: "打开网页聊天",
305
- heroSecondaryCta: "加入内测群组",
319
+ heroSecondaryCta: "加入 Android 内测",
306
320
  heroDesktopHint: "网页聊天支持桌面和手机访问。在桌面端,直接粘贴邀请或选择一张二维码截图通常是最快的进入方式。",
307
321
  heroMobileHint: "网页聊天在手机上也完全可用,你现在就可以直接打开 PrivateClaw 房间。",
308
- appComingSoon: "iOS 公开测试 + Android 封闭 alpha",
309
- iosComingSoon: "加入 iOS 公开测试",
322
+ appComingSoon: "iPhone App Store + Android 封闭 alpha",
323
+ iosComingSoon: "前往 App Store 下载",
310
324
  androidComingSoon: "加入 Android 封闭 alpha",
311
325
  androidBetaNote:
312
326
  "Android 封闭 alpha 通过 Google Play 分发。请先加入 Google 群组,否则 Google Play 会提示你暂时无法参与测试。",
@@ -391,57 +405,71 @@ const BUNDLES = {
391
405
  body: "当你需要一个短期、专注、非公开的讨论空间时,随时开一个邀请制房间。",
392
406
  },
393
407
  ],
394
- setupKicker: "快速配置",
395
- setupTitle: "五个步骤,把 Provider 准备好。",
408
+ desktopDownloadsKicker: "桌面下载",
409
+ desktopDownloadsTitle: "桌面版本现在先从 GitHub 直接下载。",
410
+ desktopDownloadsBody:
411
+ "在桌面应用商店版本就绪之前,当前 Windows、macOS 和 Linux 构建会先以 GitHub release 资产的形式直接发布在这里。",
412
+ desktopDownloadsBadge: "GitHub 桌面下载",
413
+ desktopDownloadWindowsX64: "Windows ZIP",
414
+ desktopDownloadMacosArm64: "macOS Apple Silicon DMG",
415
+ desktopDownloadMacosX64: "macOS Intel DMG",
416
+ desktopDownloadLinuxX64: "Linux x64 tar.gz",
417
+ desktopDownloadLinuxArm64: "Linux ARM64 tar.gz",
418
+ desktopDownloadsNote:
419
+ "这些链接当前都直接指向最新一次公开的 GitHub 桌面 release 资产。后面如果上了桌面应用商店,再把这里切过去。",
420
+ setupKicker: "简单安装",
421
+ setupTitle: "先用一条命令跑起来,复杂安装留作备用。",
396
422
  setupBody:
397
- "如果你已经在使用 OpenClaw,PrivateClaw 基本就是一次轻量插件配置。默认公共 relay 已经预设好,只有在你想切到自己的部署时,才需要额外写 relay 地址。",
423
+ "在新机器上,推荐直接使用一条 `npx` 命令启动向导。它会自动安装或更新 Provider、启用插件、在需要时重启网关,然后直接开始配对。只有当你想自己管理 OpenClaw 插件流程,或一开始就切到自己的 relay 时,再走手动模式。",
398
424
  setupSteps: [
399
425
  {
400
- step: "步骤 1",
401
- title: "安装 Provider",
402
- body: "通过 npm 安装官方 PrivateClaw 插件。",
403
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
404
- },
405
- {
406
- step: "步骤 2",
407
- title: "启用插件",
408
- body: "在你的 OpenClaw 安装里把它打开。",
409
- commands: ["openclaw plugins enable privateclaw"],
426
+ step: "推荐",
427
+ title: "先运行这一条命令",
428
+ body: "这是新机器上最快的方式。向导会处理安装或更新、启用插件、确认命令已经就绪,并马上进入配对流程。",
429
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
430
+ note: "向导会询问你要单聊还是群聊,并让你选择会话时长:30 分钟、2/4/8/24 小时、1 周、1 个月、1 年或永久。由于它直接使用 npm 包本身,所以如果 npm 上已经有比 ClawHub 更新的 patch,它也是最快拿到最新 patch 的方式。",
431
+ featured: true,
432
+ variant: "recommended",
410
433
  },
411
434
  {
412
- step: "步骤 3",
413
- title: "可选:切到自己的 relay",
414
- body: "如果你直接使用默认公共 relay `https://relay.privateclaw.us`,这一步可以跳过。",
435
+ step: "备用",
436
+ title: "如果你想自己掌控,就手动安装",
437
+ body: "只有在你想手工管理插件,或想一开始就指向自己的 relay 时,才使用这条路径。所有手工安装路径都请保留 `--dangerously-force-unsafe-install`。如果你手边已经有本地 package 目录,优先直接安装这个目录,因为 OpenClaw 2026.3.31 的 archive 安装分支会把 unsafe-install override 丢掉。",
415
438
  commands: [
439
+ "openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest",
440
+ "openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider",
441
+ "openclaw plugins enable privateclaw",
416
442
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
417
443
  ],
444
+ note: "如果你直接使用默认公共 relay `https://relay.privateclaw.us`,第四条可以跳过。如果你明确要走 ClawHub,也同样带上这个 flag:`openclaw plugins install --dangerously-force-unsafe-install clawhub:@privateclaw/privateclaw@latest`。",
445
+ variant: "fallback",
418
446
  },
419
447
  {
420
- step: "步骤 4",
421
- title: "重启网关",
422
- body: "重启正在运行的 `openclaw start` 进程,或者你用来托管 gateway 的服务,让插件和配置重新加载。",
423
- },
424
- {
425
- step: "步骤 5",
426
- title: "生成二维码邀请",
427
- body: "在任意 OpenClaw 聊天渠道里生成房间邀请,然后让大家扫码进入 PrivateClaw。",
428
- commands: ["/privateclaw", "/privateclaw group"],
429
- note: "如果你想让多人共享同一个房间,就使用 `/privateclaw group`。",
448
+ step: "备用",
449
+ title: "然后重启,并从本地或聊天渠道发起配对",
450
+ body: "如果你走的是手动路径,先重启 OpenClaw gateway,然后要么直接运行本地配对命令,要么在任意现有 OpenClaw 聊天渠道里生成二维码邀请。",
451
+ commands: [
452
+ "openclaw privateclaw pair --open",
453
+ "/privateclaw",
454
+ "/privateclaw group",
455
+ ],
456
+ note: "如果你想让多人共享同一个房间,可以使用 `openclaw privateclaw pair --group --open` 或 `/privateclaw group`。",
457
+ variant: "fallback",
430
458
  },
431
459
  ],
432
- betaKicker: "抢先体验",
433
- betaTitle: "加入 PrivateClaw 内测圈。",
460
+ betaKicker: "移动应用",
461
+ betaTitle: "下载 iPhone 版 YourClaw,加入 Android 内测。",
434
462
  betaBody:
435
- "iOS 公开测试已经在 TestFlight 开放,Android 封闭 alpha 也已经在 Google Play 上线。想参与 Android 测试的话,请先加入 Google 群组。",
436
- betaPrimaryCta: "加入 Google 群组",
463
+ "YourClaw iPhone 版已经在 App Store 正式上线,Android 封闭 alpha 也已经在 Google Play 上线。想参与 Android 测试的话,请先加入 Google 群组。",
464
+ betaPrimaryCta: "加入 Android 内测群组",
437
465
  betaTelegramCta: "加入 Telegram 群聊",
438
466
  betaFootnote:
439
- "Android 封闭 alpha 需要先加入 Google Group;iOS 公开测试可以直接通过 TestFlight 参与,Telegram 交流群也持续开放。",
467
+ "Android 封闭 alpha 仍然需要先加入 Google Group;iPhone 用户现在可以直接在 App Store 下载 YourClaw,Telegram 交流群也持续开放。",
440
468
  footerLine: "私密房间、共享 OpenClaw、更安静的聊天方式。",
441
469
  footerDisclaimer: "PrivateClaw 与 OpenClaw 没有附属关系。",
442
470
  footerPrivacy: "隐私",
443
471
  footerTerms: "条款",
444
- footerSupport: "最新内测动态会发布在 Google 群组。",
472
+ footerSupport: "Android 内测动态会发布在 Google 群组。",
445
473
  footerCopyright: "Copyright GG AI Studio 2026.",
446
474
  },
447
475
  chat: {
@@ -566,18 +594,18 @@ const BUNDLES = {
566
594
  brandTagline: "給 OpenClaw 的私密聊天室",
567
595
  languageLabel: "語言",
568
596
  navGithub: "GitHub",
569
- navBetaGroup: "Google 內測群組",
597
+ navBetaGroup: "Android 內測群組",
570
598
  navTelegramGroup: "Telegram 群聊",
571
599
  heroBadge: "私密 • 加密 • 邀請制",
572
600
  heroTitle: "把你信任的人帶進同一個私密 OpenClaw 房間。",
573
601
  heroBody:
574
602
  "PrivateClaw 把一套共享的 OpenClaw 變成只屬於你們的小房間。掃一次碼就能進入,中繼只負責轉送密文,不讀取聊天內容。",
575
603
  heroPrimaryCta: "開啟網頁聊天",
576
- heroSecondaryCta: "加入內測群組",
604
+ heroSecondaryCta: "加入 Android 內測",
577
605
  heroDesktopHint: "網頁聊天支援桌面與手機。在桌面端,直接貼上邀請,或選擇一張已儲存的 QR 圖片,通常是最快的進入方式。",
578
606
  heroMobileHint: "網頁聊天在手機上也完全可用,你現在就可以直接開啟 PrivateClaw 房間。",
579
- appComingSoon: "iOS 公開測試 + Android 封閉 alpha",
580
- iosComingSoon: "加入 iOS 公開測試",
607
+ appComingSoon: "iPhone App Store + Android 封閉 alpha",
608
+ iosComingSoon: "前往 App Store 下載",
581
609
  androidComingSoon: "加入 Android 封閉 alpha",
582
610
  androidBetaNote:
583
611
  "Android 封閉 alpha 透過 Google Play 發放。請先加入 Google 群組,否則 Google Play 會顯示你目前無法參與測試。",
@@ -662,57 +690,71 @@ const BUNDLES = {
662
690
  body: "當你需要一個短期、專注、非公開的討論空間時,隨時開一個邀請制房間。",
663
691
  },
664
692
  ],
665
- setupKicker: "快速設定",
666
- setupTitle: "五個步驟,把 Provider 準備好。",
693
+ desktopDownloadsKicker: "桌面下載",
694
+ desktopDownloadsTitle: "桌面版本現在先從 GitHub 直接下載。",
695
+ desktopDownloadsBody:
696
+ "在桌面應用商店版本就緒之前,當前 Windows、macOS 和 Linux 構建會先以 GitHub release 資產的形式直接發布在這裡。",
697
+ desktopDownloadsBadge: "GitHub 桌面下載",
698
+ desktopDownloadWindowsX64: "Windows ZIP",
699
+ desktopDownloadMacosArm64: "macOS Apple Silicon DMG",
700
+ desktopDownloadMacosX64: "macOS Intel DMG",
701
+ desktopDownloadLinuxX64: "Linux x64 tar.gz",
702
+ desktopDownloadLinuxArm64: "Linux ARM64 tar.gz",
703
+ desktopDownloadsNote:
704
+ "這些連結目前都直接指向最新一次公開的 GitHub 桌面 release 資產。後面如果上了桌面應用商店,再把這裡切過去。",
705
+ setupKicker: "簡單安裝",
706
+ setupTitle: "先用一條命令跑起來,複雜安裝留作備用。",
667
707
  setupBody:
668
- "如果你已經在使用 OpenClaw,PrivateClaw 基本上只需要一次輕量的外掛設定。預設公共 relay 已經內建,只有當你想切到自己的部署時,才需要額外設定 relay 位址。",
708
+ "在新機器上,建議直接使用一條 `npx` 指令啟動精靈。它會自動安裝或更新 Provider、啟用外掛、在需要時重新啟動 gateway,然後直接開始配對。只有當你想自己管理 OpenClaw 外掛流程,或一開始就切到自己的 relay 時,再走手動模式。",
669
709
  setupSteps: [
670
710
  {
671
- step: "步驟 1",
672
- title: "安裝 Provider",
673
- body: "透過 npm 安裝官方 PrivateClaw 外掛。",
674
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
675
- },
676
- {
677
- step: "步驟 2",
678
- title: "啟用外掛",
679
- body: "在你的 OpenClaw 安裝裡把它打開。",
680
- commands: ["openclaw plugins enable privateclaw"],
711
+ step: "建議",
712
+ title: "先執行這一條指令",
713
+ body: "這是新機器上最快的方式。精靈會處理安裝或更新、啟用外掛、確認指令已經就緒,並立刻進入配對流程。",
714
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
715
+ note: "精靈會詢問你要單聊還是群聊,並讓你選擇會話時長:30 分鐘、2/4/8/24 小時、1 週、1 個月、1 年或永久。由於它直接使用 npm 套件本身,所以如果 npm 上已經有比 ClawHub 更新的 patch,它也是最快拿到最新 patch 的方式。",
716
+ featured: true,
717
+ variant: "recommended",
681
718
  },
682
719
  {
683
- step: "步驟 3",
684
- title: "可選:切到自己的 relay",
685
- body: "如果你直接使用預設公共 relay `https://relay.privateclaw.us`,這一步可以略過。",
720
+ step: "備用",
721
+ title: "如果你想自己掌控,就手動安裝",
722
+ body: "只有在你想手動管理外掛,或想一開始就指向自己的 relay 時,才使用這條路徑。所有手動安裝路徑都請保留 `--dangerously-force-unsafe-install`。如果你手邊已經有本地 package 目錄,優先直接安裝這個目錄,因為 OpenClaw 2026.3.31 的 archive 安裝分支會把 unsafe-install override 丟掉。",
686
723
  commands: [
724
+ "openclaw plugins install --dangerously-force-unsafe-install @privateclaw/privateclaw@latest",
725
+ "openclaw plugins install --dangerously-force-unsafe-install ./packages/privateclaw-provider",
726
+ "openclaw plugins enable privateclaw",
687
727
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
688
728
  ],
729
+ note: "如果你直接使用預設公共 relay `https://relay.privateclaw.us`,第四條可以略過。如果你明確要走 ClawHub,也同樣帶上這個 flag:`openclaw plugins install --dangerously-force-unsafe-install clawhub:@privateclaw/privateclaw@latest`。",
730
+ variant: "fallback",
689
731
  },
690
732
  {
691
- step: "步驟 4",
692
- title: "重新啟動 gateway",
693
- body: "重新啟動正在執行的 `openclaw start` 行程,或你用來託管 gateway 的服務,讓外掛與設定重新載入。",
694
- },
695
- {
696
- step: "步驟 5",
697
- title: "產生 QR 邀請",
698
- body: "在任意 OpenClaw 聊天渠道裡建立房間邀請,然後讓大家掃碼加入 PrivateClaw。",
699
- commands: ["/privateclaw", "/privateclaw group"],
700
- note: "如果你想讓多人共享同一個房間,就使用 `/privateclaw group`。",
733
+ step: "備用",
734
+ title: "然後重新啟動,並從本地或聊天渠道開始配對",
735
+ body: "如果你走的是手動路徑,先重新啟動 OpenClaw gateway,然後可以直接執行本地配對指令,或在任意既有的 OpenClaw 聊天渠道裡產生 QR 邀請。",
736
+ commands: [
737
+ "openclaw privateclaw pair --open",
738
+ "/privateclaw",
739
+ "/privateclaw group",
740
+ ],
741
+ note: "如果你想讓多人共享同一個房間,可以使用 `openclaw privateclaw pair --group --open` 或 `/privateclaw group`。",
742
+ variant: "fallback",
701
743
  },
702
744
  ],
703
- betaKicker: "搶先體驗",
704
- betaTitle: "加入 PrivateClaw 內測圈。",
745
+ betaKicker: "行動應用",
746
+ betaTitle: "下載 iPhone 版 YourClaw,加入 Android 內測。",
705
747
  betaBody:
706
- "iOS 公開測試已經在 TestFlight 開放,Android 封閉 alpha 也已經在 Google Play 上線。想參與 Android 測試的話,請先加入 Google 群組。",
707
- betaPrimaryCta: "加入 Google 群組",
748
+ "YourClaw iPhone 版已經在 App Store 正式上線,Android 封閉 alpha 也已經在 Google Play 上線。想參與 Android 測試的話,請先加入 Google 群組。",
749
+ betaPrimaryCta: "加入 Android 內測群組",
708
750
  betaTelegramCta: "加入 Telegram 群聊",
709
751
  betaFootnote:
710
- "Android 封閉 alpha 需要先加入 Google Group;iOS 公開測試可以直接透過 TestFlight 參與,Telegram 群聊也持續開放。",
752
+ "Android 封閉 alpha 仍然需要先加入 Google Group;iPhone 使用者現在可以直接在 App Store 下載 YourClaw,Telegram 群聊也持續開放。",
711
753
  footerLine: "私密房間、共享 OpenClaw、更安靜的聊天方式。",
712
754
  footerDisclaimer: "PrivateClaw 與 OpenClaw 沒有附屬關係。",
713
755
  footerPrivacy: "隱私",
714
756
  footerTerms: "條款",
715
- footerSupport: "最新內測動態會發佈在 Google 群組。",
757
+ footerSupport: "Android 內測動態會發佈在 Google 群組。",
716
758
  footerCopyright: "Copyright GG AI Studio 2026.",
717
759
  },
718
760
  chat: {