Skip to main content

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)

Source distribution for sermo 0.9.0
File Size Uploaded
sermo-0.9.0.tar.gz 59.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sermo 0.9.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.5.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page