Metadata-Version: 2.4
Name: sermo
Version: 0.3.0
Summary: Command-line Sermo client
Author: Sermo
Project-URL: Homepage, https://sermo.jyonn.space
Keywords: sermo,chat,cli
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# sermo

Sermo 的命令行客户端。它直接接入 `sermo-backend` API，适合在终端里快速查看会话、发送文字消息和检查好友信息。

当前版本覆盖日常终端使用：

- 支持进入空间并保存登录状态。
- 支持查看当前账户、空间成员、聊天列表、好友列表、好友申请。
- 支持查看聊天记录、发送文字消息、持续刷新新消息、监听全局新消息。
- 支持 `sermo tui` 打开终端聊天界面，会话列表、消息流和输入框集中展示。
- 支持好友申请处理、好友邀请链接、私聊打开、群聊创建和成员管理。
- 支持账号资料、联系方式绑定、通知偏好、空间创建和管理员基础操作。
- 图片、视频、语音、文件等多媒体消息在终端中展示为 `[图片]`、`[视频]`、`[语音]`、`[文件]`；也支持上传发送图片、视频和语音文件。
- 暂不展示头像。

## 安装

开发环境下可以直接运行：

```bash
python -m sermo_cli --help
```

也可以安装为本地命令：

```bash
pip install -e .
sermo --help
```

从 PyPI 安装：

```bash
pip install sermo
sermo --help
```

## API 地址

默认 API 地址是：

```text
https://api.sermo.jyonn.space
```

可以用环境变量或参数覆盖：

```bash
SERMO_API_BASE=http://localhost:8000 python -m sermo_cli chats
python -m sermo_cli --api http://localhost:8000 chats
```

## 常用命令

登录 / 进入空间：

```bash
sermo login --space yuanmeng --name 软糖大啾咪
```

如果昵称需要访问密码，CLI 会自动提示输入密码。

查看当前账户：

```bash
sermo me
```

查看聊天列表：

```bash
sermo chats
```

打开 TUI：

```bash
sermo tui
```

在 TUI 里：

- `↑/↓` 切换会话。
- 直接输入文字，按 `Enter` 发送。
- `F5` 手动刷新。
- `Ctrl+U` 清空输入。
- `Ctrl+Q` 退出。

打开聊天：

```bash
sermo chat 1
```

在聊天界面里：

- 直接输入文字并回车即可发送。
- 输入 `/refresh` 刷新新消息。
- 输入 `/quit` 退出。

只发送一条消息：

```bash
sermo send 1 你好
```

持续刷新聊天：

```bash
sermo chat 1 --follow
```

查看好友：

```bash
sermo friends
```

查看好友申请：

```bash
sermo requests
```

接受/忽略好友申请：

```bash
sermo friend accept <user_id_or_name>
sermo friend ignore <user_id_or_name>
```

打开私聊：

```bash
sermo direct <user_id_or_name> --open
```

监听所有新消息：

```bash
sermo watch
```

加载更早消息：

```bash
sermo chat 1 --before <message_id>
```

群聊：

```bash
sermo group create 12 34 --title 周末计划
sermo group add 1 56
sermo group rename 1 新群名
sermo group leave 1
```

发送媒体消息：

```bash
sermo message media 1 ./photo.jpg
sermo message media 1 ./voice.m4a --kind audio --duration 8
```

好友邀请链接：

```bash
sermo invite token --permanent
sermo invite redeem <token>
```

账号与通知：

```bash
sermo account password
sermo account name 新昵称
sermo account welcome "欢迎来找我聊天"
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
```

空间与管理员：

```bash
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 settings --square off --member-limit 100
sermo admin official-ticket
```

退出：

```bash
sermo logout
```

## 登录状态

登录状态默认保存到：

```text
~/.sermo-cli/config.json
```

可以用 `SERMO_CLI_CONFIG` 指定其他路径，便于测试或多账号切换。
