---
title: "はじめかた"
description: "KUMODeckは、バイブコーディングのためのフラットなバックエンドです（Webアプリ・ゲームなど）。ホスティング、自分のサーバーのプログラムとデータベース、利用者のログイン、クラウドセーブ、マルチプレイのルームを、1つのSDKと1つのCLIで扱え、どれもAIエージェントに頼んで整えられます。"
url: "/ja/docs/getting-started/"
lang: ja
index: "/ja/llms.txt"
---
# はじめかた

KUMODeckは、バイブコーディングのためのフラットなバックエンドです（Webアプリ・ゲームなど）。ホスティング、自分のサーバーのプログラムとデータベース、利用者のログイン、クラウドセーブ、マルチプレイのルームを、**1つのSDK**と**1つのCLI**で扱え、どれもAIエージェントに頼んで整えられます。このページでは例として、スターターテンプレートの小さなゲームで進めます（Webアプリでも手順は同じです）。何もない状態から、プレイヤーごとの自己ベストを覚えるゲームを公開し、Xに投稿するところまで進みます。どの手順もターミナルのコマンド1つです。

## 1. CLIを入れてアカウントを作る

```sh
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エージェントから使う](/ja/docs/claude-code/index.md)を参照してください。

> **ヒント** サーバーを自分で動かす場合は、リポジトリで`pnpm install && pnpm dev`を実行すると、組み込みPostgres付きで`http://localhost:4000`にすべてが立ち上がります（Docker不要）。このページの手順はすべてローカルでも動きます。

## 2. 前払いで入金する

```sh
kumodeck billing topup                # 最低5ドル。Stripeの支払いページを出して開き、支払いが済むまで待ちます
# $5.00 を支払いました（カードの手数料 $0.45・実費）— 前払い残高に $4.55 を追加しました
```

無料枠はありません。最初のリクエストから、プロジェクトが使った分（APIリクエスト、ホスティング、セーブ、マルチプレイ、カード画像、Functions）を、AIの提供元のAPIクレジットのように前払い残高から**原価で**差し引きます。そのため、新しいアカウントはプロジェクトの作成・デプロイの前に入金します。小さなアプリやゲームなら5ドルで長くもちます（[試算](/ja/docs/pricing/index.md)）。支払いはStripeの画面で本人が行い、CLIはカード情報を見ません。残高はいつでも`kumodeck billing`で確認でき、ダッシュボード（お金 → 前払い）では自動チャージや残高不足のメールも設定できます。

残高が**0ドル以下**で、ほかに埋めるもの（失敗していない自動チャージ）が無い間は、アプリの利用者側の処理が止まり（利用者には中立の表示）、新しいプロジェクトの作成とデプロイも`402`で断られます（エラーに`kumodeck billing topup`が出ます）。止まっているかどうかは`kumodeck billing`と`kumodeck whoami`がはっきり表示します。ダッシュボード・設定の反映・入金は止まらず、入金されればすべて自動で再開します。詳しくは[前払い残高](/ja/docs/pricing/index.md#前払い残高)。

## 3. テンプレートからプロジェクトを作る

```sh
kumodeck create my-game && cd my-game       # 遊べるゲーム（テンプレート: vanilla-canvas）
kumodeck init                               # プロジェクトを作り、鍵を public/kumo-config.js に書き込みます
```

`create`は[スターターテンプレート](/ja/docs/templates/index.md)をコピーするだけです（オフラインでも動き、サーバーには触りません）。ほかのテンプレートは`--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`に書きます。ルールを持つのは**サーバー**なので、改造されたクライアントが価格を書き換えることはできません。

```json kumo.config.json
{
  "features": { "hosting": true, "saves": true }
}
```

```sh
kumodeck config push --env development
```

**機能はONにするまですべてOFFです。** 上の`features`の行で、この例が使うもの（ホスティングとクラウドセーブ）だけをONにしています。それ以外は`403 feature_disabled`になり、使っていない機能で利用料を増やされることはありません。一覧は`kumodeck features`、詳しくは[設定のリファレンス](/ja/docs/reference/config/index.md#features)。

機能の名前の打ち間違いや、`minPlayers`が`maxPlayers`より大きいモードのような誤りは、どこが間違っているかを正確なパスで示して反映を拒否します。本番で気づく前に、pushの時点で直せます。

## 5. SDKを呼ぶ

SDKはAPIサーバーが`/sdk.js`（グローバル`Kumo`）と`/sdk.mjs`（ESモジュール）で配信します。`init`は自動で**ゲスト**としてログインするので、ページはすぐに使えます。ゲストは後からメールを連携でき、データは失われません。

```html
<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`がこれを済ませています。自分のアプリに足すのは上のコードだけです。スロットや上書きの防ぎ方は[クラウドセーブ](/ja/docs/guides/saves/index.md)。

## 6. デプロイする

```sh
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にすることはありません）。

```sh
kumodeck config push --env production
kumodeck deploy --env production            # → https://my-game.kumodeck.app/
kumodeck rollback 3                         # 即座に公開中の版を v3 へ戻す
```

## 7. Xでシェアする

```sh
kumodeck share on                           # Xのカード画像・共有リンク・投稿ごとの流入を、両方の環境でON。カード用のタグを出す
kumodeck share link "first post"            # 任意: 自分の投稿用の、流入を数えるURL
```

`share on`は`kumo.config.json`の3つの道具をONにして反映し、カード用のタグを出します。タグを`index.html`の`<head>`に書いて（AIエージェントに頼んでも構いません）、デプロイし直します。するとページはXで大きなカードになるので、そのURLを投稿してください。テンプレートの**Share on X**ボタンはプレイヤーのスコアを挑戦状として投稿し、そのリンクから来た人には「Challenge: beat N!」が表示されます。Xでログインは OFF のままです。詳しくは[Xでのシェア](/ja/docs/guides/sharing/index.md)。

## 次に読む

- [基本の考え方](/ja/docs/concepts/index.md) — プロジェクト、環境、鍵、プレイヤー（利用者）、マスターデータ
- [ランキングはSkillで作る](/ja/docs/concepts/index.md) — AIエージェントに頼むと、Skillが自分のデータベースとFunctionsの上に組み立てます
- [友だちとオンラインで遊ぶ](/ja/docs/guides/play-online/index.md) — ゲーム向け: AIエージェントに「オンラインで対戦できるようにして」と頼む
- [マルチプレイ](/ja/docs/guides/multiplayer/index.md) — ゲーム向け: クイックマッチ、部屋コード、共有状態
- [Xでのシェア](/ja/docs/guides/sharing/index.md) — カード、チャレンジ、投稿ごとの流入（ONにするまでは動きません）
- [Functions](/ja/docs/guides/functions/index.md) — 自分のサーバーのプログラムとSQLデータベース
- [料金](/ja/docs/pricing/index.md) — 手数料0%、無料枠なし、すべて原価
- [セキュリティモデル](/ja/docs/security/index.md) — 公開鍵でできること・できないこと
