6e1eccc5e2
Co-Authored-By: Claude Code + Kimi 🐾
69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
# Meow 🐱
|
||
|
||
> A high-performance terminal AI chat client written in Rust.
|
||
|
||
Meow 是一个纯文本终端 AI 聊天客户端,基于 Rust + ratatui 构建,支持任意 OpenAI 兼容的 API 提供商(DeepSeek、Kimi、硅基流动等)。
|
||
|
||
## Features
|
||
|
||
- **OpenAI 兼容层** — 支持任意 OpenAI API 兼容的模型提供商
|
||
- **实时流式输出** — SSE 逐字渲染,支持随时中断(`Ctrl+C`)
|
||
- **Markdown 渲染** — 粗体、斜体、行内代码、代码块语法高亮、列表、引用块
|
||
- **聊天记录持久化** — 自动保存到 `~/.meow/data/sessions/*.jsonl`
|
||
- **模型获取与切换** — 内置模型列表获取,支持搜索过滤
|
||
- **多行输入** — `Shift+Enter` 换行,`Enter` 发送
|
||
- **鼠标滚轮支持** — 可滚动浏览历史消息
|
||
|
||
## Build
|
||
|
||
```bash
|
||
cargo build --release
|
||
```
|
||
|
||
编译完成后,二进制文件位于:
|
||
- Windows: `target/release/meow.exe`
|
||
- Linux/macOS: `target/release/meow`
|
||
|
||
## First-Time Setup
|
||
|
||
首次运行时会自动进入 **Add Provider** 引导界面,填写以下信息:
|
||
|
||
| 字段 | 示例 |
|
||
|------|------|
|
||
| Name | `DeepSeek` |
|
||
| Base URL | `https://api.deepseek.com` |
|
||
| API Key | `sk-...` |
|
||
| Default Model (optional) | `deepseek-chat` |
|
||
|
||
配置保存于 `~/.meow/config.toml`,之后可随时按 `Ctrl+S` 修改。
|
||
|
||
## Keybindings
|
||
|
||
| 按键 | 功能 |
|
||
|------|------|
|
||
| `Enter` | 发送消息 |
|
||
| `Shift+Enter` | 输入框内换行 |
|
||
| `Ctrl+P` | 打开模型选择器 |
|
||
| `Ctrl+S` | 打开 Provider 配置 |
|
||
| `Ctrl+N` | 新建会话 |
|
||
| `Ctrl+B` | 显示/隐藏侧边栏 |
|
||
| `Ctrl+R` | 清空当前会话 |
|
||
| `Ctrl+C` | 停止 AI 流式输出 |
|
||
| `Ctrl+Q` | 退出程序 |
|
||
| 鼠标滚轮 | 滚动消息历史 |
|
||
|
||
## Tech Stack
|
||
|
||
| 模块 | 依赖 |
|
||
|------|------|
|
||
| 异步运行时 | `tokio` |
|
||
| HTTP / SSE | `reqwest` |
|
||
| TUI 框架 | `ratatui` + `crossterm` |
|
||
| Markdown 解析 | `pulldown-cmark` |
|
||
| 代码高亮 | `syntect` |
|
||
| 配置存储 | `serde` + `toml` + `dirs` |
|
||
|
||
## Authors
|
||
|
||
**Claude Code + Kimi** 🐾
|