@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.
- package/.claude/skills/browser/SKILL.md +53 -4
- package/dist/index.js +29 -0
- package/package.json +1 -1
|
@@ -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] #
|
|
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
|
-
|
|
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
|
-
|
|
239
|
+
**备选方案:Chrome 扩展**
|
|
191
240
|
|
|
192
|
-
|
|
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();
|