mcpField
S
spacetimedb-cli

spacetimedb-cli

github.com/clockworklabsデータ・データベース25.4k113 回インストール今日更新
リポジトリ

spacetimedb-cli について

SpacetimeDB を使う開発者向けのコマンドラインガイドです。プロジェクト作成、モジュールのビルドと公開、データベース操作、サーバー管理に加え、一般的な手順とトラブルシューティングを説明します。

主な機能

  1. 01プロジェクト作成とモジュールのビルド
  2. 02指定サーバーへのデータベース公開
  3. 03SQL クエリとReducerの実行
  4. 04データベースとサーバーの管理
  5. 05ログインとクライアントバインディング生成

活用シーン

  1. 01SpacetimeDB プロジェクトのセットアップ
  2. 02ローカルまたは Maincloud へのモジュール公開
  3. 03データベースの照会やReducerの呼び出し
  4. 04ログイン・接続・ビルド問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/clockworklabs/spacetimedb --skill spacetimedb-cli

インストール後、Claude Code で/spacetimedb-cliを入力して読み込まれたか確認します。

詳細

SpacetimeDB CLI

プロジェクトの初期化、モジュールのビルド、データベースの公開、データのクエリ、サーバーの管理、CLI の問題のトラブルシューティングなど、spacetime CLI ツールについてユーザーがサポートを必要としている場合に、このスキルを使用します。

クイックリファレンス

プロジェクトの初期化と開発
# Initialize new project
spacetime init my-project --lang rust|csharp|typescript|cpp
spacetime init my-project --template <template-id>

# Build module
spacetime build                    # release build
spacetime build --debug            # faster iteration, slower runtime

# Dev mode (auto-rebuild, auto-publish, generates bindings)
spacetime dev
spacetime dev --client-lang typescript --module-bindings-path ./client/src/module_bindings

# Generate client bindings
spacetime generate --lang typescript|csharp|rust|unrealcpp --out-dir ./bindings --module-path ./server
公開とデプロイ
# Publish to Maincloud (default)
spacetime publish my-database --yes

# Publish to local server
spacetime publish my-database --server local --yes

# Clear database and republish
spacetime publish my-database --clear-database --yes
データベースの操作
# SQL queries
spacetime sql my-database "SELECT * FROM users"
spacetime sql my-database --interactive   # REPL mode

# Call reducers
spacetime call my-database my_reducer '{"arg1": "value", "arg2": 123}'

# Subscribe to changes
spacetime subscribe my-database "SELECT * FROM users" --num-updates 10

# View logs
spacetime logs my-database -f              # follow logs
spacetime logs my-database -n 100          # up to 100 log lines

# Describe schema
spacetime describe my-database --json
spacetime describe my-database table users --json
spacetime describe my-database reducer my_reducer --json
データベースの管理
# List databases
spacetime list

# Delete database
spacetime delete my-database

# Rename database
spacetime rename <database-identity> --to new-name
サーバーの管理
# List configured servers
spacetime server list

# Add server
spacetime server add local --url http://localhost:3000 --default
spacetime server add myserver --url https://my-spacetime.example.com

# Set default server
spacetime server set-default local

# Test connectivity
spacetime server ping local

# Start local instance
spacetime start

# Clear local data
spacetime server clear
認証
# Login (opens browser)
spacetime login

# Login with token
spacetime login --token <token>

# Show login status
spacetime login show

# Logout
spacetime logout

デフォルトサーバー

名前URL説明
maincloudhttps://maincloud.spacetimedb.com本番用クラウド(デフォルト)
localhttp://127.0.0.1:3000ローカル開発サーバー

一般的なワークフロー

新しいプロジェクトのセットアップ
# 1. Login
spacetime login

# 2. Create project
spacetime init my-game --lang rust
cd my-game

# 3. Start dev mode (auto-rebuilds and publishes)
spacetime dev
ローカル開発
# Start local server (in separate terminal)
spacetime start

# Publish to local
spacetime publish my-db --server local --clear-database --yes

# Query local database
spacetime sql my-db --server local "SELECT * FROM players"
クライアントバインディングの生成
# After building module
spacetime build
spacetime generate --lang typescript --out-dir ./client/src/bindings --module-path .

# Or use dev mode which auto-generates
spacetime dev --client-lang typescript --module-bindings-path ./client/src/bindings

よく使うフラグ

フラグ短縮形説明
--server-s接続先サーバー(ニックネーム、ホスト名、または URL)
--yes-y非対話モード(確認をスキップ)
--anonymous匿名 ID を使用
--module-path-pモジュールプロジェクトへのパス

トラブルシューティング

「ログインしていません」
spacetime login
# Or use --anonymous for public operations
「サーバーが応答しません」
spacetime server ping <server>
# For local: ensure spacetime start is running
「スキーマが競合しています」
# Clear data and republish
spacetime publish my-db --clear-database --yes
「ビルドに失敗しました」
# Check Rust/C# toolchain
rustup show
# For Rust modules, ensure wasm32-unknown-unknown target
rustup target add wasm32-unknown-unknown

モジュールの言語

サーバーサイド(モジュール): Rust、C#、TypeScript、C++ クライアント SDK: TypeScript、C#、Rust、Python、Unreal Engine CLI の generate の対象: TypeScript、C#、Rust、Unreal C++

注意事項

  • 多くのコマンドには UNSTABLE と記されており、変更される場合があります
  • 別途設定しない限り、デフォルトのサーバーは maincloud です
  • スクリプトで対話形式のプロンプトを避けるには、--yes フラグを使用します
  • 開発モードではファイルを監視し、変更時に自動で再ビルドします

コメント