memoscli 0.1.0

A command-line tool to manage memos
# MemosCLI


[![Built With Ratatui](https://img.shields.io/badge/Built_With_Ratatui-000?logo=ratatui&logoColor=fff)](https://ratatui.rs/)

使用命令行管理自己部署的 [Memos](https://usememos.com/)。

## 功能特性


- **TUI 交互界面**:基于 Ratatui 的终端用户界面,支持键盘导航
- **CLI 命令行模式**:支持命令行直接操作,便于脚本集成
- **Memo 管理**:创建、查看、列出 Memos
- **多可见性选项**:支持 PRIVATE、PUBLIC、PROTECTED 等可见性设置
- **分页浏览**:支持分页查看 Memos 列表
- **配置持久化**:自动保存服务器地址和 Token 配置

## 安装


### 从源码编译


```bash
git clone https://github.com/your-repo/memoscli.git
cd memoscli
cargo build --release
```

编译后的二进制文件位于 `target/release/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