À propos du projet

# TermFold TermFold est une application Android qui fournit un environnement Debian 13 complet et des agents de codage IA sur tablettes et téléphones. Elle exécute un véritable userland Linux via PRoot (aucun root requis), prend en charge des agents de codage populaires comme Claude Code, Codex, Gemini CLI, OpenCode, Cursor et Pi, et offre une interface de chat native pour les agents qui parlent l'Agent Client Protocol (ACP). ## Fonctionnalités principales - **Environnement Debian 13 complet** : installez des paquets avec `apt`, utilisez Python, Node 22, git, les outils de compilation, SSH et SCP après une configuration initiale unique. - **Véritables projets Linux** : les projets résident dans le stockage propre à Debian (`~/projects`), donc les liens symboliques, les permissions, les exécutables, git, npm et les virtualenvs se comportent exactement comme sur un PC. - **Agents de codage IA** : exécutez `claude`, `codex`, `gemini`, `opencode`, `pi` ou `qwen` dans le terminal ; chacun s'installe lui-même à la première utilisation. Les agents qui parlent ACP bénéficient d'une interface de chat native avec rendu Markdown, appels d'outils, invites de permission et un sélecteur de modèle/raisonnement/mode. - **Gestionnaire de fichiers intégré** : parcourez, recherchez, triez, créez, renommez, copiez, déplacez et supprimez des fichiers. Le code s'ouvre dans un éditeur CodeMirror avec plus de 40 langages, recherche, annulation et Ctrl+S. Les images s'ouvrent dans une visionneuse zoomable avec copie dans le presse-papiers. - **Import/export de fichiers** : téléversez des fichiers ou dossiers, partagez vers TermFold depuis n'importe quelle app, exportez vers des dossiers de l'appareil, et apparaissez dans le sélecteur de fichiers d'Android. - **Navigateur intégré** : prévisualisez les serveurs de développement (`localhost:5173`), les pages de projet ou n'importe quel site à côté du chat. Les agents peuvent aussi utiliser le navigateur, avec de vrais appuis et touches, via les outils MCP ou la commande `termfold-browser`. - **Persistance des sessions** : les chats rouvrent leur dernière session, `/resume` liste les sessions précédentes, et les agents continuent de s'exécuter en arrière-plan avec des notifications. - **Optimisé pour tablette** : rangées de touches Ctrl/Alt/Échap/Tab/flèches sur toute la largeur, prise en charge des claviers physiques, police JetBrains Mono, pincement pour zoomer. - **Collez n'importe quoi** : collez des images dans le chat ou le terminal (sous forme de chemins de fichiers pour Claude Code et Codex), les longs collages deviennent des pièces jointes `.txt`. - **Pas de root, pas de Termux, pas de compte** : tout s'exécute à l'intérieur de l'app. Open source sous Apache-2.0. ## Installation 1. Téléchargez le `.apk` depuis la dernière release et installez-le. 2. Ouvrez TermFold et appuyez sur **+** pour démarrer un projet (vide, cloné depuis Git ou importé). 3. Ouvrez **Shell** — la configuration initiale télécharge Debian (quelques centaines de Mo, une seule fois). 4. Tapez `claude`, `codex`, `gemini`, `opencode` ou `pi`, ou ajoutez une session **ACP** pour le chat natif. Connectez-vous une fois dans un Shell. Prérequis : Android 8.0+ sur arm64 (la plupart des appareils) ou x86_64, quelques Go d'espace libre. ## Fonctionnement TermFold utilise PRoot (chroot en espace utilisateur) pour décompresser une image de base Debian 13 dans le stockage de l'app, fournissant un environnement Linux persistant. Les projets sont des répertoires ordinaires dans `~/projects`. Une bibliothèque préchargée (`/etc/ld.so.preload`) gère les restrictions de liens physiques d'Android, faisant fonctionner dpkg, npm, git, pip et tar sans modification. L'app contourne les restrictions de la plateforme (W^X, filtres seccomp, liens physiques interdits, absence de bundle CA) documentées dans `docs/SHELL-NOTES.md`. ## Compilation ```bash py -3 tools/fetch-shell-runtime.py # PRoot and Debian images py -3 tools/fetch-ca-bundle.py # CA bundle ./gradlew :app:assembleDebug ``` Les builds de release sont signés lorsque `termfold-release.jks` existe et que `termfold.storePassword` est défini. Tests : `./gradlew :app:testDebugUnitTest`. ## Limites - L'architecture doit correspondre au CPU (arm64 ou x86_64) ; pas d'émulation. - Pas une VM : pas de `systemd`, de modules noyau ni de sockets bruts. - Désinstaller ou effacer les données de l'app supprime l'environnement Debian et les projets (poussez vers git ou exportez pour conserver des copies). ## Licence Apache License 2.0. Les composants tiers (PRoot, talloc, bibliothèques de terminal Termux, image de base Debian, polices) sont sous leurs propres licences ; voir `THIRD_PARTY_NOTICES.md`.