# OpenMinis 开源 iOS/Android 双端 AI Agent 完整代码

- 来源：meng shao (@shao__meng)
- 发布时间：2026-07-27 10:08
- AIHOT 分数：48
- AIHOT 链接：https://aihot.virxact.com/items/cms2lw0nx02anro3fqsqwo7r1
- 原文链接：https://x.com/shao__meng/status/2081562462537777457

## AI 摘要

OpenMinis 正式开源 iOS 与 Android 双端完整代码，为手机提供本地运行的 AI Agent。其核心是在设备上运行 Alpine Linux 沙箱（iOS 用 iSH 深度定制 fork，Android 用 PRoot），让 Agent 能执行 shell 命令、操作文件、实现浏览器自动化与系统集成（日历、健康、HomeKit 等）。

## 正文

这个 iOS / Android 双端的开源 AI Agent 必须推荐！

OpenMinis 作者 @wsvn53
https://github.com/OpenMinis/OpenMinis

OpenMinis 选择直接给模型一台 Linux 电脑，支持用户接入自己的模型（支持 API Key 或 OAuth 账号登录），Agent 便获得：
· 一个在设备上本地运行的完整 Alpine Linux 沙箱--能 apk add、跑 Python、写脚本、操作真实文件；
· 通过沙箱暴露的系统级集成--日历、提醒、健康、HomeKit、蓝牙、剪贴板、闹钟等；
· 浏览器自动化、可扩展 Skills、跨会话持久记忆。

# 最核心的技术决策：手机上的 Linux 沙箱

iOS 端用的是 iSH 的深度定制 fork（OpenMinis/ish-arm64）。iSH 本质是一个用户态 Linux 内核模拟器，OpenMinis 把它从原版的 x86 guest 改造为 ARM64 guest（配合名为 Asbestos 的 threaded-code JIT 解释器），在 App 进程内实现了进程管理、100+ 系统调用、TTY/PTY、完整网络栈透传，文件系统则用 SQLite 存元数据的「fakefs」。这在 iOS 严苛的沙箱限制下跑通一个能装包、能联网的 Alpine 环境，工程难度和完成度都不低。

Android 端则务实得多：直接用 PRoot（Termux 同款方案的 fork）做用户态 chroot，解压真实的 Alpine rootfs，靠路径翻译和 --link2symlink 等技巧在无 root 环境下运行。两端殊途同归：都给 Agent 呈现同样的 /bin/sh + /var/minis/ 目录结构。

# Agent 架构：小工具面 + 一切皆 CLI

模型能直接看到的工具只有 8 个：shell_execute、file_read/write/edit、browser_use、memory_write/get、read_image。而全部 20 多个设备集成--iOS 的 apple-calendar、apple-healthkit、apple-vision，Android 的 android-shizuku-cli、android-a11y-cli 等--都不是 LLM 工具，而是沙箱里的命令行程序。实现方式很巧妙：内核层拦截 execve（），当 guest 进程执行 /usr/local/bin/apple-calendar 时，调用被路由到宿主侧的原生 handler（EventKit、HealthKit 等），结果以 JSON 经管道返回。项目称之为「Native Offloads」。

这带来几个直接好处：工具 schema 不膨胀（省 token、模型不易混乱）；模型可以用 shell 的全部表达力组合这些能力（管道、脚本、循环）；MCP 服务器也统一走 minis-mcp-cli 命令调用而非注入工具列表。这与 Anthropic 近来倡导的「代码执行优于工具调用」的方向一致，且该项目在移动端把这条路走通了。

Agent 循环（iOS AIChatViewModel.runAgentLoop，Android ChatViewModel）是成熟的流式工具循环：最多 200 轮、并发工具执行（上限 10）、按上下文窗口分级的自动压缩（LLM 摘要）与「上下文卸载」（超长工具结果写入文件、留占位符让模型按需 file_read 回来）、防失控的 ToolLoopDetector 熔断器、模型组故障转移（fallback chain）。

其他几个设计也值得一提：
· minis：// URL scheme：会话级资源寻址，URL 刻意不含 session ID，从协议层面杜绝跨会话访问；工具产出的文件以 minis：// URL 返回给模型，聊天 UI 直接内联渲染图片/音视频。
· Skills 兼容生态：采用与 Claude Code 相同的 SKILL.md 渐进式披露机制（元数据常驻上下文，正文按需加载），并明确宣称为 Claude/Codex 写的技能可以直接跑。这是聪明的生态借力。
· 记忆分层：GLOBAL.md（用户维护）+ 按日记录的 daily log + 独立的 SOUL.md 身份定义，全部落在沙箱可见的 /var/minis/memory/，模型能用普通文件工具读写。
· iOS 后台保活：用定位心跳和后台音频延长执行时间，配合 Live Activity 展示进度--是灰色但常见的手段，说明作者对 iOS 平台限制的对抗做得很彻底。
· 权限模型：涉隐私的 CLI（健康、日历、位置、剪贴板等）有 Bypass / Ask Once / Not Allowed 三级授权，在系统权限之外多加了一道 Agent 级闸门。

### 引用推文

> Ethan Wang：After 3-4 months of iteration, Open Minis - "possibly the best Agent app on your phone" - has stabilized into a mature architecture, now powering tens of thousa...
