Skip to content

Latest commit

 

History

545 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

太墟 Logo

太墟 · TaiXu

掌中归墟,万象可期。

Android 无 Root Linux Runtime · AI Agent Harness · 可视化自动化工作流 · 原生 PTY 终端 · 移动开发工作区

v0.15.1 stable · Android 10+ (API 29+) · arm64-v8a · Kotlin 2.4.10 · Jetpack Compose

Releases · Issues · 简体中文 · English


🌌 何为太墟

《列子·汤问》云:“渤海之东……其中有大壑焉,实惟无底之谷,其下无底,名曰归墟。八纮九野之水,天汉之流,莫不注之,而无增无减焉。”

太墟取意于此:在 Android 的应用沙盒与权限边界内,构筑一方可运行、可观测、可恢复、可演进的 Linux 与 AI 自动化环境。

它不是给大模型套一层聊天界面,也不只是终端模拟器。太墟让 Agent、MCP 工具、Linux 进程、原生 PTY、浏览器、Git 与项目工作区共享执行上下文;可视化工作流则把一次对话扩展为可持久化、可审批、可定时的自动化任务。你可以从一句自然语言意图出发,最终得到真实文件、运行中的进程、经过验证的代码或可安装的 Android / Flutter 构建产物。

于太墟中立极,于方寸间创世。

人的意图 ─→ Agent 规划 ─→ Linux / 工具 / MCP / 浏览器 / 宿主能力 ─→ 验证与交付
                  ↑                                                   ↓
                  └──────────── 未完成则继续,必要时审批 ──────────────┘

持久化工作流 ─→ 条件分支 / 并行节点 / 定时计划 / 后台运行 / 人工审批

⚡ 核心能力

领域 能力概览
Linux Runtime 基于 PRoot 在无 Root Android 上运行 ARM64 Linux;从 OCI Registry 安装并校验 RootFS,支持多发行版共存、切换、回滚、持久化目录绑定与 Android 共享存储挂载。
Agent Harness 支持 OpenAI-compatible Chat Completions、OpenAI Responses API 与 Anthropic Messages API;统一处理流式正文、reasoning、函数工具调用、视觉输入、token usage 与上下文压缩。
可靠性与恢复 持久化会话、任务计划、语义记忆、自动/手动上下文压缩、大工具输出落盘,以及中断后的恢复;支持 SessionFork 对话回退、文件 checkpoint、外部修改冲突检测与最近一次 rewind 撤销。
子智能体协作 支持多子智能体调度、结构化结果裁定、token 预算、写路径租约和超限结果分页落盘,降低并行写入冲突与上下文膨胀。
可视化工作流 持久化 Kotlin DAG、条件边与并行节点;可组合 Bash、后台进程、Agent、Subagent、构建、宿主动作和人工审批,并支持运行历史、后台执行、通知审批及 WorkManager 一次性/间隔/每日计划。
原生 PTY 终端 JNI 后端通过 openpty + fork + setsid + TIOCSCTTY + execve 创建真实控制终端,产物为 libpty_native.so;配合 Termux terminal-emulator / TerminalView 支持作业控制、Ctrl+C、窗口尺寸变化和多会话,原生后端不可用时回退至 script 通道。
移动工作区与构建 创建空项目、导入本地 ZIP(含 Zip Slip 防护)或克隆 GitHub 仓库;提供代码树、行级 Diff、沙箱内 Gradle / Flutter 后台构建、APK 签名与安装。
端侧 Git 工作台 基于 JGit 直接管理宿主工作区,支持改动、暂存、提交、分支、提交图、标签、push/pull、推送预览、AI 提交说明与加密 HTTPS Token。
浏览器与 Web 自动化 内置多 Tab WebView 池与 Browser MCP;支持页面 Hook、CDP 断点、Worker 级 Fetch 拦截、网络时间线与调试状态展示。
MCP 与工具生态 内置 Browser、SQLite、Git、APK 审计、CodeGraph、WebSearch 等预设;支持 STDIO、常用 Streamable HTTP 请求-响应与 legacy SSE,远程服务可使用 OAuth Authorization Code + PKCE。
无线 ADB 与宿主自动化 mDNS 发现、通知栏配对码输入、Android / PRoot 日志、设备体检与 Intent 诊断;经用户授权后,可通过无线 ADB、Shizuku、Root 或无障碍通道执行不同级别的宿主与 GUI 自动化。
端侧协作 提供全局悬浮助手、带临时 PIN 的局域网 WebChat、FTP 文件传输,以及 FGS、WakeLock 与 Wi-Fi Lock 长任务保活能力。

当前开发分支在 v0.15.1 基础上继续增强 Harness 恢复、MCP OAuth、能力按需发现和后台工作流。稳定版功能与安装包请以 Releases 页面为准。


🧠 Agent 可靠性与安全

