Skip to content

Commit 8544827

Browse files
committed
Merge origin/main into fix/chatwise-electron-composer
2 parents cb05e57 + 8469c89 commit 8544827

84 files changed

Lines changed: 4459 additions & 713 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# Changelog
22

3+
## [1.4.1](https://github.com/jackwener/opencli/compare/v1.4.0...v1.4.1) (2026-03-25)
4+
5+
6+
### Features
7+
8+
* **douyin:** add Douyin creator center adapter — 14 commands, 8-phase publish pipeline ([#416](https://github.com/jackwener/opencli/issues/416))
9+
* **weibo,youtube:** add Weibo commands and YouTube channel/comments ([#418](https://github.com/jackwener/opencli/issues/418))
10+
* **twitter:** add filter option for search ([#410](https://github.com/jackwener/opencli/issues/410))
11+
* **extension:** add popup UI, privacy policy, and CSP for Chrome Web Store ([#415](https://github.com/jackwener/opencli/issues/415))
12+
* add url field to 9 search adapters (67% -> 97% coverage) ([#414](https://github.com/jackwener/opencli/issues/414))
13+
14+
15+
### Bug Fixes
16+
17+
* **extension:** improve UX when daemon is not running — show hint in popup, reduce reconnect noise ([#424](https://github.com/jackwener/opencli/issues/424))
18+
* remove incorrect gws and readwise external CLI entries ([#419](https://github.com/jackwener/opencli/issues/419), [#420](https://github.com/jackwener/opencli/issues/420))
19+
20+
21+
### CI
22+
23+
* limit default e2e to bilibili/zhihu/v2ex, gate extended browser tests ([#421](https://github.com/jackwener/opencli/issues/421), [#423](https://github.com/jackwener/opencli/issues/423))
24+
25+
326
## [1.4.0](https://github.com/jackwener/opencli/compare/v1.3.3...v1.4.0) (2026-03-25)
427

528

PRIVACY.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Privacy Policy — OpenCLI Browser Extension
2+
3+
**Last updated**: 2026-03-25
4+
5+
## What the extension does
6+
7+
The OpenCLI Browser Extension is a bridge between the [OpenCLI](https://github.com/jackwener/opencli) command-line tool and your Chrome browser. It receives commands from a **locally running daemon** process via WebSocket (`localhost` only) and executes them in **isolated Chrome windows** that are separate from your normal browsing session.
8+
9+
## Data collection
10+
11+
The extension does **NOT** collect, store, transmit, or sell any personal data. Specifically:
12+
13+
- **No analytics or telemetry** — no data is sent to any remote server.
14+
- **No user tracking** — no cookies, identifiers, or fingerprints are created.
15+
- **No external network requests** — all communication is strictly `localhost` (WebSocket to `ws://localhost:19825`).
16+
17+
## Permissions explained
18+
19+
| Permission | Why it's needed |
20+
|------------|----------------|
21+
| `debugger` | Required to use Chrome DevTools Protocol (CDP) for browser automation — executing JavaScript, capturing page content, and taking screenshots in isolated windows. |
22+
| `tabs` | Required to create and manage isolated automation windows and tabs, separate from the user's browsing session. |
23+
| `cookies` | Required to read site-specific cookies (scoped by domain) so CLI commands can authenticate with websites the user is already logged into. Cookies are **never written, modified, or transmitted externally**. |
24+
| `activeTab` | Required to identify the currently active tab for context-aware commands. |
25+
| `alarms` | Required to maintain the WebSocket connection to the local daemon via periodic keepalive checks. |
26+
27+
## Data flow
28+
29+
```
30+
User's terminal (opencli CLI)
31+
↓ (spawns)
32+
Local daemon process (localhost:19825)
33+
↓ (WebSocket, localhost only)
34+
Chrome Extension (this extension)
35+
↓ (Chrome APIs)
36+
Isolated Chrome automation window
37+
```
38+
39+
All data stays on the user's machine. No data leaves `localhost`.
40+
41+
## Cookie access
42+
43+
The extension reads cookies **only** when explicitly requested by a CLI command, and **only** for the specific domain the command targets. It cannot and does not dump all cookies. Cookie data is returned to the local daemon process and is never sent to any external server.
44+
45+
## Third-party services
46+
47+
This extension does not integrate with, send data to, or receive data from any third-party service.
48+
49+
## Open source
50+
51+
This extension is fully open source. You can audit the complete source code at:
52+
https://github.com/jackwener/opencli/tree/main/extension
53+
54+
## Contact
55+
56+
For privacy questions or concerns, please open an issue at:
57+
https://github.com/jackwener/opencli/issues

SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: opencli
33
description: "OpenCLI — Make any website or Electron App your CLI. Zero risk, AI-powered, reuse Chrome login."
4-
version: 1.4.0
4+
version: 1.4.1
55
author: jackwener
66
tags: [cli, browser, web, chrome-extension, cdp, bilibili, zhihu, twitter, github, v2ex, hackernews, reddit, xiaohongshu, xueqiu, youtube, boss, coupang, yollomi, AI, agent]
77
---

docs/adapters/browser/douyin.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Douyin (抖音创作者中心)
2+
3+
**Mode**: 🔐 Browser · **Domain**: `creator.douyin.com`
4+
5+
## Commands
6+
7+
| Command | Description |
8+
|---------|-------------|
9+
| `opencli douyin profile` | 获取账号信息 |
10+
| `opencli douyin videos` | 获取作品列表 |
11+
| `opencli douyin drafts` | 获取草稿列表 |
12+
| `opencli douyin draft` | 上传视频并保存为草稿 |
13+
| `opencli douyin publish` | 定时发布视频到抖音 |
14+
| `opencli douyin update` | 更新视频信息 |
15+
| `opencli douyin delete` | 删除作品 |
16+
| `opencli douyin stats` | 查询作品数据分析 |
17+
| `opencli douyin collections` | 获取合集列表 |
18+
| `opencli douyin activities` | 获取官方活动列表 |
19+
| `opencli douyin location` | 搜索发布可用的地理位置 |
20+
| `opencli douyin hashtag search` | 按关键词搜索话题 |
21+
| `opencli douyin hashtag suggest` | 基于封面 URI 推荐话题 |
22+
| `opencli douyin hashtag hot` | 获取热点词 |
23+
24+
## Usage Examples
25+
26+
```bash
27+
# 账号与作品
28+
opencli douyin profile
29+
opencli douyin videos --limit 10
30+
opencli douyin videos --status scheduled
31+
opencli douyin drafts
32+
33+
# 发布前辅助信息
34+
opencli douyin collections
35+
opencli douyin activities
36+
opencli douyin location "东京塔"
37+
opencli douyin hashtag search "春游"
38+
opencli douyin hashtag hot --limit 10
39+
40+
# 保存草稿
41+
opencli douyin draft ./video.mp4 \
42+
--title "春游 vlog" \
43+
--caption "#春游 先存草稿"
44+
45+
# 定时发布
46+
opencli douyin publish ./video.mp4 \
47+
--title "春游 vlog" \
48+
--caption "#春游 今天去看樱花" \
49+
--schedule "2026-04-08T12:00:00+09:00"
50+
51+
# 也支持 Unix 秒字符串
52+
opencli douyin publish ./video.mp4 \
53+
--title "春游 vlog" \
54+
--schedule 1775617200
55+
56+
# 更新与删除
57+
opencli douyin update 1234567890 --caption "更新后的文案"
58+
opencli douyin update 1234567890 --reschedule "2026-04-09T20:00:00+09:00"
59+
opencli douyin delete 1234567890
60+
61+
# JSON 输出
62+
opencli douyin profile -f json
63+
```
64+
65+
## Prerequisites
66+
67+
- Chrome running and **logged into** `creator.douyin.com`
68+
- The logged-in account must have access to Douyin Creator Center publishing features
69+
- [Browser Bridge extension](/guide/browser-bridge) installed
70+
71+
## Notes
72+
73+
- `publish` requires `--schedule` to be at least 2 hours later and no more than 14 days later
74+
- `draft` and `publish` upload the video through Douyin/ByteDance browser-authenticated APIs, so cookies in the active browser session must be valid
75+
- `hashtag suggest` expects a valid `cover`/`cover_uri` value produced during the publish pipeline; for normal manual use, `hashtag search` and `hashtag hot` are usually more convenient

docs/adapters/browser/twitter.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@
3737
# Quick start
3838
opencli twitter trending --limit 5
3939

40+
# Search top tweets (default)
41+
opencli twitter search "react 19"
42+
43+
# Search latest/live tweets
44+
opencli twitter search "react 19" --filter live
45+
4046
# JSON output
4147
opencli twitter trending -f json
4248

0 commit comments

Comments
 (0)