内容
<div align="center">
**English** · [简体中文](README.zh-CN.md)
<img src="icon.png" width="88" height="88" alt="Chaty" />
# Chaty
### 私有、设备端AI — 您的模型、您的数据、您的机器。
Chaty 在一个精致的桌面应用程序中运行开放的LLM **100%离线**。无需账户,无需云端,无需遥测 — 配备本地编码代理、文档知识库、深度研究和内置免提语音。
[](../../releases/latest)
[](../../releases)
[](../../actions)
[](../../releases)
[](../../releases)
[](https://chaty.ca)
[](#architecture)
[](LICENSE)
[**↓ 下载**](../../releases) · [**网站**](https://chaty.ca) · [**文档**](https://chaty.ca/docs.html) · [**Chaty 模型在 Hugging Face**](https://huggingface.co/stevenpr/chaty-qwen3.5-4b-design-GGUF)
<br />
<img src="docs/screenshots/demo.gif" width="860" alt="Chaty 的本地编码代理在无需权限的情况下读取工作区外的文件" />
<sub>本地编码代理 — 搜索 GitHub,读取源码,编辑文件,并运行测试。**所有操作都在您的机器上进行。**</sub>
</div>
---
## 为什么选择 Chaty
- 🔒 **真正私有** — 每个模型、文档和对话都保留在您的设备上。无需注册,无需服务器,无需数据上报。
- ⚡ **原生且快速** — Rust + llama.cpp 核心,配备 **Vulkan / Metal** GPU卸载,根据您的硬件自动优化,并优雅地降级到 CPU。
- 🧰 **不仅仅是一个聊天框** — 编码代理、知识库(RAG)、深度研究、免提语音和自我修复的设计画布 — 所有功能都离线支持。
- 🧠 **几乎可以运行任何模型** — Llama 3、Gemma 3 / 4、Qwen 3 / 3.5 / 3.6,*任何* 来自 Hugging Face 的 GGUF — 以及 **Chaty 自己微调的模型**,原生支持 Apple Silicon — 还有 **Chaty 自己微调的模型**。
- 💻 **适用于 modest 硬件** — 首次启动时 *“为您设置”* 会根据您的 RAM 选择合适的模型,并一键下载。
<br />
## 本地编码代理
切换到 **聊天 · 代码** 模式,Chaty 就会变成您代码库的代理。指向一个文件夹,描述任务,它就会自行探索、编辑和验证项目 — 每个步骤都实时显示,每个更改都经过批准和差异对比。
- 🌐 **整个网络作为工具** — 无需密钥搜索 **GitHub**(仓库、问题和*代码*)、Reddit、YouTube、Bilibili 和任何域名;获取内容时会适应内容(文章 → Markdown、PDF → 文本、视频 → 转录)。
- 🧭 **驱动真实浏览器** — 打开页面,读取动态内容为文本,点击并填写整个表单,模拟鼠标事件,登录和分页 — 并在需要时使用视觉模型“查看”。
- 🧠 **工具进行思考** — `understand_repo` 在一次调用中定位,`search_code` 按相关性排序文件,`read_file` 提取单个符号及其调用站点,`validate_change` 运行变更所触及的测试。小型模型将步骤花费在决策上,而不是繁琐工作上。
- ✏️ **精确编辑,真实 shell** — 在差异预览后进行精确字符串补丁,配备 **语法门控**,以及命令和长时间 **后台作业**(开发服务器、构建),sandbox 到工作区。
- ⏪ **您始终在控制中** — 每次操作批准,一个命令允许列表,读取内容时的注入防御,以及 **一键恢复**,恢复文件 *和* 回滚对话。
- 🔌 **MCP,适用于小型模型** — 连接任何 Model Context Protocol 服务器(stdio 或可流式 HTTP),或一键 **精选、版本固定商店条目**,实时认证对抗 Chaty 的客户端。工具文档精简,以便 16K 上下文适应您喜欢的多个服务器;每个结果都防御注入,未受信任的服务器需要每次调用批准。
- 📚 **技能和项目记忆** — 将程序步骤的 `SKILL.md` 放入 `~/.chaty/skills/`(或每个项目),代理在相关时加载它;`remember` 将非显而易见的发现保存到 `.chaty/memory/`,以便下次会话开始时知道它们。纯 Markdown,可人工编辑,永远不会离开机器。
<details>
<summary>更多代码模式详情</summary>
- 读取 **PDF / Word / Excel / PowerPoint**(扫描的 PDF 会进行 OCR);`search_files` 按名称或内容查找;文件大纲导航大文件;失败的补丁会得到“你是否意味着”提示。
- 浏览器自动化针对真实网站进行端到端验证,也可以运行在您的真实 Chrome 浏览器中 — 观察其工作过程,包括登录。
- 为本地模型构建:**关闭 / 正常 / 深度**推理开关,**提示处理进度环**,上下文使用环,自动压缩,整个文件的读取大小适应您的上下文窗口,按排名的 `search_code` + 知识库 `search_docs`,以及针对重复小型模型的循环中断。
- 持久会话,项目记忆(**AGENTS.md**),自定义 **/技能**,以及斜杠命令。
- 在 **设置 → 代码** 下调整:步骤限制,命令超时,步骤温度,自动批准编辑的切换,头部浏览器切换,以及命令允许列表。
- 文件访问永远不会离开您选择的文件夹;工作区外访问需要每个文件夹的权限;`sudo` 命令在安全密码提示后首先询问;下载落在工作区内,也受到检查点的保护。
</details>
<br />
## 基准测试
每行使用一个本地模型 — **Qwen3.5-35B-A3B**(MoE,约 3 B 活跃令牌),mxfp8 在 MLX 上,推理关闭,完全在一台机器上:
| SWE-bench 验证 — 45 任务 macOS 验证子集 | 已解决 |
| --- | --- |
| **Chaty 代理(v1.9)** — 完整的工具循环,16K 上下文 | **15/45(33%)** |
| qwen-code 0.20 — 模型家族自己的 CLI(需要 32K) | 12/45(27%) |
| pi 0.81 — 最小 4 工具代理 CLI | 10/45(22%) |
| opencode 1.18 | 7/45(16%) |
| 裸 bash 代理 — 单工具消融 | 6/45(13%) |
相同模型,相同任务,相同评分,一台机器 — 五种代理设计。Chaty 领先,包括模型家族自己的第一方 CLI([qwen-code](https://github.com/QwenLM/qwen-code)),而使用 **一半的上下文窗口**,并且解决了 **2.5 倍** 裸 bash 消融问题。这就是设计论文的衡量标准:使用前沿模型,薄 scaffold 就足够 — 在小型本地模型上,智能必须生活在工具中(仓库感知搜索,符号读取,精确编辑,恢复保护,编辑后诊断)。方法论,每个代理配置和诚实的比较注释(子集,macOS 套件 — *不可与排行榜数字相比*):[docs/BENCHMARKS.md](docs/BENCHMARKS.md)。
<br />
## 设计画布
<picture>
<source media="(prefers-color-scheme: light)" srcset="docs/screenshots/canvas-hero-light.jpg" />
<img src="docs/screenshots/canvas-hero-dark.jpg" width="860" alt="设计画布:实时预览旁边是实际源代码,元素↔行检查,控制台" />
</picture>
- **预览 | 代码,左右并排** — 每个页面都作为一个分割工作室打开:实时预览在左侧,**实际源代码** 在右侧,语法高亮和调色板跟随。三个可拖动调整大小的列,全屏,页面重新加载,以及 **控制台** 选项卡用于页面的日志和错误。
- **指向你所指的位置** — 检查链接两个窗格:悬停元素,代码跳转到其行;单击一行,元素闪烁。**单击选择**(⌘/Ctrl 多选),您的下一个指令精确编辑这些元素 — 或使用 **编辑** 按钮自行打开源代码。
- **观看编辑发生** — 迭代以 Cursor 样式流式传输:代码窗格逐行扫描文档,并落在 **更改** 差异(+N/-N,代码模式的语言)上。
<picture>
<source media="(prefers-color-scheme: light)" srcset="docs/screenshots/canvas-scan-light.jpg" />
<img src="docs/screenshots/canvas-scan-dark.jpg" width="860" alt="实时逐行扫描模型编辑页面" />
</picture>
- **自我修复,持久化** — 运行时错误提供一键 **修复**(始终先询问);兼容层在此处也保持浏览器清洁页面(历史 API,cookie,剪贴板);每个回复都保留其画布会话,在关闭/重新打开时,带有版本历史,确认重置和导出到独立的 `.html`。
<br />
## 聊天渲染一切
<table>
<tr>
<td width="50%"><img src="docs/screenshots/shot-chat.jpg" alt="丰富聊天渲染 — 语法高亮代码,表格和 KaTeX 数学公式" /></td>
<td width="50%"><img src="docs/screenshots/shot-chat-light.jpg" alt="相同对话在 Chaty 的浅色主题中" /></td>
</tr>
</table>
- 流式,折叠 **`<think>`** 面板,跟随模型的推理过程。
- **KaTeX** 数学公式,表格,**Mermaid** 图表,每个块代码复制,以及单个文件 HTML 的应用内渲染 — 包括可玩的网络游戏。
- **⌘K 命令调色板**,可固定/重命名的对话,拖放附件,导出(Markdown / JSON)和全文搜索。
- 四种调色板(两种深色,两种浅色)与系统主题跟随,原生 UI 缩放,减运动支持和 **英文 / 简体中文** UI。
<br />
## Chaty 可以看到
加载一个 **视觉模型**(其权重和 `mmproj` 编码器生活在同一文件夹中,自动配对)并在所有地方启用图像理解:
- **聊天** — 附加图片并询问;后续保持快速(已查看的图片不会重新编码)。
- **代码** — 代理读取截图,可以使用 `view_image` 查看任何图像;合成器接受图像和文档,就像聊天一样。
- **知识库** — 导入的图片在 OCR 文本旁边获得书面描述,以便您可以搜索图片中的内容;嵌入在 **PDF,Word,Excel 和 PowerPoint** 文件中的图片也被提取和描述。
- **画布** — 模型在您请求编辑时看到实时渲染的页面。
纯文本模型保留 OCR 路径,因此不会出现任何回归 — 从旧版本更新时,一次性提示会将您现有的松散 `.gguf` 文件整理成一个文件夹一个模型的布局,并单击一下。
<br />
## 模型:商店,本地 MLX — 和 Chaty 自己的
- 内置 **模型商店**:按名称或作者搜索 Hugging Face,过滤 **GGUF / MLX**,按趋势或下载量排序 — 然后从下拉菜单中选择 **量化** 并点击下载。模型,而不是文件列表。
- 参数 / 架构 / 视觉徽章,存储库的 README 在应用内渲染,以及 **“完全适合内存”** 提示,大小适应您的机器。视觉模型自动获取其编码器;粘贴存储库链接仍然有效。
- **MLX 原生运行在 Apple Silicon 上**:mlx-community 文件夹模型通过 Apple 的 MLX 堆栈在隔离的 sidecar 中加载 — 相同的聊天,视觉,推理控制,代码代理和知识库支持作为 GGUF,以及弹出模型 *始终* 返回其内存。
- **Chaty 自己的微调** — Qwen3.5-4B,从更大的教师提炼成更精简的设备端网页设计,带有内置的 Chaty 身份和基础引用。**“为您设置”** 中的一键选择,完全开放于 **[Hugging Face](https://huggingface.co/stevenpr/chaty-qwen3.5-4b-design-GGUF)**。
<br />
## 私有知识库
<table>
<tr>
<td width="52%">
- 将 **PDF,Word,Excel,Markdown,~90 种文本/代码格式和图像** 索引到设备端存储 — 一个文件或整个文件夹。图像由 **OCR *和* 视觉模型** 读取并用文字描述,以便您可以搜索图片中的内容。
- **混合检索**:bge-m3 向量 + BM25 关键词,融合 RRF,重复项去除 MMR,邻居扩展。
- **严格基础** — 答案仅来自您的文件,带有 **每文件引用** 和源段的悬停预览。Chaty 在内容未覆盖时说明,而不是猜测。
- **一键报告** — 引用的 NotebookLM 式概述整个基础,可导出为 PDF 或 Markdown。
</td>
<td width="48%"><img src="docs/screenshots/shot-knowledge.jpg" alt="本地知识库 — 索引文档,带有每文件切换和一键报告/播客" /></td>
</tr>
</table>
<br />
## 深度研究与网络
- 给定一个主题,Chaty 计划查询,运行 **多轮** 网络搜索与推理交织,并编写结构化,引用的报告 — **可导出为 PDF 或 Markdown**。
- 设计诚实:引用列表仅包含它实际引用的来源。
- 免费,无密钥,多提供商搜索链(Brave → Bing → DuckDuckGo → Wikipedia),因此一个被阻止的提供商永远不会破坏搜索。
<br />
## 免提语音
<table>
<tr>
<td width="48%"><img src="docs/screenshots/shot-live.jpg" alt="实时语音模式 — 一个用于连续,免提对话的动画球体" /></td>
<td width="52%">
- **实时模式** — 连续,免提对话,带有动画球体。
- 语音输入/输出,带有静音自动发送和朗读 — **11 种语音**,带有速度控制。
- **深度播客** — 将您的知识库转换为 NotebookLM 式双主持人音频节目,带有 WAV 导出。
- 所有语音都在 **CPU** 上运行,因此它永远不会与 LLM 竞争 VRAM。
</td>
</tr>
</table>
<br />
## 所有内容都保留在您的机器上
<table>
<tr>
<td width="52%">
- 对话,模型和索引存储在一个 **本地数据文件夹** 中 — 复制它进行备份,一键清除。
- **GPU 加速**:跨厂商 **Vulkan**(Windows)和 **Metal**(Apple Silicon,统一内存上全部卸载),VRAM 感知自动调谐,OOM 回退和 CPU 回退。
- **任意 `.gguf` — 或 MLX 文件夹** — 标记器和聊天模板来自模型本身;Llama 3,Gemma 3 / 4 和 Qwen 3 / 3.5 / 3.6 的一流处理。
- **可调整的上下文**,自动适应模型的训练长度以适应您的内存,并在限制附近总结较旧的回合;**安全的模型切换** 和完整的采样控制,带有可保存的预设。
</td>
<td width="48%"><img src="docs/screenshots/shot-settings.jpg" alt="设置 — 本地数据仪表盘,显示对话,模型和知识库统计信息" /></td>
</tr>
</table>
> **离线优先。** 网络仅用于可选的网络搜索和一次性模型下载。
<br />
## 安装
从 [**发布**](https://github.com/Fangyuan025/Chaty/releases) 页面获取最新版本:
| 平台 | 文件 | 备注 |
|---|---|---|
| Windows x64 | `Chaty_*_x64-setup.exe` | 用户安装程序 — 无需管理员权限 |
| macOS (Apple Silicon) | `Chaty_*_aarch64.dmg` | 参见下面的首次启动说明 |
**macOS 首次启动。** Chaty 是临时签名的,但未经过认证(没有付费的 Apple 开发者账户),因此 Gatekeeper 在首次打开时会发出警告。该应用是安全的 — 所有内容都运行在本地。请在安装后清除下载隔离:
```sh
xattr -dr com.apple.quarantine /Applications/Chaty.app
```
然后像平常一样打开 Chaty。(或者:打开它,忽略警告,然后选择 **系统设置 → 隐私和安全 → 允许任何方式打开**。)在 macOS 上,可写入的模型文件夹位于应用程序数据中 — 使用模型菜单中的 **打开模型文件夹**。
## 构建
详见 **[BUILD.md](BUILD.md)**。
```powershell
# Windows
npm install
.\dev.ps1 # 开发
npm run tauri build -- --no-bundle # 发布 exe → 编译 Inno 安装程序
```
```bash
# macOS (Apple Silicon)
npm install
npm run tauri dev # 开发(Metal)
npm run tauri build # → .app + .dmg
```
发布版本由 CI 产生:使用 `scripts/bump-version.sh x.y.z` 提升版本号,然后推送一个 `vx.y.z` 标签 — GitHub Actions 构建两个安装程序到单个发布版本。
## 架构
| 层 | 堆栈 |
|---|---|
| Shell | Tauri 2 — 系统托盘,全球快捷键,单实例 |
| 前端 | React 19 · Vite · react-markdown · KaTeX |
| 推理 | Rust · `llama-cpp-2`(llama.cpp)— Vulkan(Windows)/ Metal(macOS)· MLX 通过 `mlx-swift-lm` 侧车(Apple Silicon) |
| 语音 | `sherpa-rs`(ONNX Runtime,CPU)— Whisper-base.en + Kokoro-82M |
| 知识库 | bge-m3 嵌入 + BM25 · 混合 RRF / MMR 检索 · SQLite 向量存储 |
| 存储 | SQLite — 对话,消息,全文搜索 |
## 许可证
MIT — 参见 [LICENSE](LICENSE)。使用 [llama.cpp](https://github.com/ggml-org/llama.cpp),[Tauri](https://tauri.app),和 [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx) 构建。
连接信息
猜你喜欢
暂无推荐服务器