Files
memoscli/README.md

152 lines
3.3 KiB
Markdown

# MemosCLI
[![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui&logoColor=fff)](https://ratatui.rs/)
使用命令行管理自己部署的 [Memos](https://usememos.com/),目前支持创建、查看、列出 Memos。
## 功能特性
- **TUI 交互界面**:基于 Ratatui 的终端用户界面,支持键盘导航
- **CLI 命令行模式**:支持命令行直接操作,便于脚本集成
- **Memo 管理**:创建、查看、列出 Memos
- **多可见性选项**:支持 PRIVATE、PUBLIC、PROTECTED 等可见性设置
- **分页浏览**:支持分页查看 Memos 列表
- **配置持久化**:自动保存服务器地址和 Token 配置
## 安装
### 从源码编译
```bash
git clone https://git.lyz.one/SidneyZhang/memoscli
cd memoscli
cargo build --release
cargo install --path ./target/release
```
编译后的二进制文件位于 `target/release/memoscli`
### 从 Crates.io 安装
```bash
cargo install memoscli
```
## 使用方法
### TUI 模式(默认)
直接运行程序进入 TUI 交互界面:
```bash
memoscli
```
#### 主菜单操作
| 按键 | 功能 |
|------|------|
| `↑` / `↓` | 导航菜单 |
| `Enter` | 选择菜单项 |
| `Q` | 退出程序 |
#### 创建 Memo
| 按键 | 功能 |
|------|------|
| `i` | 进入编辑模式 |
| `v` | 选择可见性 |
| `/` | 显示帮助 |
| `Enter` | 提交 Memo |
| `Esc` | 返回主菜单 |
编辑模式下:
| 按键 | 功能 |
|------|------|
| `Enter` | 换行 |
| `Esc` | 退出编辑模式 |
#### 查看 Memos 列表
| 按键 | 功能 |
|------|------|
| `↑` / `↓` | 选择 Memo |
| `←` / `→` | 翻页 |
| `Enter` | 查看详情 |
| `R` | 刷新列表 |
| `Esc` | 返回主菜单 |
#### 配置设置
| 按键 | 功能 |
|------|------|
| `Tab` | 切换输入字段 |
| `Enter` | 保存配置 |
| `Esc` | 取消并返回 |
### CLI 命令行模式
#### 配置
```bash
# 设置服务器地址和 Token
memoscli config --base-url https://your-memos-server.com --token your-token
# 查看当前配置
memoscli config --show
```
#### 创建 Memo
```bash
# 直接输入内容
memoscli create --content "Hello, Memos!"
# 从文件读取内容
memoscli create --file memo.md
# 指定可见性
memoscli create --content "Public memo" --visibility PUBLIC
```
#### 列出 Memos
```bash
# 列出最近的 Memos
memoscli list
# 指定数量和偏移
memoscli list --limit 50 --offset 10
```
## 配置文件
配置文件存储位置:
- **Linux/macOS**: `~/.config/memoscli/config.json`
- **Windows**: `%APPDATA%\memoscli\config\config.json`
配置文件格式:
```json
{
"base_url": "https://your-memos-server.com",
"user_token": "your-api-token"
}
```
## 依赖
- [ratatui](https://ratatui.rs/) - 终端 UI 框架
- [crossterm](https://github.com/crossterm-rs/crossterm) - 终端操作库
- [reqwest](https://github.com/seanmonstar/reqwest) - HTTP 客户端
- [tokio](https://tokio.rs/) - 异步运行时
- [clap](https://github.com/clap-rs/clap) - 命令行参数解析
- [chrono](https://github.com/chronotope/chrono) - 日期时间处理
- [anyhow](https://github.com/dtolnay/anyhow) - 错误处理
## 许可证
MIT License