mcpField
B
base44-cli

base44-cli

github.com/base44開発9211.2k 回インストール3 日前に更新
リポジトリ

base44-cli について

Base44 CLIでBase44アプリを作成、管理するためのスキルです。プロジェクトの初期化とスキャフォールディング、認証、ローカル開発、デプロイ、エンティティ管理を扱い、既存プロジェクトの機能実装は base44-sdk に案内します。

主な機能

  1. 01Base44プロジェクトの作成とスキャフォールディング
  2. 02CLI認証の管理
  3. 03ローカル開発の実行
  4. 04アプリのビルドとデプロイ
  5. 05エンティティとプロジェクトリソースの管理
  6. 06コマンド結果のJSON出力

活用シーン

  1. 01新しいBase44プロジェクトの初期化
  2. 02既存アプリ用のローカルファイルの準備
  3. 03ローカル開発の実行またはアプリのデプロイ
  4. 04CLIでのエンティティ管理と認証

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
actors-create.md
actors-deploy.md
agent-skills-pull.md
agent-skills-push.md
agents-pull.md
agents-push.md
api-catalog.md
api-fetch.md
api-grep.md
api-search.md
auth-login.md
auth-logout.md
auth-password-login.md
auth-pull.md
auth-push.md
auth-social-login.md
auth-sso.md
auth-whoami.md
connectors-create.md
connectors-initiate.md
connectors-list-available.md
connectors-pull.md
connectors-push.md
create.md
dashboard.md
deploy.md
dev.md
eject.md
entities-create.md
entities-push.md

詳細

Base44 CLI

Base44 CLI ツールを使用して、Base44 アプリ(プロジェクト)を作成、管理します。

⚡ 直ちに対応が必要です — まずお読みください

「base44」という記述がある場合、または base44/ フォルダーが存在する場合、このスキルが有効になります。対応を始める前に、ドキュメントファイルを読んだり、ウェブを検索したりしないでください。

最初に必ず行うこと:

  1. カレントディレクトリに base44/config.jsonc が存在するか確認します
  2. 存在する場合(既存プロジェクトのケース):
    • 実装は base44-sdk スキルに引き継ぎます
    • このスキルで扱うのは CLI コマンド(ログイン、デプロイ、エンティティのプッシュ)のみです
    • ただし、アプリをローカルで実行する場合は除きます。ここで対応します。開発サーバーを起動する前に、ローカル開発の実行をお読みください。実行方法によっては、本番データにアクセスします。
  3. 存在しない場合は、次のどちらの初期化方法を使うか判断します:
    • プロビジョニング済みアプリ — Stripe Projects / projects.dev のフローを通じて直前にプロビジョニングされたため Base44 アプリがすでに存在する場合、または BASE44_APP_ID(または BASE44_PROJECTS_BASE44_APP_ID)が環境または .env/.env.local ファイルに存在する場合:
      • npx base44 scaffold を実行して、その既存アプリのローカルファイルをセットアップします
      • npx base44 create は実行しないでください — 2つ目の重複アプリが作成されます。scaffold.mdを参照してください。
    • 新規プロジェクト — アプリがまだ存在せず、プロビジョニングもされていない場合:
      • このスキル(base44-cli)でリクエストに対応します。npx base44 create の実行を案内してください
      • まだ base44-sdk を有効にしないでください

重要:ローカルインストールのみ

base44 を直接呼び出すことは絶対に避けてください。CLI は開発依存関係としてローカルにインストールされており、パッケージマネージャー経由で実行する必要があります:

  • npx base44 <command>(npm — 推奨)
  • yarn base44 <command>(yarn)
  • pnpm base44 <command>(pnpm)

誤り:base44 login 正しい:npx base44 login

必須:セッション開始時の認証確認

重要:このスキルが有効になったとき、すべての AI セッションの開始直後に、必ず次の操作を行ってください。

  1. 次を実行して、認証状態を確認します。

    npx base44 whoami
    
  2. ユーザーがログインしている場合(コマンドが成功し、メールアドレスが表示される場合):

    • リクエストされたタスクを続行します
  3. ユーザーがログインしていない場合(コマンドが失敗するか、エラーが表示される場合):

    • 直ちに停止します
    • CLI 操作を続行しないでください
    • 次を実行して手動でログインするよう、ユーザーに依頼します。
      npx base44 login
      
    - Wait for the user to confirm they have logged in before continuing
    

This check is mandatory and must happen before executing any other Base44 CLI commands.

Provisioned via Stripe Projects / projects.dev? When the app was provisioned through that flow, the CLI seeds authentication from the BASE44_ACCESS_TOKEN / BASE44_REFRESH_TOKEN environment variables it injects (the BASE44_PROJECTS_*-prefixed names are normalized automatically). In that case npx base44 whoami already succeeds and you do not need an interactive npx base44 login.

Workspace API key set? If the BASE44_API_KEY environment variable is set to a workspace API key (prefixed b44k_), the CLI authenticates with it directly — npx base44 whoami and other commands succeed without an interactive login.

Overview

The Base44 CLI provides command-line tools for authentication, creating projects, managing entities, and deploying Base44 applications. It is framework-agnostic and works with popular frontend frameworks like Vite, Next.js, and Create React App, Svelte, Vue, and more.

