このプロジェクトについて

# TermFold TermFoldは、タブレットとスマートフォン上で完全なDebian 13環境とAIコーディングエージェントを提供するAndroidアプリです。PRoot(root不要)を通じて本物のLinuxユーザーランドを実行し、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レンダリング、ツール呼び出し、権限プロンプト、モデル/推論/モードピッカーを備えたネイティブチャットUIを利用できます。 - **内蔵ファイルマネージャー**: ファイルの閲覧、検索、並べ替え、作成、名前変更、コピー、移動、削除が可能です。コードは40以上の言語、検索、元に戻す、Ctrl+SをサポートするCodeMirrorエディタで開きます。画像はクリップボードコピー付きのズーム可能なビューアで開きます。 - **ファイルのインポート/エクスポート**: ファイルやフォルダをアップロードし、任意のアプリから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、1回のみ)。 4. `claude`、`codex`、`gemini`、`opencode`、または`pi`と入力するか、ネイティブチャット用に**ACP**セッションを追加します。Shellで一度サインインします。 要件: arm64(ほとんどのデバイス)またはx86_64上のAndroid 8.0以上、数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)と一致する必要があります。エミュレーションはありません。 - VMではありません: `systemd`、カーネルモジュール、生ソケットはありません。 - アプリのアンインストールまたはアプリデータの消去はDebian環境とプロジェクトを削除します(コピーを保持するにはgitにプッシュするかエクスポートしてください)。 ## ライセンス Apache License 2.0。サードパーティコンポーネント(PRoot、talloc、Termuxターミナルライブラリ、Debianベースイメージ、フォント)はそれぞれのライセンスの下にあります。`THIRD_PARTY_NOTICES.md`を参照してください。