はじめかた
KUMODeckは、バイブコーディングのためのフラットなバックエンドです(Webアプリ・ゲームなど)。ホスティング、自分のサーバーのプログラムとデータベース、利用者のログイン、クラウドセーブ、マルチプレイのルームを、1つのSDKと1つのCLIで扱え、どれもAIエージェントに頼んで整えられます。このページでは例として、スターターテンプレートの小さなゲームで進めます(Webアプリでも手順は同じです)。何もない状態から、プレイヤーごとの自己ベストを覚えるゲームを公開し、Xに投稿するところまで進みます。どの手順もターミナルのコマンド1つです。
1. CLIを入れてアカウントを作る#
npm install -g kumodeck # インストールせずに使うなら: npx kumodeck <command>
kumodeck signup # メールアドレスとパスワード。作成後そのままログインしますCLIは依存パッケージがゼロで、Node 22以上で動きます。signupは開発者アカウントを作ってログインまで済ませます。続けてメールを確認します。確認メールのリンクをkumodeck verify <リンク>に貼ってください(メールが無ければkumodeck verify --resend)。前払いの入金・シークレットキー・AIエージェント(MCP)の接続は、確認が済んでから使えます。アカウントがあればkumodeck loginです。セッションは~/.kumo/credentials.json(権限0600)に保存されます。別のサーバーを使うときは--api <url>かKUMO_API_URLを指定します。
ヒント Claude Code・Codex・CursorなどのAIエージェントを使っていますか?
kumodeck signupだけは自分で打ち(パスワードをアシスタントに渡さないため)、以下の手順はアシスタントに頼めます。入金は、アシスタントがkumodeck billing topupを実行して支払いページのURLを見せるので、そのページで自分で支払います。どのコマンドも、次に打つコマンドを最後に表示します。AIエージェントから使うを参照してください。
ヒント サーバーを自分で動かす場合は、リポジトリで
pnpm install && pnpm devを実行すると、組み込みPostgres付きでhttp://localhost:4000にすべてが立ち上がります(Docker不要)。このページの手順はすべてローカルでも動きます。
2. 前払いで入金する#
kumodeck billing topup # 最低5ドル。Stripeの支払いページを出して開き、支払いが済むまで待ちます
# $5.00 を支払いました(カードの手数料 $0.45・実費)— 前払い残高に $4.55 を追加しました無料枠はありません。最初のリクエストから、プロジェクトが使った分(APIリクエスト、ホスティング、セーブ、マルチプレイ、カード画像、Functions)を、AIの提供元のAPIクレジットのように前払い残高から原価で差し引きます。そのため、新しいアカウントはプロジェクトの作成・デプロイの前に入金します。小さなアプリやゲームなら5ドルで長くもちます(試算)。支払いはStripeの画面で本人が行い、CLIはカード情報を見ません。残高はいつでもkumodeck billingで確認でき、ダッシュボード(お金 → 前払い)では自動チャージや残高不足のメールも設定できます。
残高が0ドル以下で、ほかに埋めるもの(失敗していない自動チャージ)が無い間は、アプリの利用者側の処理が止まり(利用者には中立の表示)、新しいプロジェクトの作成とデプロイも402で断られます(エラーにkumodeck billing topupが出ます)。止まっているかどうかはkumodeck billingとkumodeck whoamiがはっきり表示します。ダッシュボード・設定の反映・入金は止まらず、入金されればすべて自動で再開します。詳しくは前払い残高。
3. テンプレートからプロジェクトを作る#
kumodeck create my-game && cd my-game # 遊べるゲーム(テンプレート: vanilla-canvas)
kumodeck init # プロジェクトを作り、鍵を public/kumo-config.js に書き込みますcreateはスターターテンプレートをコピーするだけです(オフラインでも動き、サーバーには触りません)。ほかのテンプレートは--template phaserのように選べます(pixi、three、multiplayer-starter、functions-starterも)。Webアプリや、すでにあるコードで使うときは、createを飛ばしてプロジェクトのフォルダでkumodeck initを実行します(AIエージェントに頼んでもかまいません)。このページの残りの手順は同じです。
initはプロジェクトを作って環境(developmentとproduction)を2つ用意し、kumo.jsonを保存し(deployDir: "public"も入るので、kumodeck deployにフォルダの指定は要りません)、2本の公開鍵をpublic/kumo-config.jsに書き込みます。ページは、--devのURLとlocalhostではdevelopmentの鍵を、それ以外ではproductionの鍵を自動で選びます。秘密鍵は一度だけ返され、initは画面に出さずに.kumo/secrets.env(本人だけが読め、gitには入りません)に保存します。AIアシスタントの会話にも残りません。CIに使い、ブラウザには絶対に置かないでください。URLの名前(my-game)が使用済みなら、initはKUMODeckが示す空いている名前(my-game-2)を使って知らせます。
4. プロジェクトのルールを宣言する#
ONにする機能、価格、商品、マルチプレイのモードはkumo.config.jsonに書きます。ルールを持つのはサーバーなので、改造されたクライアントが価格を書き換えることはできません。
{
"features": { "hosting": true, "saves": true }
}kumodeck config push --env development機能はONにするまですべてOFFです。 上のfeaturesの行で、この例が使うもの(ホスティングとクラウドセーブ)だけをONにしています。それ以外は403 feature_disabledになり、使っていない機能で利用料を増やされることはありません。一覧はkumodeck features、詳しくは設定のリファレンス。
機能の名前の打ち間違いや、minPlayersがmaxPlayersより大きいモードのような誤りは、どこが間違っているかを正確なパスで示して反映を拒否します。本番で気づく前に、pushの時点で直せます。
5. SDKを呼ぶ#
SDKはAPIサーバーが/sdk.js(グローバルKumo)と/sdk.mjs(ESモジュール)で配信します。initは自動でゲストとしてログインするので、ページはすぐに使えます。ゲストは後からメールを連携でき、データは失われません。
<script src="https://api.kumodeck.com/sdk.js"></script>
<script type="module">
const kumo = await Kumo.init({ projectKey: 'pk_dev_…' }); // ここでゲストログイン
const saved = await kumo.saves.get('best'); // 初回は null
const score = 61;
if (score > (saved?.data.score ?? 0)) await kumo.saves.set('best', { score }); // どの端末でも続きから
</script>テンプレートではpublic/kumo-boot.jsがこれを済ませています。自分のアプリに足すのは上のコードだけです。スロットや上書きの防ぎ方はクラウドセーブ。
6. デプロイする#
kumodeck deploy --env development
# Deployed v1 to development: 5 files (22.3 KB)
# https://api.kumodeck.com/play/my-game--dev/deployはinitが保存したdeployDir(テンプレートならpublic/。無ければ./dist。フォルダを渡してもかまいません)をアップロードします。アップロードは内容のハッシュで管理され、サーバーがまだ持っていないファイルだけを送ります。50MBのサイトでスクリプトを1つ変えただけなら、送るのはその1ファイルです。deployの既定の環境はproductionです。その環境でhostingがOFFなら、deployがkumo.config.jsonでONにしてその環境へ反映し、1行で知らせます(ほかの機能を勝手にONにすることはありません)。
kumodeck config push --env production
kumodeck deploy --env production # → https://my-game.kumodeck.app/
kumodeck rollback 3 # 即座に公開中の版を v3 へ戻す7. Xでシェアする#
kumodeck share on # Xのカード画像・共有リンク・投稿ごとの流入を、両方の環境でON。カード用のタグを出す
kumodeck share link "first post" # 任意: 自分の投稿用の、流入を数えるURLshare onはkumo.config.jsonの3つの道具をONにして反映し、カード用のタグを出します。タグをindex.htmlの<head>に書いて(AIエージェントに頼んでも構いません)、デプロイし直します。するとページはXで大きなカードになるので、そのURLを投稿してください。テンプレートのShare on Xボタンはプレイヤーのスコアを挑戦状として投稿し、そのリンクから来た人には「Challenge: beat N!」が表示されます。Xでログインは OFF のままです。詳しくはXでのシェア。
次に読む#
- 基本の考え方 — プロジェクト、環境、鍵、プレイヤー(利用者)、マスターデータ
- ランキングはSkillで作る — AIエージェントに頼むと、Skillが自分のデータベースとFunctionsの上に組み立てます
- 友だちとオンラインで遊ぶ — ゲーム向け: AIエージェントに「オンラインで対戦できるようにして」と頼む
- マルチプレイ — ゲーム向け: クイックマッチ、部屋コード、共有状態
- Xでのシェア — カード、チャレンジ、投稿ごとの流入(ONにするまでは動きません)
- Functions — 自分のサーバーのプログラムとSQLデータベース
- 料金 — 手数料0%、無料枠なし、すべて原価
- セキュリティモデル — 公開鍵でできること・できないこと