When to Use This Skill vs base44-sdk

Use base44-cli when:

  • Creating a NEW Base44 project from scratch
  • Initializing a project in an empty directory
  • Setting up local files for an existing app that was provisioned externally (e.g., through a Stripe Projects / projects.dev flow) → use scaffold
  • Directory is missing base44/config.jsonc
  • User mentions: "create a new project", "initialize project", "setup a project", "start a new Base44 app"
  • Deploying, pushing entities, or authenticating via CLI
  • Working with CLI commands (npx base44 ...)

Use base44-sdk when:

  • Building features in an EXISTING Base44 project
  • base44/config.jsonc already exists
  • Writing JavaScript/TypeScript code using Base44 SDK
  • Implementing functionality, components, or features
  • User mentions: "implement", "build a feature", "add functionality", "write code"

Skill Dependencies:

  • base44-cli is a prerequisite for base44-sdk in new projects
  • If user wants to "create an app" and no Base44 project exists, use base44-cli first
  • base44-sdk assumes a Base44 project is already initialized

State Check Logic: Before selecting a skill, check:

  • IF (user mentions "create/build app" OR "make a project"):
    • IF (base44/config.jsonc exists): → Use base44-sdk (project exists, build features)
    • ELSE IF (app was provisioned externally — BASE44_APP_ID/BASE44_PROJECTS_BASE44_APP_ID set, or a Stripe Projects / projects.dev flow just ran): → Use base44-cli → npx base44 scaffold (set up local files for the existing app; do NOT create)
    • ELSE: → Use base44-cli → npx base44 create (new project initialization needed)

Project Structure

A Base44 project combines a standard frontend project with a base44/ configuration folder:

my-app/
├── base44/                      # Base44 の設定(CLI によって作成)
│   ├── config.jsonc             # プロジェクト設定、サイト設定
│   ├── .types/                  # 自動生成される TypeScript 型(`types generate` によって作成)
│   │   └── types.d.ts           # @base44/sdk のモジュール拡張
│   ├── entities/                # エンティティスキーマ定義
│   │   ├── task.jsonc
│   │   └── board.jsonc
│   ├── functions/               # バックエンド関数(任意)
│   │   └── my-function/
│   │       └── entry.ts
│   ├── actors/                  # リアルタイムアクター(任意)
│   │   └── ChatRoom/
│   │       └── entry.ts
│   ├── agents/                  # エージェント設定(任意)
│   │   └── support_agent.jsonc
│   ├── agent-skills/            # エージェントスキルの指示(任意)
│   │   └── pdf-export.md
│   └── connectors/              # OAuth コネクター設定(任意)
│       └── googlecalendar.jsonc
├── src/                         # フロントエンドのソースコード
│   ├── api/
│   │   └── base44Client.js      # Base44 SDK クライアント
│   ├── pages/
│   ├── components/
│   └── main.jsx
├── index.html                   # SPA エントリーポイント
├── package.json
└── vite.config.js               # または使用するフレームワークの設定

Key files:

  • base44/config.jsonc - Project name, description, site build settings
  • base44/entities/*.jsonc - Data model schemas (see Entity Schema section)
  • base44/functions/*/entry.ts - Backend function entry point
  • base44/actors/*/entry.ts - Realtime actor entry point (optional)
  • base44/agents/*.jsonc - Agent configurations (optional)
  • base44/agent-skills/*.md - Agent skill instructions (optional)
  • base44/.types/types.d.ts - Auto-generated TypeScript types for entities, functions, and agents (created by npx base44 types generate)
  • base44/connectors/*.jsonc - OAuth connector configurations (optional)
  • src/api/base44Client.js - Pre-configured SDK client for frontend use

config.jsonc example:

{
  "name": "My App",                    // Required: project name
  "description": "App description",    // Optional: project description
  "visibility": "public",              // Optional: "public" | "private" | "workspace"
  "entitiesDir": "./entities",         // Optional: default "entities"
  "functionsDir": "./functions",       // Optional: default "functions"
  "actorsDir": "./actors",             // Optional: default "actors"
  "agentsDir": "./agents",             // Optional: default "agents"
  "agentSkillsDir": "./agent-skills",  // Optional: default "agent-skills"
  "connectorsDir": "./connectors",     // Optional: default "connectors"
  "site": {                            // Optional: site deployment config
    "installCommand": "npm install",   // Optional: install dependencies
    "buildCommand": "npm run build",   // Optional: build command
    "serveCommand": "npm run dev",     // Optional: local dev server
    "outputDirectory": "./dist"        // Optional: build output directory
  }
}

設定プロパティ:

プロパティ説明デフォルト
nameプロジェクト名(必須)-
descriptionプロジェクトの説明-
visibilityアプリの公開範囲:public、private、または workspace-
entitiesDirエンティティスキーマのディレクトリ"entities"
functionsDirバックエンド関数のディレクトリ"functions"
actorsDirリアルタイムアクターのディレクトリ"actors"
agentsDirエージェント設定のディレクトリ"agents"
agentSkillsDirエージェントスキルの指示のディレクトリ"agent-skills"
connectorsDirコネクター設定のディレクトリ"connectors"
site.installCommand依存関係をインストールするコマンド-
site.buildCommandプロジェクトをビルドするコマンド-
site.serveCommand開発サーバーを起動するコマンド-
site.outputDirectoryデプロイ用のビルド出力ディレクトリ-

インストール

プロジェクトの開発依存関係として Base44 CLI をインストールします。

npm install --save-dev base44

重要: base44 パッケージのバージョンを決めつけたり、固定したりしないでください。常にバージョン指定なしでインストールし、最新バージョンを取得してください。

その後、npx を使ってコマンドを実行します。

npx base44 <command>

注: このドキュメントに記載されているすべてのコマンドでは npx base44 を使用します。必要に応じて、yarn base44 または pnpm base44 も使用できます。

グローバル --app-id オプション

CLI には、ローカルのプロジェクトファイルではなく、アプリのコンテキストのみを必要とするコマンド向けのグローバルな --app-id <id> オプションがあります。

解決の優先順位: --app-id フラグ → BASE44_APP_ID 環境変数 → ローカルの base44/.app.jsonc

リンク済みのプロジェクトディレクトリに切り替えずに、アプリを調査または操作したい場合に便利です。一般的な例:

# Run a one-off script against a specific app
cat ./script.ts | npx base44 exec --app-id app_123

# Fetch logs for a deployed app without a local checkout
npx base44 logs --app-id app_123 --level error

exec や logs のような、アプリを対象とするコマンドには --app-id を使用します。

ローカルのプロジェクトファイルが必要なコマンドには、--app-id を使用しないでください。

  • base44 create は新しいアプリを作成するため、--app-id を受け付けません
  • base44 dev はリンク済みのローカルプロジェクトから実行されるため、--app-id を受け付けません
  • base44 deploy はローカルのリソースを読み込むため、ローカルのプロジェクトディレクトリが引き続き必要です

グローバルな --json オプション

CLI には、コマンドの出力を人間向けの形式ではなく、機械可読な JSON ドキュメントとして stdout に出力するグローバルな --json オプションがあります。また、非インタラクティブモードが強制されるため(スピナー/ステータスメッセージ/ログは stderr に出力されます)、stdout は純粋な JSON のままです。jq やほかのプログラムに安全にパイプできます。

npx base44 connectors list-available --json
npx base44 logs --app-id app_123 --json

利用可能なコマンド

認証
コマンド説明リファレンス
base44 loginデバイスコードフローを使用して Base44 で認証しますauth-login.md
base44 logout現在のデバイスからログアウトしますauth-logout.md
base44 whoami現在認証されているユーザーを表示しますauth-whoami.md
プロジェクト管理
コマンド説明リファレンス
base44 createテンプレートから新しい Base44 プロジェクトを作成しますcreate.md ⚠️ 必ずお読みください
base44 scaffold既存の Base44 アプリ(アプリ ID を指定)のローカルプロジェクトをスキャフォールドしますscaffold.md
base44 link既存のローカルプロジェクトを Base44 にリンクしますlink.md
base44 eject既存の Base44 プロジェクトのコードをダウンロードしますeject.md
base44 dashboard openブラウザーでアプリのダッシュボードを開きますdashboard.md
base44 visibility <level>サーバー上でアプリの公開範囲を設定します(public、private、または workspace)visibility.md
ワークスペース管理

ワークスペース(組織とも呼ばれます)では、共有メンバーシップのもとでアプリをグループ化します。デフォルトでは、base44 create/base44 link --create は個人用ワークスペースを使用します。別のワークスペースを対象にするには、-w, --workspace <id> を指定します。

コマンド説明リファレンス
base44 workspace list所属しているワークスペースを一覧表示しますworkspace-list.md
base44 workspace get <workspace-id>ID で指定した単一のワークスペースの詳細を表示しますworkspace-get.md
base44 workspace move [workspace-id]現在のアプリを別のワークスペースに移動しますworkspace-move.md
開発
コマンド説明リファレンス
base44 devBase44 バックエンドのローカル開発を開始します。site.serveCommand が設定されている場合は、フロントエンドも開始しますdev.md
base44 dev --remote本番環境のバックエンドに対して、フロントエンドをローカルで配信しますdev.md
デプロイ
コマンド説明リファレンス
base44 buildアプリ ID を埋め込んでサイトをビルドします。単独の npm run build の代わりに使用してください—
base44 deployすべてのリソース(エンティティ、関数、アクター、エージェント、エージェントスキル、コネクター、認証設定、サイト)をデプロイします。最初にビルドするか確認します。--build/--no-build を指定することもできますdeploy.md
エンティティ管理
アクション/コマンド説明リファレンス
エンティティの作成base44/entities フォルダーでエンティティを定義しますentities-create.md
base44 entities pushローカルのエンティティを Base44 にプッシュしますentities-push.md
RLS のパターン行レベルセキュリティの例と演算子rls-examples.md ⚠️ RLS についてお読みください
エンティティスキーマ(クイックリファレンス)

エンティティファイルを作成するときは、必ず次の構造に従ってください。

ファイル名: base44/entities/{kebab-case-name}.jsonc(例:TeamMember の場合は team-member.jsonc)

スキーマテンプレート:

{
  "name": "EntityName",
  "type": "object",
  "properties": {
    "field_name": {
      "type": "string",
      "description": "Field description"
    }
  },
  "required": ["field_name"]
}

フィールドの型: string、number、integer、boolean、array、object、binary 文字列のフォーマット: date、date-time、time、email、uri、hostname、ipv4、ipv6、uuid、file、regex、richtext 列挙型の場合: "enum": ["value1", "value2"] を追加し、必要に応じて "default": "value1" も追加します。 エンティティ名: 英数字のみを使用する必要があります(パターン:/^[a-zA-Z0-9]+$/)

詳細については、entities-create.md を参照してください。

関数の管理
アクション/コマンド説明リファレンス
関数を作成base44/functions に関数を定義しますfunctions-create.md
base44 functions deploy [names...] [--force]ローカルの関数を Base44 にデプロイします。必要に応じて、特定の関数を対象にしたり、削除済みの関数を整理したりできますfunctions-deploy.md
base44 functions delete <names...>Base44 にデプロイされた1つ以上の関数を削除しますfunctions-delete.md
base44 functions listBase44 リモート上のデプロイ済み関数をすべて一覧表示しますfunctions-list.md
base44 functions pull [name]Base44 にデプロイされた関数をローカルファイルに取得しますfunctions-pull.md
ワークフローの実行

ワークフローは自動化システムです(cron スケジュール、エンティティトリガー、コネクターイベント、アプリ内エージェントのアクション)。これらのコマンドは読み取り専用です。「どのワークフローが存在するか」と「スケジュールされた処理が失敗したか、またその理由」を確認できます。

コマンド説明リファレンス
base44 workflows listこのアプリのワークフローを、ステータスと実行概要とともに一覧表示しますworkflows-list.md
base44 workflows runs [--status <s>] [--since <t>]ワークフローの実行履歴を新しい順に一覧表示します。失敗した実行には根本原因のエラーが含まれますworkflows-runs.md
アクターの管理

アクターは、WebSocket 経由で動作する状態を保持するリアルタイムのサーバールームです。ルーム ID ごとにライブインスタンスが1つあり、その ID に接続されたすべてのクライアントで共有されます。マルチプレイヤーセッション、共同編集ボード、プレゼンスとライブカーソル、ルーム内チャット、ライブオークションに使用できます。

アクターは、SDK が管理する認証を用いた直接接続を使用します。ユーザーの帰属確認には検証済みの conn.identity を使用し、検証済みのルーム結果を永続化するには this.client.asServiceRole を使用してください。アクターはアプリのシークレットを受け取りません。シークレットを必要とする処理はバックエンド関数に配置してください。作成時の仕様については、actors-create.md を参照してください。

アクション/コマンド説明リファレンス
アクターを作成base44/actors にアクターを定義しますactors-create.md
base44 actors deploy [names...]ローカルのアクターを Base44 にデプロイします。必要に応じて、特定のアクターを対象にできますactors-deploy.md
base44 actors delete <names...>デプロイ済みアクターを削除します(公開済みスクリプトが破棄されます)actors-deploy.md
Actor のレイアウト(クイックリファレンス)

ファイル名: base44/actors/{ActorName}/entry.ts — フォルダーが Actor の識別子になります。

// base44/actors/ChatRoom/entry.ts
import { Actor } from "base44:runtime/actors";

export default class ChatRoom extends Actor {
  handleConnect(conn) { conn.send({ type: "welcome" }); }   // this client only
  handleMessage(conn, msg) {
    // Always validate: the payload is attacker-controlled and msg can even be null.
    if (msg?.type !== "message" || typeof msg.text !== "string") return;
    this.broadcast({ type: "message", text: msg.text.slice(0, 2000) });   // the whole room
  }
  handleClose(conn) {}
}

命名規則: Actor 名は JavaScript のクラスバインディングと WebSocket の接続ハンドラーになるため、[A-Za-z_][A-Za-z0-9_]* に一致する必要があります(最大 128 文字、/、-、.、: は使用不可)。また、JavaScript の予約語ではなく、バックエンド関数名と重複せず、サブフォルダーにネストすることもできません。CLI はアップロード前にこれらすべてをローカルでチェックします。名前にドットを含むフォルダーはスキップされるため、ChatRoom.bak/ は安全な作業用スペースとして使えます。

  • 有効: ChatRoom、BoardRoom、Lobby
  • 無効: chat-room、games/Arena、class

必須: base44:runtime/actors の Actor を継承するクラスをデフォルトエクスポートする entry.ts(または entry.js)。TypeScript では、Actor の抽象メンバーである handleTick() {} も宣言してください。

関数との違い: アップロードされるのは Actor 自身のフォルダーのみ(base44/shared/ は含まれません)。--force によるプルーニングはなく、list/pull コマンドもなく、ローカルの base44 dev ランタイムもありません。名前をパスのようにすることはできず、自動化もサポートされていません。

完全なドキュメントについては、actors-create.md を参照してください。

エージェント管理

エージェントは、ユーザーと対話し、アプリのエンティティにアクセスして、バックエンド関数を呼び出せる会話型 AI アシスタントです。次のコマンドでエージェントの設定を管理できます。

アクション/コマンド説明参照
エージェントを作成base44/agents フォルダーにエージェントを定義下記のエージェントスキーマを参照
base44 agents pullリモートのエージェントをローカルファイルに取得agents-pull.md
base44 agents pushローカルのエージェントを Base44 にプッシュagents-push.md

注: エージェントコマンドは完全同期を行います。プッシュするとリモートのすべてのエージェントがローカルのエージェントで置き換えられ、プルするとローカルのすべてのエージェントがリモートのエージェントで置き換えられます。

エージェントスキーマ(クイックリファレンス)

ファイル名: base44/agents/{agent_name}.jsonc(例: support_agent.jsonc)

スキーマテンプレート:

{
  "name": "agent_name",
  "description": "Brief description of what this agent does",
  "instructions": "Detailed instructions for the agent's behavior",
  "tool_configs": [
    // Entity tool - gives agent access to entity operations
    { "entity_name": "tasks", "allowed_operations": ["read", "create", "update", "delete"] },
    // Backend function tool - gives agent access to a function
    { "function_name": "send_email", "description": "Send an email notification" },
    // Server route tool - gives agent access to one of a full-stack app's server routes
    { "tool_name": "order_summary", "route_path": "/api/orders/summary", "method": "get", "description": "Summarize the user's recent orders" }
  ],
  "memory_config": {                 // Optional: lets the agent remember facts across conversations
    "enabled": true,
    "scope": "both",                 // "global" | "user" | "both"
    "include_other_conversation_context": false,
    "instructions": null
  },
  "whatsapp_greeting": "Hello! How can I help you today?"
}

命名規則:

  • エージェント名は次のパターンに一致する必要があります: /^[a-z0-9_]+$/(小文字の英数字とアンダースコア、1~100 文字)
  • 有効: support_agent、order_bot
  • 無効: Support-Agent、OrderBot

必須フィールド: name、description、instructions 任意フィールド: tool_configs(デフォルトは [])、memory_config、whatsapp_greeting

ツール設定の種類:

  • エンティティツール: entity_name + allowed_operations(次の値を含む配列: read、create、update、delete)
  • バックエンド関数ツール: function_name + description
  • サーバールートツール(フルスタックアプリ): tool_name(英字、数字、_、- を使った 1~64 文字)+ route_path(アプリ相対パスで、単一の / から始まり、クエリ文字列なし)+ method(get|post|put|patch|delete、デフォルトは post)+ description(デフォルトは "agent server route")

メモリ設定フィールド(すべて任意。詳細は agents-push.md を参照): enabled(bool、デフォルトは true)、scope(global|user|both、デフォルトは both)、include_other_conversation_context(bool、デフォルトは false)、instructions(string|null、デフォルトは null)

エージェントスキルの管理

エージェントスキルは、アプリの AI エージェントができることを拡張する、再利用可能な Markdown の指示です。以下のコマンドで管理できます。

アクション/コマンド説明参照
エージェントスキルを作成base44/agent-skills フォルダーにスキルを定義しますagent-skills-push.md
base44 agent-skills pullリモートのエージェントスキルをローカルファイルに取り込みますagent-skills-pull.md
base44 agent-skills pushローカルのエージェントスキルを Base44 にプッシュしますagent-skills-push.md

注記: エージェントスキルのコマンドは完全同期を行います。プッシュするとすべてのリモートスキルがローカルのスキルで置き換えられ、プルするとすべてのローカルスキルがリモートのスキルで置き換えられます。

エージェントスキルのスキーマ(クイックリファレンス)

ファイル名: base44/agent-skills/{skill-name}.md(例:pdf-export.md)

スキーマテンプレート:

---
description: Export the current report as a PDF and attach it to the conversation.
---

Use this skill when the user asks to export, download, or share a report as a PDF.

1. Call the `generate_report_pdf` function with the current report's entity ID.
2. Attach the returned file URL in your reply.

命名規則: スキル名(.md を除いたファイル名)は、パターン /^[a-z0-9]+(-[a-z0-9]+)*$/(小文字、ハイフン区切り、1~64 文字)に一致する必要があります。

  • 有効:pdf-export、order-lookup
  • 無効:PdfExport、pdf_export

必須フィールド: description(フロントマター、1~1024 文字)、本文(Markdown コンテンツ、1~15000 文字)

詳しいドキュメントは、agent-skills-push.md を参照してください。

コネクターの管理

コネクターを使うと、アプリを外部サービス(Google Calendar、Slack、Stripe など)に接続できます。ほとんどのコネクターは OAuth を使用してアクセストークンを提供し、バックエンド関数から外部 API を呼び出せるようにします。例外は Stripe で、OAuth のブラウザーフローを使わず、サーバー側で自動的にプロビジョニングされます。

アクション/コマンド説明参照
コネクターを作成base44/connectors フォルダーにコネクターを定義しますconnectors-create.md
base44 connectors list-availableBase44 で利用可能なすべての連携タイプを一覧表示しますconnectors-list-available.md
base44 connectors initiate --integration-type <t> [--scopes <s...>]コネクターを初期化して OAuth フローを開始します。--app-id を指定すれば、プロジェクトがない状態でも動作しますconnectors-initiate.md
base44 connectors pullリモートのコネクターをローカルファイルに取り込みますconnectors-pull.md
base44 connectors pushローカルのコネクターを Base44 にプッシュしますconnectors-push.md

注記: コネクターのコマンドは完全同期を行います。プッシュするとすべてのリモートコネクターがローカルのコネクターで置き換えられ(新しい OAuth コネクターでは OAuth も開始されます)、プルするとすべてのローカルコネクターがリモートのコネクターで置き換えられます。

コネクターのスキーマ(クイックリファレンス)

ファイル名: base44/connectors/{type}.jsonc(例:googlecalendar.jsonc、slack.jsonc)

スキーマテンプレート:

{
  "type": "googlecalendar",
  "scopes": [
    "https://www.googleapis.com/auth/calendar.readonly",
    "https://www.googleapis.com/auth/calendar.events"
  ]
}

必須フィールド: type 任意のフィールド: scopes(デフォルトは[])

利用可能なコネクタータイプ: npx base44 connectors list-availableを実行すると、サポートされているすべての統合タイプを確認できます。

注: stripeも有効なコネクタータイプですが、list-availableでは返されません。サポートされているタイプとして扱ってください。OAuthのブラウザーフローなしで、Base44によって自動的にプロビジョニングされます。詳細はconnectors-create.mdを参照してください。

詳細なドキュメントはconnectors-create.mdを参照してください。

認証の設定

アプリの認証設定(ユーザー名とパスワードによるログインなど)を管理します。認証設定はbase44/auth/に保存され、auth push/auth pullを使ってBase44と同期されます。

コマンド説明参照
base44 auth password-login <enable|disable>ユーザー名とパスワードによる認証を有効または無効にしますauth-password-login.md
base44 auth social-login <provider> <enable|disable>ソーシャルログイン(google、microsoft、facebook、apple)を有効または無効にしますauth-social-login.md
base44 auth sso <enable|disable>SSO ID プロバイダー(google、microsoft、github、okta、custom)を設定しますauth-sso.md
base44 auth pullBase44からローカルファイルに認証設定を取得しますauth-pull.md
base44 auth pushローカルの認証設定をBase44に送信しますauth-push.md

注: 認証設定はbase44 deployの一部としてもデプロイされます。

シークレットの管理

プロジェクトのシークレット(Base44に安全に保存される環境変数)を管理します。これらのコマンドは--helpの出力には表示されませんが、完全に動作します。

コマンド説明参照
base44 secrets listすべてのシークレット名を一覧表示しますsecrets-list.md
base44 secrets set1つ以上のシークレットを設定します(KEY=VALUEまたは--env-file)secrets-set.md
base44 secrets delete <key>名前を指定してシークレットを削除しますsecrets-delete.md
スクリプトの実行

Base44 SDKで事前認証された状態で、アプリに対して単発のスクリプトを実行します。エンティティに対するCRUD操作(base44.entities.MyEntity.list/create/update/delete)、バックエンド関数の呼び出し(base44.functions.invoke("myFunction", args))、エージェントの呼び出し、またはSDKが公開するその他のリソースへのアクセスに使用できます。関数全体をデプロイする必要はありません。データ移行、一括操作、デバッグ、スクリプト化されたワークフローに役立ちます。

コマンド説明参照
base44 execBase44 SDKで事前認証された状態でスクリプトを実行します(標準入力経由)exec.md
型の生成
コマンド説明参照
base44 types generateエンティティ、関数、アクター、エージェント、コネクターからTypeScript型(types.d.ts)を生成しますtypes-generate.md

出力: base44/.types/types.d.ts — @base44/sdkモジュールを、型付けされたレジストリー(EntityTypeRegistry、FunctionNameRegistry、AgentNameRegistry、ConnectorTypeRegistry、ActorNameRegistry)で拡張します。

認証は不要です。 すべてローカルで実行されます。生成された型を含めるようにtsconfig.jsonを自動的に更新します。

サイト管理
コマンド説明リファレンス
base44 site deployビルド済みのサイトファイルをBase44のホスティングにデプロイしますsite-deploy.md
base44 site openデプロイ済みのサイトをブラウザーで開きますsite-open.md

SPAのみ:Base44のホスティングは、単一のindex.htmlエントリーポイントを持つシングルページアプリケーションに対応しています。すべてのルートはindex.htmlから配信されます(クライアント側ルーティング)。

その他のAPI操作

上記に専用コマンドがないBase44プラットフォームのタスク(カスタムドメイン、URLリダイレクト、SEO設定、アプリユーザー、コラボレーターと所有権、分析、セキュリティスキャン、ワークスペースのメンバーとグループ、CSVインポートなど)では、base44 apiを使用して公開APIエンドポイントを直接検索し、呼び出してください。サーバーのOpenAPI仕様を介して、CLIのログイン情報でApps APIとWorkspace APIを利用できます。

専用コマンドは、依頼された内容をそのまま実行できる場合にのみ優先してください(base44 secrets、base44 functions、base44 logs、base44 deploy、およびこのスキルのその他のコマンド)。依頼されていない操作も行う場合(まずリファレンスを読んでください)は、代わりにbase44 apiを使用してください。

APIで操作できるのはアプリとワークスペースであり、ご自身のBase44アカウントではありません。パスワード、メールアドレス、プロフィールを操作する機能はありません。それらについては、Base44のWebアプリを案内してください。

手順:

  1. エンドポイントを探す: npx base44 api search "<what you want to do>"を実行するか、api catalog [area]で一覧を確認します。検索で見つからない場合は、api grep <regex>を使用します。各検索結果のendpoint(例:"GET /api/apps/{app_id}/custom-domains")が、そのまま渡すHTTPメソッドとパスです。
  2. 契約を確認する: npx base44 api fetch <METHOD> <path> --help | jq '.description, .parameters, .requestBodySchema, .responseSchema'を実行します。呼び出す前にdescriptionを読んでください。検索結果の最上位が適切な操作とは限りません。
  3. 呼び出す: npx base44 api fetch <METHOD> <path> [--body <json>]を実行します。参照のみの場合は--read-onlyを追加します。
コマンド説明リファレンス
base44 api search <text...>動作の内容から公開APIの全操作を検索しますapi-search.md
base44 api catalog [area]APIのエリア一覧、または指定したエリア内の全操作を表示しますapi-catalog.md
base44 api grep <pattern>検索で見つからない場合に、正規表現でAPI仕様を検索しますapi-grep.md
base44 api fetch <METHOD> <path>ログイン情報を使って操作を呼び出します。契約を確認するには、パスの後に--helpを追加しますapi-fetch.md ⚠️ 呼び出す前にお読みください

クイックスタート

  1. プロジェクトにCLIをインストールします:

    npm install --save-dev base44
    
  2. Base44で認証します:

    npx base44 login
    
  3. 新しいプロジェクトを作成します(必ず名前と--pathフラグを指定してください):

    npx base44 create my-app --path .
    
  4. ローカル開発を実行します:

    npx base44 dev
    
  5. すべてをビルドしてデプロイします:

    npx base44 deploy --build -y
    

または、個別のリソースをデプロイします:

  • npx base44 entities push - エンティティのみをプッシュ
  • npx base44 functions deploy - 関数のみをデプロイ
  • npx base44 functions delete <name> - デプロイ済みの関数を削除
  • npx base44 functions list - デプロイ済みの関数をすべて一覧表示
  • npx base44 functions pull - デプロイ済みの関数をローカルファイルにプル
  • npx base44 actors deploy - リアルタイムアクターのみをデプロイ
  • npx base44 actors delete <name> - デプロイ済みのアクターを削除
  • npx base44 agents push - エージェントのみをプッシュ
  • npx base44 agent-skills push - エージェントスキルのみをプッシュ
  • npx base44 connectors pull - Base44からコネクターをプル
  • npx base44 connectors push - コネクターのみをプッシュ
  • npx base44 auth pull - Base44から認証設定をプル
  • npx base44 auth push - 認証設定のみをプッシュ
  • npx base44 site deploy -y - サイトのみをデプロイ

よくあるワークフロー

新しいプロジェクトの作成

⚠️ 必須:base44 create を実行する前に、必ず create.md を読んでください。内容は以下のとおりです。

  • テンプレートの選択 - 正しいテンプレート(backend-and-client と backend-only のいずれか)を選択してください
  • 正しいワークフロー - テンプレートによって必要なセットアップ手順が異なります
  • よくある落とし穴 - 失敗の原因となるフォルダー作成エラーを避けてください

create.md の手順に従わないと、プロジェクトのスキャフォールディングが壊れます。

既存プロジェクトのリンク
# If you have base44/config.jsonc but no .app.jsonc
npx base44 link --create --name my-app
ローカル開発の実行

常に CLI 経由で実行してください。モードは 2 つあります。

コマンドバックエンド + データ
npx base44 devローカル — 使い捨てで、起動するたびに空になり、停止すると消えます
npx base44 dev --remote本番 — 実際のアプリのライブデータ

base44 dev はローカルバックエンド(エンティティ、関数、認証)を起動し、base44/config.jsonc で site.serveCommand が設定されている場合は、フロントエンドも提供します。バックエンドのみのプロジェクトでは、 それ以外は必要ありません。 --remote は実際のバックエンドに対してフロントエンドのみを実行するため、リンク済みプロジェクトと site.serveCommand の両方が必要です。

自分で npm run dev を実行しないでください。CLI が設定する環境変数がないと、アプリは接続可能なバックエンドを 持たず、開発サーバーが代わりに使用するコマンドを表示します。

デフォルトでは npx base44 dev を使用してください。 --remote では、すべての書き込みがライブアプリに反映されます。vite の起動行には、どちらのモードでもバックエンドが表示されます:[base44] Proxy enabled: /api -> <target>。どちらを起動したか伝えてください。オプションについては、dev.md を参照してください。

すべての変更をデプロイする
# Generate types (optional, for TypeScript projects)
npx base44 types generate

# Deploy everything (entities, functions, and site), building the site first
npx base44 deploy --build -y

npm run build ではなく、CLI 経由でビルドしてください。npx base44 build は VITE_BASE44_APP_ID を設定しますが、通常の npm run build では設定されません。そのため、生成されたバンドルが自身のアプリを解決できず、デプロイ先のサイトですべての API 呼び出しが失敗します。npx base44 deploy は最初にビルドするかどうかを確認します。--build/--no-build を指定すると事前に回答できます(非対話モードではデフォルトでアップロードのみとなるため、CI の動作は変わりません)。

TypeScript 型の生成
# Generate types from entities, functions, actors, agents, and connectors
npx base44 types generate

これにより、@base44/sdk モジュール用の型付きレジストリを含む base44/.types/types.d.ts が作成されます。エンティティ、関数、アクター、エージェント、コネクターを変更した後に実行して、型を最新の状態に保ってください。認証は不要です。

個別のリソースをデプロイする
# Push only entities
npx base44 entities push

# Deploy only functions (all)
npx base44 functions deploy
# Deploy specific functions
npx base44 functions deploy my-function other-function
# Deploy and prune removed functions
npx base44 functions deploy --force

# Deploy only actors (all)
npx base44 actors deploy
# Deploy specific actors
npx base44 actors deploy ChatRoom BoardRoom
# Tear down a deployed actor
npx base44 actors delete ChatRoom

# Push only agents
npx base44 agents push

# Push only agent skills
npx base44 agent-skills push

# Pull connectors from Base44
npx base44 connectors pull

# Push only connectors
npx base44 connectors push

# Deploy only site
npx base44 site deploy -y
ダッシュボードを開く
# Open app dashboard in browser
npx base44 dashboard

認証

ほとんどのコマンドでは認証が必要です。ログインしていない場合、CLI が自動的にログインを求めます。セッションはローカルに保存され、CLI のセッションをまたいで保持されます。

トラブルシューティング

エラー解決方法
認証されていません最初に npx base44 login を実行してください
エンティティが見つかりませんbase44/entities/ ディレクトリにエンティティが存在することを確認してください
エンティティが認識されませんファイル名がケバブケースになっていることを確認してください(例:TeamMember.jsonc ではなく team-member.jsonc)
関数が見つかりませんbase44/functions/ に entry.ts または entry.js を含む関数が存在することを確認してください
アクターが見つかりませんbase44/actors/<ActorName>/entry.ts としてアクターが存在することを確認してください(base44/actors/ 直下には配置しないでください)
無効なアクター名アクター名は [A-Za-z_][A-Za-z0-9_]* に一致する必要があります(/、-、.、: は使用できません)。JS の予約語を避け、入れ子にすることはできません。アップロード前にローカルで検出されます
actors cannot be nestedbase44/actors/<ActorName>/entry.ts にフラット化するか、entry.ts という名前を付けたヘルパーの名前を変更してください。base44/actors/ 内のすべてのエントリファイルがアクターとして扱われます
アクターと関数の名前が重複しています同じ名前空間にデプロイされるため、どちらかの名前を変更してください
アクターファイルが関数バケットで拒否されましたbase44:runtime/actors をインポートするファイルは base44/actors/<ActorName>/entry.ts に配置する必要があります。base44/functions/ から移動してください
エージェントが見つかりませんbase44/agents/ ディレクトリに、有効な .jsonc 設定を含むエージェントが存在することを確認してください
無効なエージェント名エージェント名には、小文字の英数字とアンダースコアのみを使用してください
エージェントスキルが見つかりませんbase44/agent-skills/ ディレクトリに、有効な .md ファイルのスキルファイルが存在することを確認してください
無効なスキルファイルスキルファイル名は小文字とハイフンで構成し、フロントマターに description を含める必要があります
プッシュがキャンセルされた/--yes が必要ですagents push、agent-skills push、entities push、connectors push は破壊的な完全同期です。対話形式で確認するか、CI/非対話モードでは -y/--yes を渡してください
コネクターが見つかりませんbase44/connectors/ ディレクトリに、有効な .jsonc 設定を含むコネクターが存在することを確認してください
無効なコネクタータイプ有効なタイプを確認するには npx base44 connectors list-available を実行してください
コネクタータイプが重複しています各コネクタータイプはプロジェクトごとに 1 回のみ定義できます
コネクターの認証がタイムアウトしましたnpx base44 connectors push を再実行し、ブラウザーで OAuth フローを完了してください
サイト設定が見つかりませんプロジェクト設定で site.outputDirectory が構成されていることを確認してください
サイトのデプロイに失敗しました最初にサイトをビルドし(npx base44 build または npx base44 deploy --build)、ビルドが成功したことを確認してください
デプロイしたサイトの API 呼び出しがすべて失敗しますアプリ ID を含めずにバンドルがビルドされました。npm run build だけでなく npx base44 build で再ビルドし、再デプロイしてください
更新可能というメッセージが表示されます更新を求められた場合は、npm install -g base44@latest を実行してください(ローカルにインストールする場合は npx を使用してください)

コメント