把大模型、端侧长期记忆、SSH 远程操作和语音、附件多模态,全部收进一部手机里。
它是谁
Nyral 是一款跑在 Android 上的开源智能体(Agent)助手。它不是那种套个聊天框就完事的"AI 外壳",而是把多模型对话、本地长期记忆、SSH 远程运维、联网工具、语音输入和附件多模态整合进了一部手机。
四个关键词说清它的立场:开源 · 免 Root · BYO 模型 · 数据自托管。
- 对话、记忆、Token 统计、SSH 配置默认只存在本机,不注册账号;
- 没有行为追踪,没有统计 SDK,也没有广告 SDK;
- 不需要 Root,装上 APK 就能用;
- 模型由你决定:任意 OpenAI 兼容端点,云端或自建都行;
- 源码 MIT 许可,托管在 GitHub。
GitHub 仓库:https://github.com/aixtin/nyral

核心能力
对话与模型
- 多供应商按需切换:MiMo 全模态 / DeepSeek / GLM / 任意 OpenAI 兼容端点,还支持自定义模型,并按模型分别勾选能力;
- 流式输出:思考段打字机效果 + 正文流式 Markdown 渲染,思考和工具调用的过程都可以折叠;
- 消息内 Markdown 表格:表格是气泡内独立的块级视图,流式输出时也能实时排版;
- 思考强度分档:按供应商能力显示"自动 / 开关 / 低中高",不支持的档位不会出现;
- 语音输入:长按说话、上滑取消、60 秒上限自动发送,微信式的语音气泡。
附件多模态
- 图片:本地压缩(长边 2048)后发送,不白烧流量;
- 视频:超过 37MB 的本地转码压缩,气泡里内嵌首帧缩略图;
- 文档:PDF / txt / md / docx / xlsx 在本地解析成文本直接注入上下文,不占视觉 token;扫描版 PDF 会自动渲染成页面图片,走视觉通道;
- 一条消息最多 6 个附件,App 内可全屏预览(图片缩放、视频播放、PDF 翻页、文本复制)。
长期记忆(端侧)
- bge-small ONNX 端内语义向量 + 关键词双路召回,存储在 SQLite;
- 三级分层:短期滚动窗口 → 单槽滚动摘要 → 长期全文 + 语义检索;
- 可以单独配一个"辅助 AI"做记忆索引,不占用主对话模型;
- 待处理队列持久化 + 原子消费事务,进程被杀也不丢消息、不重复归档。
工具调用(21 个内置工具,40 轮上限)
- 联网:
web_search(搜狗手机版 → Bing RSS → Bing → 百度四引擎轮转,国内可直连、免 key)/web_fetch/web_download/site_auth; - SSH:
ssh_run与file远程读写、上传下载,支持跳板机、ED25519 密钥和双认证——手机就是随身的运维终端; - 执行:
js_run(ClassShutter 沙箱限制类访问)/sh_run(本地 Shell,危险命令拦截 + 提权); - 设备:
app,通过无障碍控制第三方 App; - 文件:
workdir,AI 把文件拉到本地目录改完再推回去,避开 SSH 引号地狱; - 浏览器接管:内置 Agent 浏览器原型,AI 全屏接管 WebView,逐步播报 + 高亮提示,遇到验证码会一键交还给你;
- 定时任务:
timer_task_create,先分析目标,再列出需要的危险工具授权清单,一次性批准后准时上班。
安全
- 危险操作二次确认:确认后执行,同参数 5 分钟内免重复确认,拒绝立刻中止并给出回执,超时自动拒绝,全程留痕;
- SSRF 防护(校验重定向目标)+ 日志脱敏(非 2xx 响应体、SSH 私钥内容不会明文落日志);
- 沙箱执行、危险命令拦截、SSH 主机密钥校验,未知主机直接拒绝。
界面
- 多会话管理(置顶 / 删除 / 搜索),会话全文搜索(正文 + 思考,按相关度排序);
- Token 用量统计,主 AI / 辅助 AI 双通道,累计、每日、单会话都能看;
- 运行日志、前台服务保活通知;
- 聊天背景(预设渐变 / 自定义图片模糊)、全局动画体系。
谁适合用
- 开发者:把 SSH 和文件操作装进手机,随时随地连回服务器;
- 普通用户:想要一个真正自托管、不裸奔的 AI 助手,数据留在自己手里;
- 开源爱好者:MIT 许可,随便读、随便改。
快速开始
- 安装 APK,打开「设置 → 模型配置」,填入任意 OpenAI 兼容端点的 Base URL 和 API Key;
- (可选)在 SSH 配置里添加远程主机,支持密码或私钥,也支持跳板机;
- 直接开聊,AI 会按需调用工具,工具调用的进度折叠在气泡里;
- 长期记忆会自动归档,说一句"记住 xxx"就会立刻归档。
系统要求:Android 10+(minSdk 29)、arm64-v8a,以及至少一个 OpenAI 兼容端点。
自己构建
git clone https://github.com/aixtin/nyral.git
./gradlew assembleDebug
# 产物:app/build/outputs/apk/debug/app-debug.apk
需要 JDK 17、Gradle 8.13、Android SDK 36。仓库内置了阿里云镜像配置,国内构建会快一些;不在国内的话把 settings.gradle.kts 里的 maven(...) 行删掉即可。
一点说明
项目从 2026-10-16 起进入维护模式:只修安全和稳定性问题,不再加新功能。这 54 天是怎么一点点做出来的,写在仓库的 END.md 里。
数据是用户的,代码也是用户的。