Sobre o projeto

# TermFold TermFold é um aplicativo Android que fornece um ambiente Debian 13 completo e agentes de IA de codificação em tablets e celulares. Ele executa um userland Linux real via PRoot (sem necessidade de root), suporta agentes de codificação populares como Claude Code, Codex, Gemini CLI, OpenCode, Cursor e Pi, e oferece uma interface de chat nativa para agentes que falam o Protocolo de Agente Cliente (ACP). ## Principais Recursos - **Ambiente Debian 13 completo**: Instale pacotes com `apt`, use Python, Node 22, git, ferramentas de build, SSH e SCP após uma configuração única. - **Projetos Linux reais**: Os projetos ficam no armazenamento próprio do Debian (`~/projects`), então symlinks, permissões, executáveis, git, npm e virtualenvs se comportam exatamente como em um PC. - **Agentes de IA de codificação**: Execute `claude`, `codex`, `gemini`, `opencode`, `pi` ou `qwen` no terminal; cada um se instala no primeiro uso. Agentes que falam ACP ganham uma interface de chat nativa com renderização Markdown, chamadas de ferramentas, prompts de permissão e um seletor de modelo/raciocínio/modo. - **Gerenciador de arquivos integrado**: Navegue, pesquise, ordene, crie, renomeie, copie, mova e exclua arquivos. Código abre em um editor CodeMirror com mais de 40 linguagens, pesquisa, desfazer e Ctrl+S. Imagens abrem em um visualizador com zoom e cópia para a área de transferência. - **Importação/exportação de arquivos**: Envie arquivos ou pastas, compartilhe para o TermFold de qualquer aplicativo, exporte para pastas do dispositivo e apareça no seletor de arquivos do Android. - **Navegador integrado**: Visualize servidores de desenvolvimento (`localhost:5173`), páginas de projeto ou qualquer site ao lado do chat. Agentes também podem usar o navegador, com toques e teclas reais, via ferramentas MCP ou comando `termfold-browser`. - **Persistência de sessão**: Chats reabrem sua última sessão, `/resume` lista sessões anteriores e agentes continuam rodando em segundo plano com notificações. - **Otimizado para tablets**: Linhas de teclas Ctrl/Alt/Esc/Tab/setas em largura total, suporte a teclado físico, fonte JetBrains Mono, pinça para zoom. - **Cole qualquer coisa**: Cole imagens no chat ou terminal (como caminhos de arquivo para Claude Code e Codex), colagens longas viram anexos `.txt`. - **Sem root, sem Termux, sem conta**: Tudo roda dentro do aplicativo. Código aberto sob Apache-2.0. ## Instalação 1. Baixe o `.apk` do último lançamento e instale. 2. Abra o TermFold e toque em **+** para iniciar um projeto (vazio, clonado do Git ou importado). 3. Abra o **Shell** — a configuração inicial baixa o Debian (algumas centenas de MB, uma vez). 4. Digite `claude`, `codex`, `gemini`, `opencode` ou `pi`, ou adicione uma sessão **ACP** para chat nativo. Entre uma vez em um Shell. Requisitos: Android 8.0+ em arm64 (maioria dos dispositivos) ou x86_64, alguns GB de espaço livre. ## Como Funciona O TermFold usa PRoot (chroot em userspace) para descompactar uma imagem base do Debian 13 no armazenamento do aplicativo, fornecendo um ambiente Linux persistente. Projetos são diretórios comuns em `~/projects`. Uma biblioteca pré-carregada (`/etc/ld.so.preload`) lida com as restrições de hard links do Android, fazendo dpkg, npm, git, pip e tar funcionarem sem alterações. O aplicativo contorna restrições da plataforma (W^X, filtros seccomp, hard links proibidos, sem pacote de CA) documentadas em `docs/SHELL-NOTES.md`. ## Compilação ```bash py -3 tools/fetch-shell-runtime.py # Imagens PRoot e Debian py -3 tools/fetch-ca-bundle.py # Pacote de CA ./gradlew :app:assembleDebug ``` Builds de lançamento são assinados quando `termfold-release.jks` existe e `termfold.storePassword` está definido. Testes: `./gradlew :app:testDebugUnitTest`. ## Limitações - A arquitetura deve corresponder à CPU (arm64 ou x86_64); sem emulação. - Não é uma VM: sem `systemd`, módulos de kernel ou sockets brutos. - Desinstalar ou limpar dados do aplicativo exclui o ambiente Debian e projetos (faça push para o git ou exporte para manter cópias). ## Licença Licença Apache 2.0. Componentes de terceiros (PRoot, talloc, bibliotecas de terminal Termux, imagem base Debian, fontes) sob suas próprias licenças; veja `THIRD_PARTY_NOTICES.md`.