Skip to content

Commit faff911

Browse files
baixiangerclaude
andcommitted
Restructure Auth section, add Docker/OpenClaw guide, token example
Auth section now grouped by scenario: - Login (Chrome/Chromium) - Token transfer (export/import for VPS) - Manual fallback (token from DevTools, with example) - Status & cleanup New sections: - Docker / OpenClaw integration (Dockerfile, docker exec, env var) - OpenClaw AgentSkill install Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e851418 commit faff911

2 files changed

Lines changed: 121 additions & 13 deletions

File tree

README.md

Lines changed: 61 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,43 @@ snowball kol SH600519
5959

6060
### Auth
6161

62+
**Login** — requires Chrome or Chromium (auto-detected):
63+
6264
| Command | Description |
6365
|---|---|
64-
| `snowball login` | QR code login (shown in terminal) |
65-
| `snowball login --manual` | QR code login (scan in Chrome window) |
66-
| `snowball login --chrome <path>` | Specify custom Chrome/Chromium path |
67-
| `snowball token <cookie>` | Set token manually |
68-
| `snowball status` | Check login status + verify token |
66+
| `snowball login` | QR code in terminal — scan with Xueqiu app |
67+
| `snowball login --manual` | Opens Chrome window for you to scan there |
68+
| `snowball login --chrome <path>` | Use a custom Chrome/Chromium binary |
69+
70+
Set `CHROME_PATH` env var to avoid `--chrome` every time.
71+
72+
**Token transfer** — for VPS / headless servers without a browser:
73+
74+
| Command | Description |
75+
|---|---|
76+
| `snowball export` | Print token as base64 (run on local machine) |
77+
| `snowball import <base64>` | Import token (run on VPS) |
78+
79+
One-liner: `ssh vps "snowball import $(snowball export)"`
80+
81+
**Manual fallback** — if you only have browser DevTools:
82+
83+
| Command | Description |
84+
|---|---|
85+
| `snowball token <cookie>` | Paste cookie string from DevTools |
86+
87+
Copy from: Chrome DevTools → Application → Cookies → xueqiu.com, then:
88+
89+
```bash
90+
snowball token "xq_a_token=abc123def456; u=781234567890"
91+
```
92+
93+
**Status & cleanup:**
94+
95+
| Command | Description |
96+
|---|---|
97+
| `snowball status` | Check login status + verify token is active |
6998
| `snowball logout` | Remove saved token |
70-
| `snowball export` | Print token as base64 (for transfer) |
71-
| `snowball import <base64>` | Import token from another machine |
7299

73100
### Market
74101

@@ -225,6 +252,33 @@ snowball login # auto-detects headless, QR shows in SSH terminal
225252
snowball login --chrome /snap/bin/chromium
226253
```
227254

255+
## Docker / OpenClaw integration
256+
257+
In Docker containers or AI agent platforms (OpenClaw, etc.) where there's no browser:
258+
259+
```dockerfile
260+
# In Dockerfile
261+
RUN curl -fsSL https://bun.sh/install | bash
262+
RUN ~/.bun/bin/bun add -g snowball-cli
263+
```
264+
265+
Then inject your token at runtime:
266+
267+
```bash
268+
# From host machine
269+
docker exec <container> snowball import $(snowball export)
270+
271+
# Or via environment variable in docker-compose.yml
272+
environment:
273+
- SNOWBALL_TOKEN=<base64 from snowball export>
274+
```
275+
276+
For OpenClaw AgentSkill config, install the skill:
277+
278+
```bash
279+
bunx skills add https://github.com/baixianger/snowball-cli
280+
```
281+
228282
## License
229283

230284
MIT

README.zh-CN.md

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,43 @@ snowball kol SH600519
5959

6060
### 登录认证
6161

62+
**登录** — 需要 Chrome 或 Chromium(自动检测):
63+
6264
| 命令 | 说明 |
6365
|---|---|
64-
| `snowball login` | 二维码登录(终端内显示) |
65-
| `snowball login --manual` | 二维码登录(Chrome 窗口扫码 |
66+
| `snowball login` | 终端内显示二维码,用雪球 App 扫码 |
67+
| `snowball login --manual` | 打开 Chrome 窗口扫码 |
6668
| `snowball login --chrome <路径>` | 指定 Chrome/Chromium 路径 |
67-
| `snowball token <cookie>` | 手动设置 token |
68-
| `snowball status` | 查看登录状态并验证 token |
69+
70+
设置 `CHROME_PATH` 环境变量可以省去每次 `--chrome`
71+
72+
**Token 传输** — 用于 VPS / 无头服务器 / Docker:
73+
74+
| 命令 | 说明 |
75+
|---|---|
76+
| `snowball export` | 导出 token 为 base64(在本地机器运行) |
77+
| `snowball import <base64>` | 导入 token(在 VPS/Docker 运行) |
78+
79+
一行搞定:`ssh vps "snowball import $(snowball export)"`
80+
81+
**手动设置** — 只有浏览器 DevTools 时的兜底方案:
82+
83+
| 命令 | 说明 |
84+
|---|---|
85+
| `snowball token <cookie>` | 粘贴 DevTools 中的 cookie 字符串 |
86+
87+
复制路径:Chrome DevTools → Application → Cookies → xueqiu.com,然后:
88+
89+
```bash
90+
snowball token "xq_a_token=abc123def456; u=781234567890"
91+
```
92+
93+
**状态与清理:**
94+
95+
| 命令 | 说明 |
96+
|---|---|
97+
| `snowball status` | 查看登录状态,自动验证 token 有效性 |
6998
| `snowball logout` | 删除已保存的 token |
70-
| `snowball export` | 导出 token(base64,用于传输) |
71-
| `snowball import <base64>` | 从其他机器导入 token |
7299

73100
### 行情
74101

@@ -225,6 +252,33 @@ snowball login # 自动检测无头模式,二维码在 SSH 终端显示
225252
snowball login --chrome /snap/bin/chromium
226253
```
227254

255+
## Docker / OpenClaw 集成
256+
257+
在 Docker 容器或 AI Agent 平台(OpenClaw 等)中没有浏览器:
258+
259+
```dockerfile
260+
# Dockerfile 中
261+
RUN curl -fsSL https://bun.sh/install | bash
262+
RUN ~/.bun/bin/bun add -g snowball-cli
263+
```
264+
265+
运行时注入 token:
266+
267+
```bash
268+
# 从宿主机注入
269+
docker exec <容器> snowball import $(snowball export)
270+
271+
# 或通过 docker-compose.yml 环境变量
272+
environment:
273+
- SNOWBALL_TOKEN=<snowball export 输出的 base64>
274+
```
275+
276+
作为 OpenClaw AgentSkill 安装:
277+
278+
```bash
279+
bunx skills add https://github.com/baixianger/snowball-cli
280+
```
281+
228282
## 协议
229283

230284
MIT

0 commit comments

Comments
 (0)