太墟把 Agent 视为会长期运行并真实修改工作区的执行系统,而不只是一次性的问答接口:

  • 分级工具审批:危险操作可要求确认,会话级授权与全局策略分离。
  • 可恢复会话:流式输出、工具调用、计划、记忆和执行历史持久化,中断后可继续推进。
  • 上下文治理:支持自动/手动压缩、溢出重放、token 预算及大型工具输出落盘。
  • 安全回退:每轮前创建文件 checkpoint;rewind 时检测会话外修改并报告冲突,满足条件时可撤销最近一次文件恢复。
  • 受控并行:子智能体通过写路径租约、结构化结果与调度约束降低覆盖彼此改动的风险。
  • 凭据边界:模型密钥、Git Token 与 OAuth Token 使用应用侧安全存储;敏感信息不应写入工作区或提交到仓库。

🚀 快速上手

1. 安装

在 ARM64、Android 10+(推荐 Android 12+)设备上安装 最新 Release APK。Release 页面同时提供构建产物与 SHA-256,建议安装前校验。

2. 初始化 Linux

首次启动后跟随「启程向导」安装 RootFS。默认推荐 Ubuntu 24.04 LTS,也可以选择其他受支持发行版。RootFS 不内置于 APK,首次安装需要网络连接与足够的存储空间。

3. 配置模型与工具

在设置中添加模型服务与 API Key。可连接 DeepSeek、Claude、OpenAI、SiliconFlow 等云端服务,也可连接沙箱或局域网内的 OpenAI-compatible 本地推理端点,例如 llama.cpp / Ollama 类型服务。

按需启用 MCP、无线 ADB、悬浮窗、通知、安装 APK、Shizuku 或无障碍权限;未使用相关能力时无需授予。

4. 创建工作区

在工坊中新建项目,或从 GitHub / 本地 ZIP 导入已有工程。随后可在智枢中描述目标,让 Agent 读写代码、调用工具、运行测试并交付构建产物;也可以把重复任务编排为可视化工作流。

5. 常用入口

  • 智枢:Agent 对话、计划、工具调用、子智能体与代码变更。
  • 终端:进入当前 Linux 发行版的真实 PTY 会话。
  • 工坊:项目管理、源码浏览、Diff、构建与 APK 交付。
  • 工作流:搭建 DAG、运行后台任务、设置审批与计划。
  • Git:管理改动、分支、提交、标签和远程同步。
  • 浏览器:网页访问、调试、Hook 与 Browser MCP 自动化。
  • 无线 ADB:配对设备、查看日志并执行授权范围内的诊断。

长时间运行 Agent、构建或工作流时,建议允许通知并将太墟加入系统电池优化白名单。Android 的后台限制仍可能影响任务时效。


🐧 支持的 Linux 发行版

当前提供 10 种 ARM64 RootFS:

  • Ubuntu 24.04 LTS(默认)
  • Debian 12
  • Kali Rolling
  • Arch Rolling
  • Fedora 40
  • Alpine 3.19
  • AlmaLinux 9
  • Rocky Linux 9
  • openSUSE Tumbleweed
  • Manjaro Rolling

RootFS 通过 OCI 镜像获取,不随 APK 分发。不同发行版的软件可用性与兼容性取决于其 ARM64 仓库及 PRoot 用户态环境。


🔌 模型与工具协议

模型 API

  • OpenAI-compatible Chat Completions
  • OpenAI Responses API
  • Anthropic Messages API
  • SSE 流式正文与 reasoning
  • Native function calling 与 JSON 文本工具协议
  • 视觉输入、usage 统计、模型级上下文与压缩预算

MCP

  • STDIO JSON-RPC
  • 常用 Streamable HTTP 请求-响应
  • Legacy SSE
  • OAuth Authorization Code + PKCE、Token 刷新与回调
  • 内置 Browser、SQLite、Git、APK 审计、CodeGraph、WebSearch 预设
  • 能力按需发现与延迟连接

🛠️ 从源码构建

标准 APK 构建要求

  • JDK 17(项目与 CI 基线,推荐 Android Studio JBR)
  • Android SDK:compileSdk 37 / targetSdk 37 / minSdk 29
  • Gradle Wrapper:9.7.0
  • Android Gradle Plugin:9.3.1
  • Kotlin:2.4.10
  • 完整 Git checkout,包括仓库内的本地 Maven AAR 与预编译 ARM64 原生库

普通 APK 构建直接使用仓库内的预编译 native 制品;只有重新编译 PTY 等原生组件时,才额外需要 Android NDK 30.0.15729638、CMake 3.22.1 与 Ninja。

Windows

$env:JAVA_HOME="C:\Program Files\Android\Android Studio\jbr"

.\gradlew.bat architectureCheck --console=plain
.\gradlew.bat test --console=plain
.\gradlew.bat assembleDebug --console=plain

macOS / Linux

export JAVA_HOME="/path/to/jdk-17"

