这个项目能做什么

# TermFold TermFold 是一款 Android 应用,在平板和手机上提供完整的 Debian 13 环境和 AI 编程代理。它通过 PRoot 运行真实的 Linux 用户空间(无需 root),支持 Claude Code、Codex、Gemini CLI、OpenCode、Cursor 和 Pi 等流行编程代理,并为支持 Agent Client Protocol(ACP)的代理提供原生聊天界面。 ## 主要功能 - **完整的 Debian 13 环境**:一次性设置后,可使用 `apt` 安装软件包,使用 Python、Node 22、git、构建工具、SSH 和 SCP。 - **真实的 Linux 项目**:项目存放在 Debian 自己的存储中(`~/projects`),因此符号链接、权限、可执行文件、git、npm 和 virtualenv 的行为与 PC 上完全一致。 - **AI 编程代理**:在终端中运行 `claude`、`codex`、`gemini`、`opencode`、`pi` 或 `qwen`;每个代理在首次使用时自行安装。支持 ACP 的代理会获得原生聊天界面,包含 Markdown 渲染、工具调用、权限提示以及模型/推理/模式选择器。 - **内置文件管理器**:浏览、搜索、排序、创建、重命名、复制、移动和删除文件。代码在 CodeMirror 编辑器中打开,支持 40 多种语言、搜索、撤销和 Ctrl+S。图片在可缩放查看器中打开,并支持复制到剪贴板。 - **文件导入/导出**:上传文件或文件夹,从任何应用分享到 TermFold,导出到设备文件夹,并出现在 Android 的文件选择器中。 - **集成浏览器**:在聊天旁边预览开发服务器(`localhost:5173`)、项目页面或任何网站。代理也可以通过 MCP 工具或 `termfold-browser` 命令使用浏览器,进行真实的点击和按键操作。 - **会话持久化**:聊天会重新打开上次会话,`/resume` 列出更早的会话,代理会在后台继续运行并发送通知。 - **平板优化**:全宽 Ctrl/Alt/Esc/Tab/方向键行、物理键盘支持、JetBrains Mono 字体、双指缩放。 - **粘贴任何内容**:将图片粘贴到聊天或终端中(对 Claude Code 和 Codex 以文件路径形式),长粘贴内容会变成 `.txt` 附件。 - **无需 root、无需 Termux、无需账户**:一切都在应用内运行。基于 Apache-2.0 开源。 ## 安装 1. 从最新发布版下载 `.apk` 并安装。 2. 打开 TermFold,点击 **+** 开始一个项目(空项目、从 Git 克隆或导入)。 3. 打开 **Shell** —— 首次设置会下载 Debian(几百 MB,仅一次)。 4. 输入 `claude`、`codex`、`gemini`、`opencode` 或 `pi`,或添加 **ACP** 会话以使用原生聊天。在 Shell 中登录一次即可。 要求:Android 8.0+,arm64(大多数设备)或 x86_64,几 GB 可用空间。 ## 工作原理 TermFold 使用 PRoot(用户空间 chroot)将 Debian 13 基础镜像解包到应用存储中,提供持久的 Linux 环境。项目是 `~/projects` 中的普通目录。预加载库(`/etc/ld.so.preload`)处理 Android 的硬链接限制,使 dpkg、npm、git、pip 和 tar 无需修改即可工作。该应用绕过了 `docs/SHELL-NOTES.md` 中记录的平台限制(W^X、seccomp 过滤器、禁止硬链接、无 CA 证书包)。 ## 构建 ```bash py -3 tools/fetch-shell-runtime.py # PRoot 和 Debian 镜像 py -3 tools/fetch-ca-bundle.py # CA 证书包 ./gradlew :app:assembleDebug ``` 当 `termfold-release.jks` 存在且设置了 `termfold.storePassword` 时,发布构建会被签名。测试:`./gradlew :app:testDebugUnitTest`。 ## 限制 - 架构必须与 CPU 匹配(arm64 或 x86_64);不支持模拟。 - 不是虚拟机:没有 `systemd`、内核模块或原始套接字。 - 卸载或清除应用数据会删除 Debian 环境和项目(请推送到 git 或导出以保留副本)。 ## 许可证 Apache License 2.0。第三方组件(PRoot、talloc、Termux 终端库、Debian 基础镜像、字体)遵循各自的许可证;参见 `THIRD_PARTY_NOTICES.md`。