FRIENDEN 友间 CLI
FRIENDEN 友间的命令行客户端。朋友之间,自有一间。它直接接入现有 sermo-backend API,适合在终端里快速查看会话、发送文字消息和检查好友信息。
当前版本覆盖日常终端使用:
- 支持进入空间并保存登录状态。
- 支持查看当前账户、空间成员、聊天列表、好友列表、好友申请。
- 支持查看聊天记录、发送文字消息、持续刷新新消息、监听全局新消息。
- 默认提供不清屏的局部窗口选择器,会话、好友、成员和申请列表只展示光标附近 5 项。
- 保留
sermo tui全屏终端聊天界面,会话列表、消息流和输入框集中展示。 - 支持好友申请处理、好友邀请链接、私聊打开、群聊创建和成员管理。
- 支持账号资料、联系方式绑定、通知偏好、空间创建和管理员基础操作。
- 图片、视频封面与表情包会在终端中生成轻量字符缩略图;文件、语音、位置、足迹、广场卡片、活动和合并聊天记录使用结构化预览。
- 支持发送图片、视频、语音、文件、精确/模糊位置和表情包,并支持消息搜索、转发、置顶、撤回、仅自己删除与清空本地会话历史。
- 暂不展示头像。
安装
开发环境下可以直接运行:
python -m sermo_cli --help
也可以安装为本地命令:
pip install -e .
sermo --help
从 PyPI 安装:
pip install sermo
sermo --help
API 地址
默认 API 地址是:
https://api.sermo.jyonn.space
可以用环境变量或参数覆盖:
SERMO_API_BASE=http://localhost:8000 python -m sermo_cli chats
python -m sermo_cli --api http://localhost:8000 chats
常用命令
登录 / 进入空间:
sermo login --space yuanmeng --name 软糖大啾咪
如果昵称需要访问密码,CLI 会自动提示输入密码。
查看当前账户:
sermo me
查看聊天列表:
sermo chats
终端中会显示光标附近 5 个会话。使用 ↑/↓ 选择、Enter 打开、Esc 返回;也支持 j/k 和 Ctrl+N/Ctrl+P。
直接输出完整列表,适合管道和脚本:
sermo chats --list
调整局部窗口行数:
sermo chats --window 7
打开 TUI:
sermo tui
在 TUI 里:
Tab/Shift+Tab在会话、消息和输入框之间切换焦点。- 会话焦点下使用
↑/↓或j/k切换会话。 - 消息焦点下使用
↑/↓滚动,PageUp/PageDown翻页,滑到顶部自动加载历史。 - 在任意区域按
Ctrl+F搜索当前聊天记录,选择结果后加载并定位上下文。 - 查看历史时不会强制跳到底部;标题会提示新消息数量,
End回到最新消息。 - 输入框支持左右移动、
Home/End、退格与 Delete,并按会话保存草稿。 - 发送消息会立即展示“发送中”;失败后保留消息,在消息焦点按
r重试。 Enter发送,F5手动刷新,Ctrl+U清空输入。Esc或F10退出。
会话焦点还支持:
/按会话名称或最后一条消息搜索。u只看未读会话,x清除全部筛选。i查看当前会话资料。- 连续五分钟内同一用户的消息自动合并显示昵称与时间。
- 终端宽度不足 86 列时自动切换为单栏布局。
消息与输入增强:
Ctrl+K打开可搜索的命令面板。- 消息焦点按
v进入选择模式,使用↑/↓选择消息。 - 选择消息后按
q引用、c复制、d删除,删除前会二次确认。 - 引用摘要会显示在输入框上方,按
Esc取消引用。 - 输入框按
Ctrl+O插入换行,最多展示 4 行;Enter仍用于发送。 - 选择消息后按
o打开附件、p置顶/取消置顶、h仅为自己删除。 - 输入
/image、/video、/audio、/file、/sticker或/location可直接从 TUI 发送对应内容,输入/help查看格式。 - 按
Ctrl+G打开发送内容面板,按Ctrl+E打开带字符预览的“我的表情/探索表情”选择器。 - 在会话列表或消息区按
s管理置顶、通知静音、未读角标、动态提醒与上线提醒。 - TUI 同时展示普通聊天和投稿会话;投稿消息按回合分幕,并明确标记当前仅本方可见的内容和发送权限。
打开聊天:
sermo chat 1
在聊天界面里:
- 直接输入文字并回车即可发送。
- 输入
/refresh刷新新消息。 - 输入
/quit退出。
只发送一条消息:
sermo send 1 你好
持续刷新聊天:
sermo chat 1 --follow
查看好友:
sermo friends
好友、空间成员、好友申请和群聊邀请使用同一套局部窗口交互:
sermo friends
sermo users
sermo requests
sermo group invites
这些命令也都支持 --list 和 --window。
查看好友申请:
sermo requests
接受/忽略好友申请:
sermo friend accept <user_id_or_name>
sermo friend ignore <user_id_or_name>
打开私聊:
sermo direct <user_id_or_name> --open
监听所有新消息:
sermo watch
加载更早消息:
sermo chat 1 --before <message_id>
群聊:
sermo group create 12 34 --title 周末计划
sermo group add 1 56
sermo group rename 1 新群名
sermo group leave 1
sermo group owner 1 新群主昵称
sermo group mute 1 用户昵称 --duration 1h
sermo group mute 1 用户昵称 --remove
回合制投稿:
sermo submission recipients
sermo submission start 运营昵称 "投稿标题" "第一条草稿消息"
sermo submission list --role author
sermo submission submit 12
sermo submission revision 12
sermo submission terminate 12
sermo submission ready 12
sermo submission withdraw 12
sermo submission invite 12 协作者昵称 --role author
发送媒体消息:
sermo message media 1 ./photo.jpg
sermo message media 1 ./voice.m4a --kind audio --duration 8
sermo message media 1 ./report.pdf
sermo message location 1 30.2741 120.1551 --obscure
sermo message stickers --explore
sermo message sticker 1 42
搜索、转发与管理消息:
sermo message search 1 关键词 --type 0
sermo message forward 101 102 --to 2 3 --mode bundle
sermo message pin 101
sermo message delete 101 --scope me
sermo message clear 1
sermo message calendar 1 2026 9
sermo message transcript 101 --create
sermo message resources --kind file --keyword 报告
sermo message recovery 1
sermo message events --after 0
在 TUI 的消息选择模式中按 t,可以查看缓存的语音转写或发起一次转写。
广场与足迹:
sermo square list --scope friends --keyword 周末
sermo square show 18
sermo square post "今天也要见朋友。" --visibility friends
sermo square comments 18 --sort hot
sermo square comment 18 "一起去" --parent 42
sermo square like 18
sermo map show
sermo map show 好友昵称
sermo map check-in 30.2741 120.1551 --region-code CN-ZJ --region-name 浙江 --country-code CN --country-name 中国
sermo map access --chat-id 3 --change
sermo map access 好友昵称
成长、活动与通知:
sermo activity list
sermo activity show summer
sermo activity claim summer --reward milestone --reward-key m2
sermo activity contribute summer
sermo growth show
sermo growth discoveries
sermo growth emojis
sermo sticker collect --asset-id 42
sermo notify topics
sermo notify events --unread
sermo account private on
好友邀请链接:
sermo invite token --permanent
sermo invite redeem <token>
账号与通知:
sermo account password
sermo account name 新昵称
sermo account welcome "欢迎来找我聊天"
sermo account welcome-messages
sermo account welcome-messages --file welcome-messages.json
sermo account switch
sermo account switch 42
sermo account personalization --bubble comic --frame polaroid --show-self-avatar on
sermo account upload avatar ~/Pictures/avatar.png
sermo account upload background ~/Pictures/chat-bg.jpg
sermo account language system --system-language zh-CN
sermo contact code email you@example.com
sermo contact bind email you@example.com 123456
sermo notify list
sermo notify set bark --enabled on --threshold 1 --hide-content on
空间与管理员:
sermo space email-code --slug yuanmeng
sermo space admin-login --space yuanmeng --email admin@example.com --code 123456
sermo admin dashboard
sermo admin users
sermo admin operator 42 on
sermo admin chat-mute 42 1h
sermo admin chat-mute 42 --remove
sermo admin square-mute --list
sermo admin square-mute 42 --duration 7d --reason 刷屏
sermo admin settings --square off --member-limit 100
sermo admin official-ticket
退出:
sermo logout
登录状态
登录状态默认保存到:
~/.sermo-cli/config.json
可以用 SERMO_CLI_CONFIG 指定其他路径,便于测试或多账号切换。
Metadata
Release files for sermo 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sermo-0.9.0.tar.gz | 59.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sermo-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.9 kB
Release files / sermo-0.9.0.tar.gz
| Download URL | sermo-0.9.0.tar.gz |
|---|---|
| Size | 59.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be73bb9b6e64b674be62cbfd76d2a52884e6cceed697d9278681b096af00dcc3
|
|
BLAKE2b-256 checksum How to use checksums |
33bf14149747ca67a85f8e00aaf21ef7b914529a6372812c2672f9654d312122
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / sermo-0.9.0-py3-none-any.whl
| Download URL | sermo-0.9.0-py3-none-any.whl |
|---|---|
| Size | 57.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
094ccc42161f8cca2ba920c8e44c9ef3a81a3eda6c6331e46c534d364037ea5a
|
|
BLAKE2b-256 checksum How to use checksums |
4d497123442faa214ad2f20c96ccb83ba98e6bbe9e4c43ce6edbde2854a544ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|