./gradlew architectureCheck --console=plain
./gradlew test --console=plain
./gradlew assembleDebug --console=plain

Debug APK 默认输出到:

app/build/outputs/apk/debug/taixu-v0.15.1-debug.apk

可选步骤

正常完整检出后无需手动准备 PRoot。仅当 app/src/main/jniLibs/arm64-v8a/libproot*.so 缺失、校验失败,或需要刷新官方 PRoot 制品时运行:

.\tools\prepare-proot-runtime.ps1

设置 TAIXU_DEV_BUILD=1 可构建包名为 top.wkbin.taixu.dev 的 TaiXuDev 预览版,与正式包 top.wkbin.taixu 独立共存:

$env:TAIXU_DEV_BUILD="1"
.\gradlew.bat assembleDebug --console=plain

更多构建、测试、签名与诊断命令见 docs/COMMANDS.md。


📐 模块拓扑

TaiXu/
├── app/                  # 宿主壳、Koin 装配、Manifest、JNI 与前台服务
├── baselineprofile/      # Baseline Profile 与启动性能基准
├── core/
│   ├── model/            # 纯 Kotlin 领域模型
│   ├── common/           # 调度器、日志与公共基础设施
│   ├── database/         # Room:会话、消息、记忆、工作流、OAuth、执行历史
│   ├── datastore/        # DataStore:用户偏好、外观、挂载与引导状态
│   ├── network/          # OkHttp、SSE 与网络策略
│   ├── security/         # 密钥、Token 与安全存储
│   └── browser/          # 浏览器共享模型与协议
├── runtime/              # PRoot、RootFS、PTY、进程、存储与工作区运行时
│   └── browser/          # WebView 池、Hook、CDP、网络时间线与 Browser MCP
├── project-template/     # 项目模板、动态表单与物化引擎
├── harness/              # Agent 循环、Provider、工具、审批、子智能体与 MCP
├── tools/                # Registry、Recipe、安装事务、依赖与 Provider 仓储
└── feature/              # Jetpack Compose 业务特性
    ├── theme/            # 主题与视觉系统
    ├── components/       # 通用组件、图标与 Spotlight 引导
    ├── navigation/       # Navigation3 路由与入口
    ├── home/             # 首页状态与诊断
    ├── chat/             # 智枢对话、计划、Diff 与悬浮助手
    ├── terminal/         # 终端 UI 与多会话
    ├── workspace/        # 工坊、源码浏览、构建与交付
    ├── browser/          # 内置浏览器 UI
    ├── workflow/         # DAG 编辑器、运行、审批与计划
    ├── git/              # JGit 工作台
    ├── settings/         # 模型、MCP、ADB、插件与系统设置
    ├── developer/        # 开发者沙箱与底层诊断
    ├── custom_iteration/ # 自定义迭代能力
    └── onboarding/       # 首次启动与 RootFS 初始化

Android 应用业务层以 Kotlin 与 Jetpack Compose 为主;底层还包含 C/JNI、Python、JavaScript、Shell 与 TypeScript 组件。


📚 文档导航


⚠️ 权限、边界与已知限制

  • 仅支持 ARM64:当前只适配 arm64-v8a,其他 ABI 不在支持范围内。
  • PRoot 不是虚拟机:它通过用户态系统调用拦截与路径重写提供 Linux 环境,不具备 KVM、Root 特权或内核模块加载能力。
  • 首次安装依赖网络:RootFS 不随 APK 打包,安装时需要下载 OCI 镜像并占用额外存储空间。
  • 宿主能力取决于授权:无线 ADB、Shizuku、Root 与无障碍提供的权限等级不同;高级宿主动作不会在未授权时自动获得能力。
  • 后台任务受 Android 限制:前台服务与 WorkManager 可提高可靠性,但 Doze、厂商省电策略及新版 Android 的前台服务时限仍可能造成延迟或中断。
  • 局域网服务需谨慎开启:WebChat 与 FTP 只应在可信网络中主动启用,并在使用后关闭。
  • 兼容性因设备而异:复杂 TUI、特定软键盘组合键和重型 C/C++ 交叉编译会受到设备性能、内存与 PRoot 兼容性的影响。
  • 保护凭据:请妥善保存模型 API Key、Git Token 与远程服务凭据,切勿提交到公开仓库。

🤝 参与贡献

欢迎提交 Issue、Pull Request,或分享你的真机使用记录。开始修改前建议先阅读 AI_NAVIGATION.md 与对应模块文档,并运行架构检查和相关测试。


📜 注脚

须弥纳于芥子,太墟纳于掌中。

限制从未真正消失;但自由可以来自身处限制之中,仍有能力去构筑、去验证属于自己的世界。

About

Android No-Root Linux Runtime · Native Agent Harness · PTY Terminal · Workspace & Tool Ecosystem

Resources

Stars

114 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages