Add README.md with project overview, build instructions, and keybindings.
Co-Authored-By: Claude Code + Kimi 🐾
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# 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** 🐾
|
||||
Reference in New Issue
Block a user