コンテンツへスキップ
supastack
ドキュメントを閲覧
デスクトップTauri

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/desktop/first-feature.md (or send Accept: text/markdown).

最初の機能を作る

ネイティブ シェルの 1 つの変更から検証済みウィンドウまでのエンドツーエンドのウォークスルー。

このガイドについて質問
開くアプリ

初心者向けのウォークスルー

前提条件: 以下の 2 つの初心者ガイドを読み、Desktop ローカル セットアップを完了し、このリポジトリをルートでエディターで開きます。シェルは起動時に SUPASTACK_APP_URL をターミナル設定として読みます — 保存された .env ファイルからではありません。

簡単に説明すると、ワークスペースは 1 つのチームの個別のユーザー、データ、設定です。サーバーは信頼できるバックエンドです。プロバイダー キーがブラウザーや電話コードに含まれないようにします。移行は、テーブルを作成または更新する、バージョン管理されたデータベースの変更です。 AI モデルは答えを返すエンジンです。モデル カタログは、使用可能なモデル ID と価格のサーバーのリストです。プロバイダーは、AI、電子メール、請求サービスなどの外部サービスです。資格は、ワークスペースで機能を使用できるようにする付与です。 Webhook は、あるサービスが別のサービスの URL に送信するメッセージです。

1. .agents/skills/add-a-desktop-capability/SKILL.md を開く — またはコーディング エージェントに従わせる — 小さなネイティブ変更を 1 つ行います。例えば新しい表示メニュー項目や別の呼び出しショートカット。

2. cargo check を実行し、シェルを起動し、開いたウィンドウで変更を実際に試します。

3. 出荷予定のすべての OS で繰り返します — トレイ、ショートカット、メニューの動作はプラットフォームごとに異なります。

カスタム コードでは、動作名、影響するメニューまたはショートカット、各 OS で起きるべきことを指定します。このタスクをコーディング エージェントに渡し、AGENTS.md、.ai/PROJECT_CONTEXT.md、および変更するファイルの .ai/ ミラーを読ませ、編集前にファイルとチェックを列挙させ、差分を見せてもらいます。サンプル値を使用し、実際のシークレットは決して貼り付けないでください。

【端末の基本】(/docs/desktop/terminal-basics)

まずネイティブかプロダクトかを決める

ユーザーがプロダクト UI として体験するもの — 画面、データ、設定 — は Web アプリに属し、自動的にウィンドウに届きます。OS レベルの動作のみが Rust に属します: ウィンドウ、トレイ、メニュー、グローバル ショートカット、ログイン時の起動、更新チェック。

apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json

webview サンドボックスを厳しく保つ

webview は capabilities/default.json がリストするものだけを呼び出せます。新しいプラグインが必要な変更は、Cargo.toml にクレートを追加し、lib.rs に登録し、capabilities で最小限の権限を付与します — ワイルドカードは決して使いません。

永続化されたシェル状態 — ウィンドウ位置、ズーム、更新チャンネル、ウィンドウ設定 — は、手動で管理するファイルではなく、付属のサイドカーを通じてアプリのデータ ディレクトリーにあります。

すべてのターゲット OS で検証する

cargo test を実行し、次に Windows、macOS、Linux で実際のウィンドウを開きます: ウィンドウ状態の復元、トレイへの閉じる、単一インスタンス フォーカス、変更を有効にした状態での呼び出しショートカット。1 つの OS が通っても他の 2 つは証明されません。