s1cli

Stage1st (S1) 论坛命令行工具,基于 s1cli Python 包。支持登录/登出、浏览版块和帖子、发帖/回帖、搜索帖子、每日签到、查看个人信息、配置管理。当用户询问「S1」「Stage1st」「一阶段论坛」的操作,或要求浏览/发帖/搜索/签到/回帖时使用此 skill。需要已安装 s1cli(pip...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 191 · 1 current installs · 1 all-time installs
byEski Yin@Geoion
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
名称/描述与 SKILL.md 中的行为一致:说明如何使用 s1cli 包进行登录、浏览、发帖、回帖、签到等论坛操作。没有要求与功能无关的环境变量或外部服务。
Instruction Scope
运行说明限定为调用本地命令(python3 -m s1cli ...),示例还包含如何用 subprocess 解析 --json 输出。没有指示读取系统范围内的凭据或其他不相关文件,只提及并定位其会话文件 (~/.config/s1cli/session.toml),这是合理且与功能相关。
Install Mechanism
注册表中无 install spec(instruction-only),但 README 建议通过 pip install 或从 GitHub 克隆并 pip install -e 安装 —— 这是常见做法。不过任何 pip install 或 git clone 都会在本地执行第三方代码;建议在受控环境(虚拟环境或容器)中安装并检查包来源。
Credentials
skill 不要求额外环境变量或凭据。它确实要求用户进行论坛登录(交互地提供用户名/密码),并在本地保存会话文件(cookies)到 ~/.config/s1cli/session.toml,这与论坛操作的目的相符。
Persistence & Privilege
flags: always 为 false(默认),没有要求长期驻留或修改其他技能/系统配置。会话文件写入到用户配置目录是正常行为且与功能相符。
Assessment
这项技能是说明如何调用本地的 s1cli 命令行工具,而不是自带可执行代码;在安装或使用前请: - 验证 s1cli 的来源(PyPI 包名或 GitHub https://github.com/Geoion/s1cli.git),优先从可信源安装; - 在虚拟环境或受控容器中进行 pip install,以避免把未审查的包安装到全局环境; - 注意你需要在本地提供论坛用户名/密码以运行 login,登录信息会以会话(cookies)形式保存在 ~/.config/s1cli/session.toml,妥善保护该文件; - 该 skill 会通过运行本地命令与你的环境交互(python3 -m s1cli),如果你不信任本地安装的 s1cli 实现或代码库,不要安装或调用它; - 若担心自动化风险,可限制代理的自动调用权限或仅在手动触发下使用该 skill。

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.0
Download zip
latestvk975se3wffjk2xy6j83ckndt6n827qq7

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

s1cli — Stage1st 论坛 CLI

安装

# PyPI(如已发布)
pip3 install s1cli

# 或从源码
git clone https://github.com/Geoion/s1cli.git && cd s1cli && pip3 install -e .

安装后用 python3 -m s1cli --help 确认(某些环境 PATH 里没有 s1cli 直接命令,但 python3 -m s1cli 始终有效)。

依赖:SOCKS 代理支持

若环境配置了 SOCKS 代理,登录时会报错:

Using SOCKS proxy, but the 'socksio' package is not installed.

修复方法(注意 zsh 下方括号需要加引号):

pip3 install "httpx[socks]" socksio

⚠️ zsh 中不能写 pip3 install httpx[socks](方括号会被 shell 解释),必须加引号。

命令速查

# 登录 / 登出
python3 -m s1cli login           # 交互输入用户名密码
python3 -m s1cli login -u USER -p PASS
python3 -m s1cli logout

# 版块 & 帖子列表
python3 -m s1cli list            # 列出所有版块(含 ID)
python3 -m s1cli list <forum_id> # 列出版块帖子(用 ID)
python3 -m s1cli list <forum_id> -p 2   # 第 2 页
python3 -m s1cli list <forum_id> --json # JSON 输出(见下方解析说明)

# 查看帖子
python3 -m s1cli thread <thread_id>
python3 -m s1cli thread <thread_id> -p 2   # 第 2 页

# 发帖 / 回帖
python3 -m s1cli post -f <forum_name> -t "标题" -c "内容"
python3 -m s1cli reply <thread_id> -c "回复内容"

# 搜索
python3 -m s1cli search "关键词"
python3 -m s1cli search "关键词" -f <forum_name>

# 个人功能
python3 -m s1cli checkin         # 每日签到
python3 -m s1cli profile         # 个人信息

# 配置
python3 -m s1cli config show
python3 -m s1cli config set theme=dark

--json 输出解析说明

--json 模式下,stdout 第一行是进度提示文字(非 JSON),从第二行起才是 JSON 数组。 不能直接 json.load(sys.stdin),需跳过第一行:

import subprocess, json

result = subprocess.run(
    ['python3', '-m', 's1cli', 'list', '<forum_id>', '--json'],
    capture_output=True, text=True
)
# 跳过第一行进度提示,剩余部分是完整 JSON
lines = result.stdout.split('\n', 1)
data = json.loads(lines[1])

for t in data:
    print(f"回{t['replies']:>5} 看{t['views']:>7} | {t['title'][:55]} — {t['author']}")

使用流程

  1. 首次使用:运行 login 保存会话(7 天有效,到期后重新登录)
  2. 找版块 ID:先 list 列出所有版块,记下目标版块的数字 ID
  3. 浏览帖子list <forum_id> 查看帖列,找到目标 thread_id
  4. 查看 / 互动thread <thread_id> 阅读内容,reply 回帖

注意事项

  • 版块参数listthread 用数字 ID;post/search-f 用版块名(中文也可)
  • 发帖/回帖:需要已登录;内容支持普通文本和 BBCode
  • 频率限制:工具内置随机 0.5-2s 延迟,批量操作不要在脚本中绕过
  • 会话文件~/.config/s1cli/session.toml(7 天过期)

常见问题

错误原因解法
s1cli: command not foundPATH 未包含脚本目录改用 python3 -m s1cli
socksio package is not installed缺少 SOCKS 依赖pip3 install "httpx[socks]" socksio
zsh: no matches found: httpx[socks]zsh 吞掉方括号必须加引号:"httpx[socks]"
JSONDecodeError: Expecting value直接解析含进度文字的 stdout跳过第一行再解析,见上方示例
登录失败账号密码错误或网络问题确认能访问 bbs.saraba1st.com
找不到版块版块名/ID 不对python3 -m s1cli list 查 ID

更多详情见 references/commands.md。

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…