スターターテンプレート
スターターテンプレートは、Webアプリ(web-app)、小さなゲーム5つ、サーバーのプログラムの雛形(functions-starter)です。テンプレートがなくても使えます。自分のプロジェクトのフォルダでkumodeck initを実行するか、AIエージェントに頼んで整えてください。
Webアプリ#
web-appは、多くのAIツールが作るのと同じ形(React + Vite + TypeScript + Tailwind)の、小さな自分専用のメモアプリです。KUMODeckのログイン(まずゲスト、あとからメール)、自分のサーバーのプログラムとデータベース(Functions + D1。メモは本人にしか見えません)、共有・再読み込みできる本物のページのURL(/notes/123。"web": { "spaFallback": true })が入っています。
kumodeck create my-app --template web-app && cd my-app
kumodeck init # 公開鍵を public/kumo-config.js に書き込みます
npm install && kumodeck config push
npm run build # → dist/(kumo.json に deployDir "dist" が保存されています)
kumodeck deploy --env developmentサーバーのプログラム(kumodeck functions deploy)と手元での開発は、テンプレートのREADME.mdとAGENTS.mdにあります。
ゲーム#
コピーして、作り変えて、コマンド1つで公開できる、完成した遊べるゲームです。どれもゲストログイン、自己ベストを覚えるクラウドセーブ、挑戦状つきのShare on Xボタンを使っていて、オフラインでも動き続けます。ランキングが欲しくなったらAIエージェント(Claude Code・Codex・Cursorなど)に頼んでください。各テンプレートに入っているランキングのSkillが、自分のデータベースとFunctionsの上に組み立てます。
| テンプレート | エンジン | ゲーム | マルチプレイ |
|---|---|---|---|
vanilla-canvas | なし(素の<canvas>) | Star Catch — 30秒のアーケード | — |
phaser | Phaser 4.2.1 | Dune Runner — エンドレスラン | — |
pixi | PixiJS 8.21.0 | Bubble Pop — コンボタップ | — |
three | three.js 0.186.1 | Orb Garden — 3Dでボールを転がして集める | 共有の庭(最大8人) |
multiplayer-starter | なし | Cursor Party — ロビー、部屋コード、位置の同期、共有状態 | あり |
ゲームのテンプレートはビルド不要です。エンジンはバージョンを固定したCDNのURLから読み込み、public/フォルダがそのままサイトになります。
使い方#
kumodeck create my-runner --template phaser && cd my-runner
kumodeck init # 公開鍵を public/kumo-config.js に書き込みます
kumodeck config push --env development
kumodeck deploy --env development # kumo.json に deployDir "public" が保存されています
kumodeck share on # 任意: Xのカードと共有リンク--templateを省くとvanilla-canvasになります。createはCLIに同梱されたテンプレートからコピーするので、オフラインでも動き、サーバーには触りません。プロジェクトを作るのは次のinitです。ログイン済みならkumodeck create my-game --initで両方をまとめて実行できます。
kumo.config.jsonはpublic/の外に置くので、プロジェクトの詳細がプレイヤーに配信されることはありません。バンドラーを追加した場合は、その出力フォルダをデプロイします(kumodeck deploy dist、またはkumo.jsonのdeployDirを変更)。
構成#
my-game/
kumo.config.json マスターデータ(デプロイしない)
README.md
AGENTS.md AIのコーディングアシスタント向けの説明(コマンド・規則・SDKの例。デプロイしない)
CLAUDE.md `@AGENTS.md`の1行だけ。Claude Codeも同じファイルを読む
GEMINI.md `@./AGENTS.md`の1行だけ。Gemini CLIも同じファイルを読む
.agents/skills/ AIエージェント向けのSkill(レシピ)。一覧はINDEX.md(例: leaderboard/SKILL.md。デプロイしない)
.claude/skills/ 同じSkill(Claude Codeが見る所)
public/ そのままデプロイする
index.html
kumo-boot.js APIを見つけ、SDKを読み込み、ログインする。プレイを止めない
kumo-config.js 公開してよい: apiUrl + 公開鍵
game.jskumo-config.jsには環境ごとに1本ずつ公開鍵を置きます。REPLACE_MEが残っている間はkumodeck initが書き込みます(自分で書き換えたファイルには触りません)。kumo-boot.jsは、<slug>--devのURLとlocalhostではdevelopmentの鍵を、それ以外ではproductionの鍵を選びます。1本だけのprojectKey: 'pk_…'(以前の書き方)も引き続き使えます。
window.KUMO_CONFIG = {
apiUrl: '', // '' = ページを配信している場所(kumodeck deploy ならこれで正しい)
projectKeys: {
development: 'pk_dev_…',
production: 'pk_live_…' // 公開鍵なのでブラウザに置いてよい。sk_ の鍵は絶対に置かない
}
};AGENTS.mdは、アシスタント(Claude Code、Codex、Cursorなど)にゲームでの作業のしかたを伝えます。打つコマンド、アカウントはあなたがターミナルで作ること(アシスタントはパスワードを扱わない)、プレイヤーにバックエンドの名前を見せないこと、などです。Skill(一覧はINDEX.md)への案内も入っています。同じものが.agents/skills/(Codex・Cursorなど多くのエージェントが見る所)と.claude/skills/(Claude Code)にあります。ほかのファイルと同じように自由に書き換えてください。
Share on X#
どのテンプレートにも、結果画面にShare on Xボタンがあります。プレイヤーのスコアを付けてkumo.share({ kind: 'challenge', score })を呼びます。その投稿からゲームを開いた人には、メニューに「Challenge: beat N!」が出ます(kumo.share.incoming())。オフラインやシェアが OFF のときも、共有IDが付かないだけでXの投稿画面は開きます。kumo.config.jsonでは何も ON にしていません。カード画像や共有リンクが欲しくなったらkumodeck share onを実行してください。Xでのシェアを参照してください。
どのテンプレートでも使えるURLフラグ: ?player=2(同じブラウザで2人目のゲスト。マルチプレイを自分相手に試せます)、?offline=1、kumo-config.jsを上書きする?api=…&key=…。
サーバーのプログラム#
functions-starterはゲームではなく、アプリにもゲームにも使える、自分のサーバーのプログラムとSQLデータベースの出発点です。呼び出した利用者(APIではplayer)を確認し、自分のデータベースに書き込み、1時間ごとのジョブを動かす小さなAPIです。Functionsを参照してください。