Dikciz Launcher について
Dikciz Launcherは、ホーム画面のカスタマイズや端末の自動化・遠隔操作を行いたい人向けの、プログラム可能なAndroidランチャーです。Streamable HTTP MCPのほか、WebSocketとHTTPの制御インターフェースを備えています。
主な機能
- 01HTML・CSS・JavaScriptウィジェット
- 02Lua自動化スクリプト
- 03アプリショートカットとAndroidウィジェット
- 04MCP経由の端末確認と操作
- 05設定ファイル編集と自動再読み込み
活用シーン
- 01カスタムウィジェット付きのAndroidホーム作成
- 02MCP経由で画面を確認して端末を操作
- 03Luaスクリプトによる端末タスクの自動化
MCP 対応
Streamable HTTP MCPサーバーを内蔵し、ツールから端末の確認、設定編集、Android操作などを提供します。MCPリソースではガイドやタスク手順も参照できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dikciz Launcher
そう、ディックチーズです
Dikciz はプログラム可能な Android ホーム画面です。HTML ウィジェット、ネイティブアプリのショートカット、Android ウィジェットからページを作成し、Lua オートメーションを記述できます。また、USB、Wi-Fi、Tailscale 経由で WebSocket、MCP、HTTP を使ってスマートフォンを操作できます。
ホーム画面のデータは、/sdcard/Dikciz/ の編集可能なファイルに保存されます。署名済みリリースには、スクリプト機能、検査機能、リモート操作機能が含まれています。通常のランチャー操作にデバッグビルドや root 権限は必要ありません。スマートフォンのその他の機能へのアクセスは、Android の権限によって制御されます。
インストール
GitHub Releases から署名済みの dikciz-launcher-vX.Y.Z.apk をダウンロードするか、更新を受け取るには Obtainium に https://github.com/psyb0t/dikciz-launcher を追加してください。スマートフォンで obtainium://add/https://github.com/psyb0t/dikciz-launcher を開くと、直接追加できます。Dikciz は Google Play では公開されていません。
- APK をインストールして Dikciz を開きます。ADB でインストールする場合は、
adb install -r dikciz-launcher-vX.Y.Z.apkを実行します。 - Android のデフォルトのホームアプリとして Dikciz を選択します。
- ファイルへのアクセスを許可をタップし、Android で共有ストレージへのアクセスを許可してから、Dikciz に戻ります。
/sdcard/Dikciz/に初期ホーム画面が作成されます。 - 追加の Android アクセスが必要な機能を使うには、設定、オートメーション、デバイスの完全なアクセスを設定の順に開きます。許可する権限と特別なアクセスは、自分で選択できます。アプリ間の UI 操作には、Android のユーザー補助設定で Dikciz のアプリ間オートメーションを有効にする必要があります。
Dikciz がデフォルトのホームアプリであるか、他のアプリの上に重ねて表示へのアクセス権を持っている場合、APK の更新後に再起動します。Android によって自動再起動が妨げられた場合は、Dikciz を更新しましたという通知をタップするか、アプリを開いてください。これにより、リモートリスナーも再起動します。更新後の復旧を参照してください。
リリースパッケージのアプリ ID は eu.psyb0t.dikciz.launcher、デバッグパッケージのアプリ ID は eu.psyb0t.dikciz.launcher.debug で、デバッグパッケージはリリース版と並行してインストールできます。同じ鍵で署名された更新では、アプリデータが保持されます。各リリースには APK のチェックサムが含まれています。apksigner verify --print-certs dikciz-launcher-vX.Y.Z.apk で署名者を確認できます。証明書の SHA-256 フィンガープリントは次のとおりです。
5F:A2:02:5D:F9:B8:31:C3:56:3E:8D:44:00:88:7A:77:61:86:F1:F6:F4:69:4E:4E:41:04:EF:CF:0E:20:75:15
ホームでサポートされる機能
- 2 つの軸に沿って配置されたネイティブページ。それぞれに固定グリッド、安定した ID、設定可能なレイアウトがあります。
- 状態を保持し、イベントと
window.dikcizブリッジを利用できる、ローカルの HTML、CSS、JavaScript ウィジェット。 - ネイティブアプリのショートカット、アプリグループ、サードパーティ製 Android AppWidget プロバイダー。
- イベント購読、型付きアクション、オーナーのコマンドアクセス、ネイティブのスクリプトダッシュボードを備えた Lua スクリプト。信頼できるスクリプトだけを有効にしてください。スクリプトのコマンドアクセスにはファイルとシェルも含まれます。
- テーマ、フォント、壁紙、ウィジェットの外観、編集ロック、選択した Android ホームの移動先。
- リモート API による、セマンティック UI の検査、スクリーンショット、ログ、設定の編集、デバイス操作。
スターターには、4 つの独立した HTML ウィジェットを備えた 2 つのページがあります。Home には時刻/天気と予定表、Tools には音声メモとデバイスの状態が配置されています。それぞれがページの半分を占め、個別に編集、サイズ変更、削除できます。HTML ライブラリでは、システムメトリクスや経済ニュース付きの BTC/USD など、完全に編集可能な WebView テンプレートを利用できます。カスタマイズしたドキュメントを保存して再利用できます。便利な Lua の例が 3 つ用意されていますが、初期状態では無効です。スターターホームガイドをご覧ください。
ホームを操作・管理する
下部ページレールの横にある Dikciz マークをタップすると、アプリドロワー、ウィジェット、ページ管理、設定が表示されます。ページレールから上にスワイプすると、アプリドロワーが開きます。虫眼鏡をタップすると、名前またはアドレスでページを検索できます。ページ全体に別のウィジェットを配置しようとしても、既存の項目と重なる場合は配置されません。
図解付きユーザーガイドでは、ページ、アプリ、グループ、プロバイダーウィジェット、項目の移動とサイズ変更、外観、スクリプト、復元について説明しています。
設定する
/sdcard/Dikciz/config.json が公開設定のルートです。ページ、ウィジェット、スクリプト、自動化ポリシー、テーマ、フォント、壁紙、HTML パッケージ、制御設定、ログには、それぞれ個別のパスがあります。有効なホームと描画アセットの変更は自動的に再読み込みされます。リスナーのアドレスやポートを変更すると、別の Android アプリが前面に表示されている場合も含め、両方の制御プレーンが自動的に再起動します。
ファイル形式と検証については、設定ガイドをご覧ください。スクリプトチュートリアルでは、Lua イベント、HTML ブリッジ呼び出し、永続状態、型付きアクションについて説明しています。権限、特別なアクセス権、ロール、root の承認は Android が管理します。自動化ポリシーによって Android へのアクセス権が付与されることはありません。
リモートで検査・操作する
WebSocket では、コマンドと永続イベントを扱います。Streamable HTTP MCP では、同じコマンド対象をツールとして公開します。プレーン HTTP では、MCP ポートの /v1/automation で JSON コマンドを受け付けます。どちらも、スマートフォン上ではデフォルトで 127.0.0.1 を使用し、スマートフォンのアプリと ADB 転送からアクセスできます。USB を使わずに直接アクセスするには、次の手順に従います。
- スマートフォンと操作するコンピューターを、相互に到達可能な同じプライベートネットワークまたは Tailscale ネットワークに接続します。ネットワークのアクセス制御ポリシーで、TCP の
19001と19002におけるコンピューターからスマートフォンへの通信が許可されている必要があります。オンラインであることや、Tailscale トンネルへの ping に応答することは、アプリケーションへのアクセスが可能である証明にはなりません。 - スマートフォンで設定を開き、自動化、リモートベアラー認証を設定の順に選択します。パスワードを設定して有効にします。クライアントは
DIKCIZ_REMOTE_BEARER_TOKENから読み取るため、コマンド引数ではなく、シークレットを管理する環境に保持してください。 - 制御ポートを設定を開き、リッスンアドレスを
0.0.0.0に設定して保存します。公開設定ファイルでも同じ設定ができます。エンドポイントを変更すると、両方のリスナーが自動的に再起動します。 - スマートフォンから到達可能なホスト名または IP アドレスとデバイスのポートを使って、操作するコンピューターから接続します。
0.0.0.0はバインドアドレスであり、クライアントの接続先ではありません。
付属の Python クライアントには、サードパーティ製の依存関係はありません。チェックアウトから実行し、phone.example をスマートフォンのホスト名または IP アドレスに置き換えてください。
python3 scripts/dikciz-control.py websocket controlStatus --host phone.example --port 19001 --pretty
python3 scripts/dikciz-control.py mcp-tools --host phone.example --port 19002 --pretty
python3 scripts/dikciz-control.py mcp dikciz_snapshot --host phone.example --port 19002 --pretty
| 接続 | WebSocket | Streamable HTTP MCP | HTTP コマンド |
|---|---|---|---|
| プライベートネットワークへ直接接続 | ws://phone.example:19001/v1/automation | http://phone.example:19002/mcp | http://phone.example:19002/v1/automation |
make dikciz-run の実行後にラボで設定される ADB フォワード | ws://127.0.0.1:19101/v1/automation | http://127.0.0.1:19102/mcp | http://127.0.0.1:19102/v1/automation |
MCP クライアントに Streamable HTTP の URL とベアラーヘッダーを設定し、サーバーを検出してツールを一覧表示します。MCP リソースを通じて dikciz://docs/index を読み込み、短いガイドやタスクの手順をセクションごとに取得できます。リソースガイドでは、検出と CLI での読み込みについて説明しています。直接接続には USB、ADB、エミュレーターは不要です。エンドポイント自体は TLS を提供しないため、信頼できるプライベートネットワークまたは暗号化 VPN を使用してください。0.0.0.0 は、ネットワークのルーティングとフィルタリングの範囲内で、Wi-Fi を含むすべての IPv4 インターフェースで待ち受けます。
接続手順では、セットアップ、トラブルシューティング、ADB の代替手段について説明しています。どちらのプロトコルも、HTTP または HTTPS のループバックページ以外からのブラウザーオリジンを拒否します。ネイティブクライアントでは Origin を省略できます。ネットワークアクセス、ベアラー認証、Android の権限はそれぞれ別のチェックです。シェルコマンドはデフォルトでルート権限を要求します。Dikciz のアプリサンドボックスを使用するには、root: false を指定してください。Android へのアクセスが不足している場合、コマンドに autoRequestPermissions: true を指定すると、所有者による確認画面が表示されます。特定の機能へのアクセスを直接要求するには、requestDeviceAccess または MCP の dikciz_request_device_access を使用してください。応答には、権限の状態、通知の配信状況、手順が含まれます。権限のリクエストを参照してください。
Dikciz がアクセスできる Android 上のファイルを参照および転送したり、単体の APK をアップロードしてインストールを要求したり、Android シェルコマンドを実行して出力と終了ステータスを読み取ったりできます。シェルコマンドのタイムアウトはデフォルトで 30 秒です。リクエストごとにタイムアウトと出力サイズのオプションを指定できます。インストールの権限と確認は Android が制御します。ファイル、APK、シェルのガイドでは、コマンド、バイナリ転送、最終的なインストールステータスについて説明しています。
deviceInfo で実際にサービスを提供しているパッケージとバージョンを確認し、packageInfo で別のインストール済みパッケージを確認できます。また、restart を使用すると、設定を保持したままプロセスを終了せずに再接続する、確認応答付きのランチャー再起動を実行できます。launcherHandoff は、対象へのアクセスを確認したうえで、インストール済みリリースとデバッグコントローラーを切り替えます。displayScreenshot は、Android 11 以降で有効になっている Accessibility を通じて、ほかのアプリの画面をキャプチャします。リモートデバイスガイドでは、これらの操作、ポート競合からの復旧、Android アクセスまたはルート権限が必要な操作について説明しています。
Android データへの直接コマンドを使って、連絡先の検索と編集、SMS の履歴と追跡対象の送信、カレンダー、通話履歴、SIM の選択、クリップボード、現在地、通知、メディアセッション、デバイスの状態を操作できます。これらのコマンドは、ほかのアプリに移動せずに Android API を呼び出します。nativeDataStatus でリソースと許可状況を確認できます。権限とアプリの役割は引き続き Android によって適用されます。
Android の機能
直接コマンドでは、センサー、位置情報/ジオコーディング、JPEG 撮影、マイク録音とライブ PCM ストリーミング、音声再生、音声合成/認識、懐中電灯、バイブレーション、一部の設定を操作できます。Bluetooth はデバイスの検出、ペアリング要求、RFCOMM、GATT トランザクションに対応しています。NFC はタグの検出、NDEF、raw トランザクションに対応しています。USB は所有者アクセスと転送に対応しています。Wi-Fi は、鮮度メタデータ付きのキャッシュ済みスキャンと要求によるスキャンに対応しています。ファイル管理、通知への返信、永続ジョブも同じコマンドターゲットを使用します。通常のバインディングはすべて、同じエグゼキューターと Android アクセスを共有します。ハードウェア制御、音声認識、コマンドリファレンスでは、フィールドと結果について説明しています。Android アクセスリファレンスでは、機能と権限付与、実行制限との対応を示しています。カバレッジ表には、一部対応の機能と残作業が記載されています。Dikciz は、すべての Android SDK メソッドを公開しているわけではありません。
ログと失敗の報告
Dikciz は、/sdcard/Dikciz/logs/ 以下に日ごとの UTC JSON Lines ファイルを書き込みます。Settings の Configure logging では、DEBUG、INFO、WARN、ERROR と、1~90 日の保持期間を選択できます。デフォルトは INFO と 7 日間です。変更はすぐに反映されます。アプリの起動に成功してもポップアップは表示されませんが、ログには記録されます。スクリプトの結果と失敗は、ダッシュボード、Settings のログビューアー、WebSocket の scriptLogs、または MCP の dikciz_script_logs で確認できます。イベントがキューに入ったことは、アクションが成功した証拠にはなりません。ログのリファレンスでは、秘匿化、制限、失敗通知について説明しています。
実行する
ソース開発には Docker、Make、Git を使用します。このリポジトリをクローンし、ルートからコマンドを実行してください。Makefile でバージョンが固定されている Android Lab が、Docker のビルドツールと専用の Android エミュレーターを提供します。イメージがない場合は、ローカルビルドで同意する前にAndroid SDK ライセンスを確認してください。
ANDROID_LAB_ACCEPT_ANDROID_LICENSES=yes make build
make dikciz-run
共有エミュレーターを http://127.0.0.1:61326/vnc.html?autoconnect=true&resize=scale で開きます。make dikciz-run はデバッグパッケージをインストールし、その隔離されたエミュレーターでファイルアクセスを許可して、Dikciz をホームアプリに設定します。既存の設定は保持されます。make dikciz-reset は、そのエミュレーター上の Dikciz とその公開ファイルのみを消去します。エミュレーターのディスク、キャッシュ、署名 ID、成果物が格納されている .android-lab/ は保持してください。
make help では、サポートされている操作を一覧表示します。make status はスタックを調査し、make stop は保存済みのスマートフォンを保持したままスタックを停止します。ツールコンテナーは、ホストの CPU を最大 10 個使用します。ビルドに割り当てるリソースを減らすには、ANDROID_LAB_TOOL_CPU_LIMIT と ANDROID_LAB_GRADLE_MAX_WORKERS を上書きしてください。SDK ライセンスへの同意後、バージョンが固定されたインストーラーを使用してイメージをローカルでビルドします。
Fossify ソースの更新
Fossify の完全なソースは、保守対象の Android ベースとして引き続き使用します。Dikciz のコードは app/src/dikciz/ と統合されたソースセットにあります。DIKCIZ_UPSTREAM_DIR に選択した上流のチェックアウトを設定し、make dikciz-upstream-compare、続いて make dikciz-upstream-refresh-dry-run を実行してください。置き換えには、DIKCIZ_UPSTREAM_REFRESH=1、より新しい上流マーカー、検証済みのバックアップが必要です。Fossify 統合マップに、手順全体とソースの境界が記載されています。
検証
スクリプトのチェックと、縮小版 Dikciz に対する Android Lint には make lint を使用します。対象を絞ったビルドには make gradle GRADLE_TASK=:app:assembleDikcizDebug を、実際の動作確認にはテストガイドの該当するターゲットを使用します。make dikciz-test は、共有エミュレーターで幅広いテストを実行します。make dikciz-test-minified-lua は、リリース時の縮小を有効にして Lua の実行と失敗の報告を検証します。テスト終了後、共有エミュレーターには現在のバンドル済みスターターホームが表示されます。
メインブランチへのプッシュと、レビュー準備が整ったプルリクエストでは、ビルド、Android Lint、ツールテストが実行されます。バージョンタグでは、これらのチェックを繰り返す代わりに、同じコミットのメインブランチへのプッシュパイプラインが成功するまで待機します。メインブランチの実行が失敗した場合、または実行されていない場合は、公開がブロックされます。縮小版の Lint タスクでは、Dikciz のソースセットをチェックします。make app-lint では、上流との互換性を保つコアを別途チェックします。
このゲートを通過すると、CI でバージョンタグから署名済み APK とチェックサムがビルドされます。実行には make release-apk を使用します。タグで手動実行する場合も、同じゲートが適用されます。このターゲットは、公開済みの署名証明書と VERSION のバージョンを検証します。キーストアと署名シークレットは、追跡対象のソース外に保管されます。リリース履歴には、ユーザーに見える変更が記録されています。
ドキュメント
すべてのガイドについてはドキュメントインデックスを、実装済みおよび未実装の機能については対応状況表を参照してください。
| ガイド | 内容 |
|---|---|
| ユーザーガイド | インストール、Android へのアクセス、ナビゲーション、ネイティブ編集をスクリーンショット付きで説明します。 |
| 設定 | 公開ファイル、検証、再読み込みの動作、テーマ、ログについて説明します。 |
| スクリプト | Lua、HTML、イベント、ポリシー、型付きアクションについて説明します。 |
| 自動化制御 | 直接接続、ADB 転送、認証、WebSocket、MCP、HTTP について説明します。 |
| ファイル、APK、シェル | ファイルの閲覧、アップロード、ダウンロード、APK のインストール、CLI の結果の読み取りについて説明します。 |
| Dikciz のソース | 製品のアーキテクチャと実装の境界について説明します。 |
| スクリプト、テスト、貢献 | ビルドツール、検証、変更の境界について説明します。 |
エージェント連携
Dikciz Launcher スキルでは、インストールと操作について説明します。.agents/ 以下にある Claude Code と Codex のマニフェストには、これらの手順が含まれています。サーバーはインストール済みの Android APK 内で実行されます。接続可能な /mcp URL とベアラーパスワードを指定してください。Codex に直接接続するか、このチェックアウトからローカルの Claude プラグインを読み込んでください。
codex mcp add dikciz --url http://phone.example:19002/mcp --bearer-token-env-var DIKCIZ_REMOTE_BEARER_TOKEN
claude --plugin-dir .agents
エージェント連携ガイドでは、クライアントのセットアップ、シークレット、プラグインの設定について説明します。Android Lab スキルでは、ソースからのビルドとエミュレーターでの作業について説明します。APK のリリース後、タグの公開時には ClawHub 向けの操作スキルのみが選択されます。マーケットプレイスへの掲載は、スマートフォンとの接続とは別です。
上流プロジェクト
Dikciz は Fossify Launcher をベースとし、GNU General Public License v3.0 に基づいて配布されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。