MCPcopy Index your code
hub / github.com/dghiffjd7/AiChat

github.com/dghiffjd7/AiChat @v0.6.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.2 ↗ · + Follow
10,506 symbols 42,819 edges 633 files 162 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AiChat

一个跑在手机和电脑上的本地 AI 聊天 APP,启发于SillyTavern,多数灵感来自 Discord 的“类脑”相关讨论。用来和 AI 角色聊天,支持私聊、群聊、创意写作。所有数据存在本地,不经过第三方服务器。

基于 Tauri v2,支持 Android 和 Windows 桌面。

下载

Android 下载 APK,Windows 下载 setup.exe

能做什么

聊天

  • 和 AI 角色一对一聊天,也可以建群聊让多个角色一起对话
  • 支持流式输出(打字机效果),生成过程中可以随时停止
  • 消息可以重新生成、左右翻页(swipe)、回覆、emoji 反应
  • 聊天内容支持搜索,可以跨会话查找并跳转到具体消息
  • 支持发送图片(如果你用的模型支持看图)
  • 群聊中有 @ 提及功能

创意写作

  • 独立的创意写作模式,用于写小说、剧本等长文本
  • 和聊天模式分开,有可设定各自的提示词和参数

贴图 / 表情包

  • 聊天中可以发贴图,贴图按分页管理
  • 可以生成表情包,支持自动去背景、切割成单张贴图
  • 贴图可以绑定到特定聊天室,支持批量操作

世界书(角色设定)

  • 用来写角色的背景、性格、关系等设定,会自动注入到提示词中
  • 条目可以设置触发关键词,聊天中提到相关内容时自动激活
  • 条件编辑器支持节点连线模式,可以拖拽、连线来组合触发条件
  • 有条件概览面板,可以看到每条规则当前是命中还是未命中
  • 支持用 AI 自动生成世界书内容

角色卡导入

  • 支持导入 SillyTavern 格式的角色卡(PNG / JSON)(大部分…吧)
  • 导入后自动创建创意写作会话,角色卡自带的世界书、开场白、正则脚本(脚本需勾选)等会一并导入
  • 导入的角色也可以添加为聊天模式的好友
  • 可以创建多个角色卡,每个角色卡有独立的联系人列表和聊天记录
  • 切换角色卡后,各自的聊天内容互不影响

角色库 / 添加好友

  • 内置角色库,按标签分类,支持模糊搜索
  • 点击角色后自动创建联系人、聊天室和世界书,可以直接开始聊
  • 会根据你已添加的角色推荐相似角色

记忆系统

  • 记忆表格:AI 在聊天过程中自动填写和更新角色记忆(如关系变化、重要事件)
  • 可以设置每隔几轮对话填写一次,减少API消耗
  • 记忆填写可选异步在后台执行,不会打断聊天
  • 支持记忆模板的导入导出

预设系统(兼容酒馆)

  • 管理生成参数、系统提示词、上下文模板等
  • 每个聊天室可以单独绑定预设,也可以用全局默认
  • 支持会话级的连线配置和推理强度覆盖

动态

  • 类似朋友圈的功能,可以评论动态,AI角色会回复

数据管理

  • 聊天记录分片存储,长会话不卡
  • 所有本地数据可以一键打包导出,换设备时一键导入恢复
  • 深色模式 / 浅色模式可切换
  • 支持自定义聊天壁纸

支持的 AI 服务

  • Google Gemini
  • DeepSeek
  • OpenAI
  • Anthropic (Claude)
  • 兼容 OpenAI 协议的任意服务(如本地部署的模型)

每个聊天室可以单独指定用哪个 API 和模型。

首次使用

  1. 打开 APP,点右上角的⚙,进入设置
  2. 进 API 设定,填写你的 API Key,点击刷新列表选一个模型,保存
  3. 开始玩,两种入口:
  4. 聊天模式:回到主界面,点右上角 + 添加好友(从角色库选或自己建),给角色写世界书(或让 AI 自动生成),然后开始聊天
  5. 创意写作 / RP:导入角色卡(PNG / JSON),角色卡自带的世界书和开场白会自动导入,进入创意写作界面开始 RP。导入的角色也可以添加为好友,在该角色卡的世界观下聊天

许可证

AGPL-3.0,详见 LICENSE

Core symbols most depended-on inside this repo

push
called by 2976
src/scripts/ui/preset-panel.js
deepEqual
called by 1463
src/scripts/plugins/script-runtime.js
querySelector
called by 1393
scripts/tests/swipe-ui-utils-tests.mjs
createElement
called by 1245
scripts/tests/session-activity-runtime-utils-tests.mjs
appendChild
called by 1223
scripts/tests/swipe-ui-utils-tests.mjs
addEventListener
called by 1162
scripts/tests/sticker-text-ui-utils-tests.mjs
log
called by 995
src/scripts/ui/debug-panel.js
add
called by 460
scripts/tests/transfer-package-contract-tests.mjs

Shape

Function 6,907
Method 3,161
Class 438

Languages

TypeScript98%
Rust2%
Kotlin1%

Modules by API surface

src/scripts/ui/app.js950 symbols
src/lib/vue3.global.prod.js620 symbols
src/lib/lodash.min.js473 symbols
src/lib/zod.min.js339 symbols
src/scripts/ui/bridge.js309 symbols
src/lib/vue2.min.js288 symbols
src/scripts/ui/world-editor.js207 symbols
src/scripts/storage/chat-store.js199 symbols
src/scripts/ui/chat/rich-text-renderer.js174 symbols
src/scripts/ui/chat/chat-ui.js165 symbols
src-tauri/src/commands.rs157 symbols
src/scripts/ui/custom-bundle-exporter.js144 symbols

For agents

$ claude mcp add AiChat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact