@optima-chat/browser-cli 0.5.2 → 0.5.4

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.
@@ -29,12 +29,53 @@ owner_repo: Optima-Chat/optima-browser-use
29
29
 
30
30
  脚本执行零 token 消耗,比手动操作快 10 倍以上。
31
31
 
32
+ ## 浏览器模式
33
+
34
+ 系统支持三种浏览器模式,自动选择最优方案:
35
+
36
+ | 模式 | 触发条件 | 说明 |
37
+ |------|----------|------|
38
+ | **Desktop + 紫鸟** | 用户安装了 Desktop app 且配置了紫鸟 | 通过紫鸟反指纹浏览器操作,保留多店铺登录态 |
39
+ | **Desktop + Chrome** | 用户安装了 Desktop app | 通过用户本地 Chrome 操作 |
40
+ | **Cloud** | 无 Desktop app | 后端 headless Chromium,无登录态 |
41
+
42
+ **自动路由**:默认 `browser-cli launch` 会自动选择。如果用户安装了 Optima Browser Operator 桌面应用并在线,自动走 Desktop 模式。
43
+
44
+ ### 紫鸟浏览器(跨境电商多店铺管理)
45
+
46
+ 当用户提到紫鸟、多店铺、反指纹浏览器、TikTok Shop 店铺、或需要操作特定店铺时,按以下步骤操作:
47
+
48
+ ```bash
49
+ # 1. 检查紫鸟凭证是否已配置
50
+ browser-cli ziniao show
51
+
52
+ # 2. 如果未配置,设置凭证(需要用户提供)
53
+ browser-cli ziniao set --company "公司名" --username "用户名" --password "密码"
54
+
55
+ # 3. 查看可用的紫鸟店铺列表(需要 Desktop app 在线)
56
+ browser-cli ziniao profiles
57
+ # 输出示例:
58
+ # 27774259938707 迪士尼授权林总店铺
59
+ # 27772540507986 Gigilli-US
60
+ # 27732948017158 马来本土店3SAVEZO
61
+
62
+ # 4. 用店铺 profile 启动浏览器(根据用户描述匹配店铺名)
63
+ browser-cli launch --connector ziniao --ziniao-profile 27774259938707 --url https://seller.tiktokshopglobalselling.com/homepage --force
64
+ ```
65
+
66
+ **重要**:
67
+ - 用户说"迪士尼店铺"、"林总店铺"等 → 先 `ziniao profiles` 查列表,按名称模糊匹配找到 profile_id
68
+ - 用户说"打开紫鸟"但没指定店铺 → 先列出 profiles 让用户选
69
+ - 紫鸟需要 Desktop app 在线 + 紫鸟 WebDriver 模式已启动
70
+
32
71
  ## 命令
33
72
 
34
73
  ### 会话管理
35
74
 
36
75
  ```bash
37
- browser-cli launch [--url <url>] [--force] # 启动浏览器(--force 先关闭已有会话)
76
+ browser-cli launch [--url <url>] [--force] # 启动浏览器(自动选择模式)
77
+ browser-cli launch --connector ziniao --ziniao-profile <id> [--url <url>] # 指定紫鸟店铺
78
+ browser-cli launch --connector chrome [--url <url>] # 指定 Chrome
38
79
  browser-cli close # 关闭浏览器并释放资源
39
80
  browser-cli status # 查看当前会话状态
40
81
  ```
@@ -185,11 +226,19 @@ browser-cli close
185
226
 
186
227
  ## 需要用户登录态的任务
187
228
 
188
- 当用户要求操作需要登录的平台(小红书、Instagram、微博、淘宝等社交/电商平台),在开始执行前先引导用户安装扩展:
229
+ 当用户要求操作需要登录的平台(TikTok Shop、小红书、Instagram 等),需要用户的真实浏览器(有登录态)。
230
+
231
+ **推荐方案:Optima Browser Operator 桌面应用**
232
+
233
+ 1. 用户下载安装桌面应用(Mac .dmg / Windows .exe):https://github.com/Optima-Chat/optima-browser-use/releases
234
+ 2. 首次启动自动打开浏览器登录授权
235
+ 3. 授权后自动连接,后续 `browser-cli launch` 自动走 Desktop 模式
236
+
237
+ **跨境电商用户(多店铺)**:推荐安装紫鸟浏览器 + Desktop app,可以按店铺 profile 分别操作,每个店铺独立登录态。
189
238
 
190
- "这个任务需要用到你在 [平台名] 的登录态。请安装 Optima Browser Operator Chrome 扩展,这样我可以直接用你已登录的浏览器来操作,不需要你提供密码。"
239
+ **备选方案:Chrome 扩展**
191
240
 
192
- 安装后用户回到聊天页面,扩展自动连接,直接执行任务。如果用户在该平台未登录,提示用户先在自己的 Chrome 里登录。
241
+ 安装 Optima Browser Operator Chrome 扩展,直接用 Chrome 已登录的账号操作。
193
242
 
194
243
  ## 注意事项
195
244
 
package/dist/index.js CHANGED
@@ -187,6 +187,9 @@ var BrowserAPI = class {
187
187
  async deleteZiNiaoConfig() {
188
188
  return request("/api/user/ziniao-config", { method: "DELETE" });
189
189
  }
190
+ async getZiNiaoProfiles() {
191
+ return request("/api/user/ziniao-profiles");
192
+ }
190
193
  async closeSession(sessionId) {
191
194
  await request(`/api/sessions/${sessionId}`, { method: "DELETE" });
192
195
  }
@@ -849,6 +852,32 @@ function registerZiNiaoCommands(program2) {
849
852
  process.exit(1);
850
853
  }
851
854
  });
855
+ ziniao.command("profiles").description("List ZiNiao browser profiles (requires Desktop app online)").action(async () => {
856
+ try {
857
+ const result = await api.getZiNiaoProfiles();
858
+ if (!result.connected) {
859
+ console.log("Desktop app not connected. Start Optima Browser Operator first.");
860
+ process.exit(1);
861
+ }
862
+ if (!result.ziniao_available) {
863
+ console.log("ZiNiao not available on Desktop app. Start ZiNiao WebDriver mode first.");
864
+ process.exit(1);
865
+ }
866
+ if (result.profiles.length === 0) {
867
+ console.log("No ZiNiao profiles found.");
868
+ return;
869
+ }
870
+ console.log(`ZiNiao profiles (${result.profiles.length}):
871
+ `);
872
+ for (const p of result.profiles) {
873
+ console.log(` ${p.id} ${p.name}`);
874
+ }
875
+ console.log("\nUse: browser-cli launch --connector ziniao --ziniao-profile <id> --url <url>");
876
+ } catch (err) {
877
+ console.error(formatError(err));
878
+ process.exit(1);
879
+ }
880
+ });
852
881
  ziniao.command("clear").description("Remove ZiNiao credentials").action(async () => {
853
882
  try {
854
883
  await api.deleteZiNiaoConfig();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/browser-cli",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "bin": {