# AioShell **Repository Path**: xkx1029/AioShell ## Basic Information - **Project Name**: AioShell - **Description**: 开源/私有无绑定 AI 对话 Android 客户端外壳,不内置模型,用户自配 OpenAI 兼容接口 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AioShell(内部代号 HAS) > 一款安卓平台的**开源、私有、零绑定** AI 对话客户端外壳。 AioShell **不内置任何大模型、不提供任何后端服务**。你只需要自行配置一个兼容 OpenAI 协议的接口(Base URL / API Key / 模型名),就能在多会话中以流式(打字机)方式与你的大模型对话,且**所有对话数据仅保存在本机**。 --- ## 特性 - **自由无绑定**:连接任何 OpenAI 兼容服务(AIO 系列、Ollama、自建网关、其他兼容网关)。 - **多接口档案**:保存多套 Base URL / Key / 模型 / 参数配置,一键切换。 - **多会话管理**:创建 / 切换 / 重命名 / 删除,历史会话本地持久化。 - **流式对话(SSE)**:逐块渲染的打字机效果,支持中途停止。 - **上下文记忆**:自动携带历史消息。 - **参数可调**:temperature、max_tokens、top_p。 - **连接测试**:保存前校验配置可用性。 - **本地安全**:API Key 采用 Android Keystore 加密存储,绝不写日志、绝不上传。 - **语音输入**:Vosk 离线语音识别(本地推理不联网),模型应用内引导下载,识别结果本地完成。 - **对话全文搜索**:跨所有会话按关键词搜索,点击定位并高亮目标消息。 - **提示词模板库**:内置写作 / 翻译 / 代码 / 总结 / 头脑风暴模板,支持自定义新增、编辑、删除,点击一键填入。 - **对话导出分享**:将整个会话导出为 Markdown / 纯文本 / JSON,经系统分享面板分享(免存储权限)。 - **语音朗读(TTS)**:长按 AI 回复即可用系统语音朗读,支持停止。 - **多会话批量管理**:多选会话批量导出 / 归档 / 删除。 - **对话置顶与分组**:置顶对话固定顶部,列表按「置顶 / 今天 / 昨天 / 更早」分组。 - **对话归档**:归档后从主列表隐藏,可随时恢复或彻底删除。 - **自动生成标题**:新对话首条消息后自动命名(失败回退本地规则)。 - **输入草稿自动保存**:输入内容按会话防抖持久化,退出重进自动还原。 - **数据备份与恢复**:全量导出接口配置与会话为 JSON,可从备份文件一键恢复。 - **AI 消息富文本**:Markdown 表格 / 任务列表 / 有序列表完整渲染。 - **会话统计页**:会话数 / 消息数 / 总字数 / 累计 Token 估算。 - **多接口快速切换**:会话列表顶栏一键切换当前接口档案。 - **界面自定义**:自选强调色、聊天字号与行距。 - **消息编辑与重新生成**:长按消息可编辑,编辑用户消息后自动重新生成 AI 回复。 - **消息收藏 / 星标**:重要消息一键收藏,集中查看。 - **会话标签与筛选**:为会话打标签并按标签快速筛选。 - **会话复制与合并**:一键复制会话到其他接口,或将两个会话合并。 - **上下文长度控制**:限制参与请求的历史消息数量,节省 Token。 - **快捷指令 / 斜杠命令**:输入 `/` 呼出命令面板,一键套用模板。 - **多人格预设**:内置通用助手 / 代码专家 / 文学创作者 / 翻译专员等预设,支持自定义,对话页一键切换生效人格。 - **本地知识库(RAG)**:导入本地文档自动切分入库,发送时检索最相关片段注入回答并标注来源。 - **语音免提对话**:持续语音识别自动发送,AI 回复自动朗读,免手操作。 - **对话分支回溯**:从任意消息生成新分支,可切换查看不同对话走向。 - **Material You 动态取色**:跟随系统壁纸自动提取主色,覆盖手动强调色。 - **桌面快捷小部件**:主屏一键「新建对话」或「打开应用」。 - **消息回复引用**:长按消息「引用回复」,对话中上下文关联作答。 - **联网搜索增强**:开启后发送前经 DuckDuckGo + Wikipedia 免费无密钥接口检索真实内容并注入回答、附来源链接。 - **AI 回复自动朗读**:回复完成后自动 TTS 朗读,可开关。 - **会话级模型覆盖**:单个会话可指定不同模型。 - **长图 / PDF 导出**:把整段对话导出为长图(PNG)或 PDF 分享。 - **Token 用量与费用估算**:统计累计 Token 并按设定单价估算费用。 - **应用锁(PIN)**:启动时密码解锁,保护对话隐私。 - **定时提醒**:按指定时间触发通知提醒。 - **深色模式**:跟随系统,并可选用 AMOLED 纯黑。 - **可切换应用图标**:内置多种启动器图标供选择(含用户自定义素材)。 - **纯净零广告**:仅申请必要权限(网络 / 语音识别时的录音),无后台采集。 ## 界面 遵循 **Material 3 Expressive** 视觉规范,采用自研「海玻璃 / 深渊翡翠」双主题配色,拒绝千篇一律的 AI 紫渐变。 ## 免责声明 / 合规(必读) > 本软件仅为前端交互工具,**不内置任何大模型,不提供任何 API 接口服务**。AI 推理能力全部来自用户主动配置的第三方接口。请保证你对所使用的接口拥有合法权限并自行承担相应的内容与合规责任。详见 [PRIVACY.md](PRIVACY.md)。 ## 技术栈 | 模块 | 选型 | | --- | --- | | 语言 | Kotlin | | UI | Jetpack Compose + Material 3 | | 架构 | MVVM + Repository + Hilt | | 网络 | OkHttp + Ktor(SSE 流式) | | 异步 | Kotlin Coroutines + Flow | | 存储 | Room + DataStore | | 安全 | Android Keystore(AES/GCM) | ``` App(入口 / 导航 / 图标切换) ├── core:data 网络适配层 + SSE / Room / DataStore / Keystore / 仓库 ├── core:ui 主题(M3 Expressive)/ 通用组件 ├── feature:config 接口配置 ├── feature:chat 对话(流式) └── feature:session 会话列表 ``` ## 构建 ```bash # 要求:JDK 17 + Android SDK(compileSdk 35) ./gradlew :app:assembleDebug # 产物:app/build/outputs/apk/debug/app-debug.apk ``` ## 使用 1. 打开 App → 右上角「接口配置」。 2. 新增一个档案:填写 Base URL、API Key、模型名与可选参数 →「连接测试」→「保存」。 3. 返回主页,点击右下角「+」新建会话,开始对话。 ## 常见问题 **为什么没有内置任何模型?** 因为项目理念是「做交互层、不做模型层」,由用户完全掌控自己的接口与数据。 **API Key 安全吗?** 安全。Key 仅以密文存于 DataStore(密钥在 Android Keystore),运行时解密后使用,不写日志、不上传第三方。 ## 贡献 欢迎任何形式的贡献——提 Issue、修文档、加特性或指正问题皆可。请遵循以下最小约定: 1. Fork 本仓库并新建特性分支。 2. 提交信息使用清晰、语义化的中文或英文描述。 3. 提交前确保 `./gradlew :app:assembleDebug` 可正常构建。 4. 通过 Pull Request 提交,并在描述中说明改动动机。 ## License 本项目基于 [Apache License 2.0](LICENSE) 开源,详见 [LICENSE](LICENSE)。 ## 更新日志 见 [CHANGELOG.md](CHANGELOG.md)。 ## 作者与维护者 - **xkx121029** · GitHub / Gitee:[@xkx121029](https://github.com/xkx121029)