# 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