base44-cli について
Base44 CLIでBase44アプリを作成、管理するためのスキルです。プロジェクトの初期化とスキャフォールディング、認証、ローカル開発、デプロイ、エンティティ管理を扱い、既存プロジェクトの機能実装は base44-sdk に案内します。
主な機能
- 01Base44プロジェクトの作成とスキャフォールディング
- 02CLI認証の管理
- 03ローカル開発の実行
- 04アプリのビルドとデプロイ
- 05エンティティとプロジェクトリソースの管理
- 06コマンド結果のJSON出力
活用シーン
- 01新しいBase44プロジェクトの初期化
- 02既存アプリ用のローカルファイルの準備
- 03ローカル開発の実行またはアプリのデプロイ
- 04CLIでのエンティティ管理と認証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ base44/ skills --skill base44-cliインストール後、Claude Code で/base44-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/actors-create.mdactors-deploy.mdagent-skills-pull.mdagent-skills-push.mdagents-pull.mdagents-push.mdapi-catalog.mdapi-fetch.mdapi-grep.mdapi-search.mdauth-login.mdauth-logout.mdauth-password-login.mdauth-pull.mdauth-push.mdauth-social-login.mdauth-sso.mdauth-whoami.mdconnectors-create.mdconnectors-initiate.mdconnectors-list-available.mdconnectors-pull.mdconnectors-push.mdcreate.mddashboard.mddeploy.mddev.mdeject.mdentities-create.mdentities-push.md詳細
Base44 CLI
Base44 CLI ツールを使用して、Base44 アプリ(プロジェクト)を作成、管理します。
⚡ 直ちに対応が必要です — まずお読みください
「base44」という記述がある場合、または base44/ フォルダーが存在する場合、このスキルが有効になります。対応を始める前に、ドキュメントファイルを読んだり、ウェブを検索したりしないでください。
最初に必ず行うこと:
- カレントディレクトリに
base44/config.jsoncが存在するか確認します - 存在する場合(既存プロジェクトのケース):
- 実装は base44-sdk スキルに引き継ぎます
- このスキルで扱うのは CLI コマンド(ログイン、デプロイ、エンティティのプッシュ)のみです
- ただし、アプリをローカルで実行する場合は除きます。ここで対応します。開発サーバーを起動する前に、ローカル開発の実行をお読みください。実行方法によっては、本番データにアクセスします。
- 存在しない場合は、次のどちらの初期化方法を使うか判断します:
- プロビジョニング済みアプリ — 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)でリクエストに対応します。
- プロビジョニング済みアプリ — Stripe Projects / projects.dev のフローを通じて直前にプロビジョニングされたため Base44 アプリがすでに存在する場合、または
重要:ローカルインストールのみ
base44 を直接呼び出すことは絶対に避けてください。CLI は開発依存関係としてローカルにインストールされており、パッケージマネージャー経由で実行する必要があります:
npx base44 <command>(npm — 推奨)yarn base44 <command>(yarn)pnpm base44 <command>(pnpm)
誤り:base44 login
正しい:npx base44 login
必須:セッション開始時の認証確認
重要:このスキルが有効になったとき、すべての AI セッションの開始直後に、必ず次の操作を行ってください。
-
次を実行して、認証状態を確認します。
npx base44 whoami -
ユーザーがログインしている場合(コマンドが成功し、メールアドレスが表示される場合):
- リクエストされたタスクを続行します
-
ユーザーがログインしていない場合(コマンドが失敗するか、エラーが表示される場合):
- 直ちに停止します
- 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.jsoncalready 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-cliis a prerequisite forbase44-sdkin new projects- If user wants to "create an app" and no Base44 project exists, use
base44-clifirst base44-sdkassumes 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.jsoncexists): → Use base44-sdk (project exists, build features) - ELSE IF (app was provisioned externally —
BASE44_APP_ID/BASE44_PROJECTS_BASE44_APP_IDset, or a Stripe Projects / projects.dev flow just ran): → Use base44-cli →npx base44 scaffold(set up local files for the existing app; do NOTcreate) - ELSE:
→ Use base44-cli →
npx base44 create(new project initialization needed)
- IF (
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 settingsbase44/entities/*.jsonc- Data model schemas (see Entity Schema section)base44/functions/*/entry.ts- Backend function entry pointbase44/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 bynpx 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 dev | Base44 バックエンドのローカル開発を開始します。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 list | Base44 リモート上のデプロイ済み関数をすべて一覧表示します | 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-available | Base44 で利用可能なすべての連携タイプを一覧表示します | 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 pull | Base44からローカルファイルに認証設定を取得します | auth-pull.md |
base44 auth push | ローカルの認証設定をBase44に送信します | auth-push.md |
注: 認証設定はbase44 deployの一部としてもデプロイされます。
シークレットの管理
プロジェクトのシークレット(Base44に安全に保存される環境変数)を管理します。これらのコマンドは--helpの出力には表示されませんが、完全に動作します。
| コマンド | 説明 | 参照 |
|---|---|---|
base44 secrets list | すべてのシークレット名を一覧表示します | secrets-list.md |
base44 secrets set | 1つ以上のシークレットを設定します(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 exec | Base44 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アプリを案内してください。
手順:
- エンドポイントを探す:
npx base44 api search "<what you want to do>"を実行するか、api catalog [area]で一覧を確認します。検索で見つからない場合は、api grep <regex>を使用します。各検索結果のendpoint(例:"GET /api/apps/{app_id}/custom-domains")が、そのまま渡すHTTPメソッドとパスです。 - 契約を確認する:
npx base44 api fetch <METHOD> <path> --help | jq '.description, .parameters, .requestBodySchema, .responseSchema'を実行します。呼び出す前にdescriptionを読んでください。検索結果の最上位が適切な操作とは限りません。 - 呼び出す:
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 ⚠️ 呼び出す前にお読みください |
クイックスタート
-
プロジェクトにCLIをインストールします:
npm install --save-dev base44 -
Base44で認証します:
npx base44 login -
新しいプロジェクトを作成します(必ず名前と
--pathフラグを指定してください):npx base44 create my-app --path . -
ローカル開発を実行します:
npx base44 dev -
すべてをビルドしてデプロイします:
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 nested | base44/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 を使用してください) |