Communitygithub.com

RunApps スキル

RunApps (runapps.ai) 上で AI Web アプリを構築・公開するためのスキルです。MCP ツールと RunApps JavaScript SDK (@runappsai/sdk) を使用してアプリコードを記述します。認証接続(デバイスコードフロー、エージェントキー、Bearer ヘッダー、スコープ)、プラットフォームモデル(アプリ、スラッグ、バンドル、可視性とレビュー、クリエイター手数料)、すべての MCP ツール、SDK(サインイン、チャット、画像、音声、動画、ユーザーごとのファイル、IndexedDB 同期、プライベートプロンプト)、バンドルルール(zip 構成、dot ファイル、エントリページ)、および安全ルールを網羅します。

RunApps スキル とは?

このスキルは、AI エージェント(Claude Code、Cursor、Codex など)が RunApps プラットフォームと連携して AI Web アプリを構築・公開するための完全なガイドです。MCP サーバー経由で RunApps に接続し、デバイスコードフローによる安全な認証、アプリの作成・更新・公開、バンドル(zip)のアップロード、および SDK を使用したユーザー認証・チャット・画像生成・ファイル管理などの機能を提供します。このスキルは、runapps MCP サーバーが接続されている場合や、タスクが「RunApps」「runapps.dev」「RunApps SDK」「rk_ キー」に言及している場合に使用されます。開発者は、このスキルに従ってアプリを開発し、スラッグ付きの URL で公開し、クリエイター手数料を得ることができます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/runapps/skills/tree/HEAD/runapps

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

MCP 経由の RunApps

RunApps (https://www.runapps.ai) は AI Web アプリ を公開します。クリエイターが静的フロントエンドバンドル(zip)をアップロードすると、https://<slug>.runapps.dev で提供され、ユーザーは RunApps アカウントでサインインし、自身のモデル使用料を支払い、クリエイターはすべての呼び出しに対して手数料を得ます。以下のすべては runapps MCP サーバーと SDK を介して行われます。まだ接続していませんか?「接続する」を参照してください。

このファイルはエントリポイントです。接続、プラットフォームモデル、ツールカタログ、ワークフロー、およびルールについて説明します。SDK(アプリコードがモデルやファイルと通信する方法)は references/sdk.md に、正確なツールパラメータは references/tools.md にあります。タスクに必要な部分だけを読んでください。

接続する(認証)

信頼できる最新バージョンは常に https://www.runapps.ai/agent/setup.md にあります。以下は短縮版です。ユーザーがパスワードを入力することはなく、あなたがパスワードを見ることもありません。キーを要求し、ユーザーがブラウザで一度「承認」をクリックします。

  1. キーを要求する: POST https://www.runapps.ai/api/agent/device/code に JSON {"name": "<あなたの名前> @ <マシン>", "scopes": "read,develop,publish,gateway"} を送信します。応答には device_code、user_code、verification_uri_complete(https://www.runapps.ai/agent/authorize?code=XXXX-XXXX)、expires_in(600 秒)、interval(5 秒)が含まれます。verification_uri_complete をそのままユーザーに表示し、開いて承認するよう依頼してください。name はキーの識別子です。同じ名前のリクエストを承認すると、その名前の以前のキーが失効されるため、セットアップを再実行してもキーが蓄積されることはありません。
  2. ポーリングする: interval 秒ごとに POST https://www.runapps.ai/api/agent/device/token に {"device_code": "…"} を送信します。status は pending(待機)、slow_down(バックオフ)、denied / expired(停止してユーザーに伝える)、または approved(api_key(rk_…)、key_prefix、scopes、mcp_url を返す)です。一度だけ取得し、すぐに MCP 構成に書き込んでください。会話、ログ、リポジトリに決して書き込まないでください。
  3. 接続する: MCP Streamable HTTP を https://www.runapps.ai/api/mcp で、ヘッダー Authorization: Bearer <api_key> とともに使用します。Claude Code の場合: claude mcp add --transport http runapps "https://www.runapps.ai/api/mcp" --header "Authorization: Bearer <api_key>"。Codex の場合: [mcp_servers.runapps] url = "https://www.runapps.ai/api/mcp"、http_headers = { Authorization = "Bearer <api_key>" }。その他のクライアントの場合: 同じ URL とヘッダーを使用します。その後 tools/list を実行します。initialize からの instructions が推奨ワークフローを提供します。

スコープ: read、develop、publish、gateway はデフォルトで付与されます。danger(削除 / 公開取り消し)は、明示的に要求し、その理由をユーザーに説明しない限り含まれません。ユーザーは承認ページでスコープのチェックを外したり、後で https://www.runapps.ai/dashboard/api でキーの名前変更、スコープ変更、または失効を行うことができます(スコープ変更は次の呼び出しに適用され、新しいキーは不要です)。スコープなしで呼び出されたツールは、スコープ名を示すエラーを返します。ユーザーに再度承認を依頼してください。回避しないでください。

同じキーは、gateway スコープがある場合、ゲートウェイ(https://www.runapps.ai/v1、OpenAI 互換、Authorization: Bearer rk_…)でも機能します。構築したアプリのテスト用です。各呼び出しはユーザーに請求されます。完全に切断するには、confirm: true を指定して revoke_my_key を呼び出します。

プラットフォームモデル

オブジェクト説明アクセス方法
アプリ(プロジェクト)プラットフォームが割り当てた slug、名前、1 行の説明、Markdown の長い説明、カテゴリ、アイコン、可視性、クリエイター手数料(rebate_rate)を持つ公開バンドル。バンドルなしの 下書き として作成されるため、コードが存在する前にスラッグが存在します。list_apps、get_app、create_app、update_app
バンドルアプリのビルドの zip。全体が保存され、https://<slug>.runapps.dev でファイルが提供されます。ドットファイル(.private/…)は提供されません。zip ルートの index.html がデフォルトのエントリです。upload_bundle(+ PUT)、upload_bundle_base64、check_bundle
可視性draft(クリエイターのみ)→ private(未公開:リンクを知っている人なら誰でもアクセス可能、レビューなし)または public(ライブラリ内。初回 の public への移行はレビューされ、pending と表示されます。以降の更新は即座に公開されます。却下された場合は review_note が付きます)。update_app(visibility を指定)、get_review
ユーザーとサインインユーザーはアプリ内で RunApps アカウントを使用してサインインします(SDK が実行します。キーなしで new RunApps())。各ユーザーは自身のモデル使用料とクリエイター手数料を支払います。アプリはキーを保持しません。SDK(references/sdk.md)
プライベートプロンプトアプリが出荷するがブラウザには表示されないプロンプトファイル。zip 内の .private/prompts/<id>.md。アプリは prompt: { id, vars } を送信し、ゲートウェイがそれを埋めて先頭に追加します。get_app / check_bundle が見つかった ID を一覧表示します
ユーザーごとのファイルと同期各ユーザーはアプリごとにファイルスペース(client.files)を持ち、IndexedDB 同期(client.sync)がローカルデータベースをそのスペースにミラーリングします。SDK
モデルチャット、ビジョン、画像、音声、文字起こし、動画、埋め込み、リアルタイムモデルのカタログ。リクエストはカタログ名でモデルを指定します。list_models
エージェントキーあなたが保持する rk_ キー。kind = agent、スコープ付き。ユーザーの API キーの下にリストされます。revoke_my_key

カテゴリ: クリエイティブ、コンテンツ、生産性、マーケティング、エンジニアリング、デザイン、研究、データ分析、ビジネス、ファイナンス。

ワークフロー

  1. 作成: create_app に name(および description、category)を指定します。結果には slug(proj-xxxxxxxx、プラットフォームによって割り当てられ、あなたやユーザーが選択することはありません。管理者が後でリストされたアプリに読みやすいスラッグを割り当てることがあります)と url が含まれます。スラッグをユーザーに伝えてください。
  2. ローカルで開発する: スラッグに対して(references/sdk.md、「アプリを構築する」):
    <script src="https://www.runapps.ai/sdk/latest.js"></script>
    <script>
      const client = new RunApps({ project: "<slug>" });
      const r = await client.chat.create({ model: "Claude Sonnet 4.6", messages: [{ role: "user", content: "hi" }] });
    </script>
    
    http://localhost:<port> からのサインインが機能し、呼び出しは実際のゲートウェイを通過します。list_models からモデルを選択します(正確な名前)。アプリコードに rk_ キーを決して入れないでください。
  3. ビルドフォルダの内容をビルドして zip する: cd dist && zip -r ../app.zip . を実行して、index.html が zip ルートにあるようにします(フォルダ自体を zip 化するのが最も一般的な間違いです)。絶対アセットパスは機能します。ドットフォルダは非表示になります。
  4. アップロード: upload_bundle → upload_url に zip を PUT します(curl -sS -X PUT -H 'Content-Type: application/zip' --data-binary @app.zip '<upload_url>')。PUT 応答はバンドルレポートです。すべての警告(SDK が読み込まれていない、エントリがルートにない、ページ内のキー)を修正してください。check_bundle はいつでも再読み取りできます。
  5. 説明: update_app に description(1 行、何をするか)、long_description(Markdown:ユーザーが得られるもの、使用方法、実際のコスト)、category、icon_url(正方形の PNG/SVG、https または data URL)を指定します。
  6. 出荷: 共有リンクの場合は update_app に visibility: "private" を、ライブラリの場合は "public" を指定します。"public" の後、get_review はレビュー担当者が決定するまで pending を表示します。rejected には review_note が付属するため、それに対処してから再度 public に設定します。公開する前に、自分で url を開いてください(またはユーザーに依頼してください)。404 または空白ページを表示するバンドルは却下されます。

更新: 新しいバンドルをアップロードするか、いつでもメタデータを変更できます。公開アプリは公開されたままです。

ルール

  • [danger] ツール(unpublish_app、delete_app)は、他の人が使用している可能性のあるものを削除します。最初にユーザーに確認し、同意した場合のみ confirm: true を渡します。danger スコープがない場合は、とにかく拒否されます。
  • gateway スコープで行われたすべてのモデル呼び出し、およびユーザーのアプリが行うすべての呼び出しは、実際の費用がかかります。短いプロンプトと安価なモデルでテストしてください。list_models は価格を表示します。
  • キーはユーザーのものです。マシンごとに 1 つ(name で区別されます)。決して共有せず、MCP 構成以外の場所に書き込まないでください。切断を求められたら revoke_my_key で失効します。
  • モデル名をでっち上げないでください。list_models を使用してください。不明な名前は 400 エラーになります。決してサイレントに置き換えられません。
  • プライベートプロンプトのテキストは秘密に保つ必要があります。ゲートウェイはそれをエコーする応答を保留します。

次に読む場所

タスク読む場所
アプリの作成: サインイン、チャット、ストリーミング、画像、音声、動画、ファイル、同期、プライベートプロンプト、エラーreferences/sdk.md
正確なツールパラメータと結果の形状references/tools.md
接続(全文、常に最新)https://www.runapps.ai/agent/setup.md
バンドルの構築、公開、収益references/sdk.md → 「アプリを構築する」、「公開する」

関連スキル