옵션

base44-cli

base44/skills base44/skills

base44 CLI는 리소스 구성(엔티티, 백엔드 함수, AI 에이전트), 초기화 및 작업(리소스 생성, 배포) 등 base44 프로젝트와 관련된 모든 작업에 사용됩니다. 이 스킬에서는 리소스를 구성하는 방법을 배울 수 있습니다. 기능을 계획하거나 구현할 때는 반드시 이 스킬을 익혀야 합니다.

...모든 것을 확장하십시오
69
업데이트 된 시간 2026년 6월 29일

소개 base44-cli

base44-cli 스킬은 Base44 애플리케이션의 전체 수명 주기 동안 관리를 위한 포괄적인 명령줄 도구 세트를 제공합니다. 이 스킬은 프로젝트 초기화, 리소스 구성(엔티티, 백엔드 함수, AI 에이전트), 인증 및 배포 작업을 처리합니다. 이 스킬은 Base44 프로젝트를 다루는 개발자에게 필수적이며, 모든 CLI 관련 작업 및 구성 관리를 위한 주요 인터페이스 역할을 합니다.

이 스킬은 프레임워크에 구애받지 않는 프로젝트 생성 기능을 갖추고 있어 Vite, Next.js, Create React App, Svelte, Vue 등 널리 사용되는 프론트엔드 프레임워크와 원활하게 연동됩니다. 이 스킬은 두 가지 서로 다른 초기화 경로를 지원합니다: 완전히 새로운 프로젝트를 처음부터 생성하거나, Stripe Projects나 projects.dev와 같은 외부 흐름을 통해 프로비저닝된 기존 앱의 로컬 파일을 스캐폴딩하는 방식입니다. 이 CLI는 엄격한 인증 워크플로를 적용하며, 엔티티 구성, 백엔드 함수 설정, 배포 오케스트레이션 등 리소스 관리를 위한 명령어를 제공합니다.

이 스킬은 리소스 구성, 프로젝트 구조 관리, 배포 워크플로우 실행이 필요한 Base44 애플리케이션을 구축 및 배포하는 개발자를 위해 설계되었습니다. 이 스킬은 구성 및 CLI 명령어 계층 역할을 수행하며, 직접적인 SDK 구현과 관련이 없는 모든 작업을 처리합니다. 프로젝트에 기존 base44/config.jsonc 파일이 있고 실제 기능 구현이 필요한 경우, 이 스킬은 제어권을 base44-sdk 스킬로 지능적으로 이관하여 CLI 작업과 SDK 기반 개발 작업 간의 명확한 분리를 유지합니다.

자주 묻는 질문

base44-cli 과 base44-sdk는 각각 어떤 경우에 사용해야 하나요?

새 프로젝트를 생성하거나, 빈 디렉터리에서 프로젝트를 초기화하거나, 프로비저닝된 앱의 스캐폴딩 파일을 생성하거나, deploy 및 authentication과 같은 CLI 명령을 실행할 때는 base44-cli 를 사용하십시오. 기존 프로젝트(base44/config.jsonc가 있는 경우)에서 기능 구현 및 SDK 기반 개발을 수행할 때는 base44-sdk를 사용하십시오.

Base44 CLI 명령어는 어떻게 실행하나요?

CLI는 절대 직접 실행해서는 안 되며, 반드시 패키지 관리자를 통해 접근해야 합니다. npm의 경우 npx base44 , yarn의 경우 yarn base44 , pnpm의 경우 pnpm base44 을 사용하십시오. base44 login과 같은 직접 호출은 실패합니다.

'create' 명령어와 'scaffold' 명령어의 차이점은 무엇인가요?

기존 Base44 앱이 없는 상태에서 완전히 새로운 프로젝트를 시작할 때는 'npx base44 create'를 사용하세요. 이미 Base44 앱이 존재하는 경우(Stripe Projects/projects.dev를 통해 프로비저닝되었거나 BASE44_APP_ID가 설정된 경우), 해당 기존 앱에 대한 로컬 파일을 설정하려면 'npx base44 scaffold'를 사용하세요. 앱이 존재하는 상태에서 'create'를 사용하면 중복 앱이 생성됩니다.

Base44 CLI를 사용하기 전에 인증을 받아야 하나요?

네, 인증은 필수입니다. 매 세션 시작 시 'npx base44 whoami'를 실행하여 인증 상태를 확인하세요. 로그인되어 있지 않은 경우, CLI 작업을 진행하기 전에 'npx base44 login'을 실행하세요. Stripe Projects/projects.dev를 통해 프로비저닝된 앱의 경우, 환경 변수를 통해 인증 정보가 미리 설정되어 있을 수 있습니다.

어떤 프론트엔드 프레임워크가 지원되나요?

Base44 CLI는 프레임워크에 구애받지 않으며, Vite, Next.js, Create React App, Svelte, Vue 등 널리 사용되는 프론트엔드 프레임워크와 호환됩니다. CLI는 선택한 프론트엔드 프레임워크에 관계없이 프로젝트 초기화 및 구성을 처리합니다.

GitHub에서 보기

Base44 CLI

Create and manage Base44 apps (projects) using the Base44 CLI tool.

⚡ IMMEDIATE ACTION REQUIRED - Read This First

This skill activates on ANY mention of "base44" or when a base44/ folder exists. DO NOT read documentation files or search the web before acting.

Your first action MUST be:

  1. Check if base44/config.jsonc exists in the current directory
  2. If YES (existing project scenario):
    • Transfer to base44-sdk skill for implementation
    • This skill only handles CLI commands (login, deploy, entities push)
  3. If NO, decide between two initialization paths:
    • Provisioned app — the Base44 app already exists because it was just provisioned through a Stripe Projects / projects.dev flow, OR BASE44_APP_ID (or BASE44_PROJECTS_BASE44_APP_ID) is present in the environment or a .env/.env.local file:
      • Run npx base44 scaffold to set up local files for that existing app
      • DO NOT run npx base44 create — that creates a second, duplicate app. See scaffold.md.
    • New project — no app exists yet and none was provisioned:
      • This skill (base44-cli) handles the request; guide the user through npx base44 create
      • Do NOT activate base44-sdk yet

Critical: Local Installation Only

NEVER call base44 directly. The CLI is installed locally as a dev dependency and must be accessed via a package manager:

  • npx base44 <command> (npm - recommended)
  • yarn base44 <command> (yarn)
  • pnpm base44 <command> (pnpm)

WRONG: base44 loginRIGHT: npx base44 login

MANDATORY: Authentication Check at Session Start

CRITICAL: At the very start of every AI session when this skill is activated, you MUST:

  1. Check authentication status by running:

    npx base44 whoami
  2. If the user is logged in (command succeeds and shows an email):

    • Continue with the requested task
  3. If the user is NOT logged in (command fails or shows an error):

    • STOP immediately
    • DO NOT proceed with any CLI operations
    • Ask the user to login manually by running:
      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.

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 configuration (created by CLI)│   ├── config.jsonc             # Project settings, site config│   ├── .types/                  # Auto-generated TypeScript types (created by `types generate`)│   │   └── types.d.ts           # Module augmentation for @base44/sdk│   ├── entities/                # Entity schema definitions│   │   ├── task.jsonc│   │   └── board.jsonc│   ├── functions/               # Backend functions (optional)│   │   └── my-function/│   │       └── entry.ts│   ├── agents/                  # Agent configurations (optional)│   │   └── support_agent.jsonc│   └── connectors/              # OAuth connector configurations (optional)│       └── googlecalendar.jsonc├── src/                         # Frontend source code│   ├── api/│   │   └── base44Client.js      # Base44 SDK client│   ├── pages/│   ├── components/│   └── main.jsx├── index.html                   # SPA entry point├── package.json└── vite.config.js               # Or your framework's config

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/agents/*.jsonc - Agent configurations (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  "entitiesDir": "./entities",         // Optional: default "entities"  "functionsDir": "./functions",       // Optional: default "functions"  "agentsDir": "./agents",             // Optional: default "agents"  "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  }}

Config properties:

PropertyDescriptionDefault
nameProject name (required)-
descriptionProject description-
entitiesDirDirectory for entity schemas"entities"
functionsDirDirectory for backend functions"functions"
agentsDirDirectory for agent configs"agents"
connectorsDirDirectory for connector configs"connectors"
site.installCommandCommand to install dependencies-
site.buildCommandCommand to build the project-
site.serveCommandCommand to run dev server-
site.outputDirectoryBuild output directory for deployment-

Installation

Install the Base44 CLI as a dev dependency in your project:

npm install --save-dev base44

Important: Never assume or hardcode the base44 package version. Always install without a version specifier to get the latest version.

Then run commands using npx:

npx base44 <command>

Note: All commands in this documentation use npx base44. You can also use yarn base44, or pnpm base44 if preferred.

Global --app-id Option

The CLI has a global --app-id <id> option for commands that only need an app context, not local project files.

Resolution order: --app-id flag → BASE44_APP_ID environment variable → local base44/.app.jsonc

This is useful when you want to inspect or operate on an app without switching into a linked project directory. Common examples:

# Run a one-off script against a specific appcat ./script.ts | npx base44 exec --app-id app_123# Fetch logs for a deployed app without a local checkoutnpx base44 logs --app-id app_123 --level error

Use --app-id for app-scoped commands like exec and logs.

Do not use --app-id for commands that need local project files:

  • base44 create creates a new app, so it rejects --app-id
  • base44 dev runs from a linked local project, so it rejects --app-id
  • base44 deploy still requires a local project directory because it reads local resources

Available Commands

Authentication

CommandDescriptionReference
base44 loginAuthenticate with Base44 using device code flowauth-login.md
base44 logoutLogout from current deviceauth-logout.md
base44 whoamiDisplay current authenticated userauth-whoami.md

Project Management

CommandDescriptionReference
base44 createCreate a new Base44 project from a templatecreate.md ⚠️ MUST READ
base44 scaffoldScaffold a local project for an existing Base44 app (by app ID)scaffold.md
base44 linkLink an existing local project to Base44link.md
base44 ejectDownload the code for an existing Base44 projecteject.md
base44 dashboard openOpen the app dashboard in your browserdashboard.md

Development

CommandDescriptionReference
base44 devStart local development for your Base44 backend, and your frontend too when site.serveCommand is configureddev.md

Deployment

CommandDescriptionReference
base44 deployDeploy all resources (entities, functions, agents, connectors, auth config, and site)deploy.md

Entity Management

Action / CommandDescriptionReference
Create EntitiesDefine entities in base44/entities folderentities-create.md
base44 entities pushPush local entities to Base44entities-push.md
RLS PatternsRow-level security examples and operatorsrls-examples.md ⚠️ READ FOR RLS

Entity Schema (Quick Reference)

ALWAYS follow this exact structure when creating entity files:

File naming: base44/entities/{kebab-case-name}.jsonc (e.g., team-member.jsonc for TeamMember)

Schema template:

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

Field types: string, number, integer, boolean, array, object, binaryString formats: date, date-time, time, email, uri, hostname, ipv4, ipv6, uuid, file, regex, richtextFor enums: Add "enum": ["value1", "value2"] and optionally "default": "value1"Entity names: Must be alphanumeric only (pattern: /^[a-zA-Z0-9]+$/)

For complete documentation, see entities-create.md.

Function Management

Action / CommandDescriptionReference
Create FunctionsDefine functions in base44/functionsfunctions-create.md
base44 functions deploy [names...] [--force]Deploy local functions to Base44; optionally target specific functions or prune removed onesfunctions-deploy.md
base44 functions delete <names...>Delete one or more deployed functions from Base44functions-delete.md
base44 functions listList all deployed functions on Base44 remotefunctions-list.md
base44 functions pull [name]Pull deployed functions from Base44 to local filesfunctions-pull.md

Agent Management

Agents are conversational AI assistants that can interact with users, access your app's entities, and call backend functions. Use these commands to manage agent configurations.

Action / CommandDescriptionReference
Create AgentsDefine agents in base44/agents folderSee Agent Schema below
base44 agents pullPull remote agents to local filesagents-pull.md
base44 agents pushPush local agents to Base44agents-push.md

Note: Agent commands perform full synchronization - pushing replaces all remote agents with local ones, and pulling replaces all local agents with remote ones.

Agent Schema (Quick Reference)

File naming: base44/agents/{agent_name}.jsonc (e.g., support_agent.jsonc)

Schema template:

{  "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" }  ],  "whatsapp_greeting": "Hello! How can I help you today?"}

Naming rules:

  • Agent names must match pattern: /^[a-z0-9_]+$/ (lowercase alphanumeric with underscores, 1-100 chars)
  • Valid: support_agent, order_bot
  • Invalid: Support-Agent, OrderBot

Required fields: name, description, instructionsOptional fields: tool_configs (defaults to []), whatsapp_greeting

Tool config types:

  • Entity tools: entity_name + allowed_operations (array of: read, create, update, delete)
  • Backend function tools: function_name + description

Connector Management

Connectors let your app connect to external services (Google Calendar, Slack, Stripe, etc.). Most connectors use OAuth to provide access tokens for backend functions to call external APIs. Stripe is the exception — it is provisioned automatically on the server side with no OAuth browser flow.

Action / CommandDescriptionReference
Create ConnectorsDefine connectors in base44/connectors folderconnectors-create.md
base44 connectors list-availableList all available integration types from Base44connectors-list-available.md
base44 connectors pullPull remote connectors to local filesconnectors-pull.md
base44 connectors pushPush local connectors to Base44connectors-push.md

Note: Connector commands perform full synchronization - pushing replaces all remote connectors with local ones (and triggers OAuth for new OAuth connectors), and pulling replaces all local connectors with remote ones.

Connector Schema (Quick Reference)

File naming: base44/connectors/{type}.jsonc (e.g., googlecalendar.jsonc, slack.jsonc)

Schema template:

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

Required fields: typeOptional fields: scopes (defaults to [])

Available connector types: Run npx base44 connectors list-available to see all supported integration types.

Note: stripe is also a valid connector type but is not returned by list-available. Treat it as a supported type — it is provisioned automatically by Base44 with no OAuth browser flow. See connectors-create.md for details.

For complete documentation, see connectors-create.md.

Auth Configuration

Manage your app's authentication settings (e.g., username & password login). Auth config is stored in base44/auth/ and synced with Base44 via auth push/auth pull.

CommandDescriptionReference
base44 auth password-login <enable|disable>Enable or disable username & password authenticationauth-password-login.md
base44 auth social-login <provider> <enable|disable>Enable or disable social login (google, microsoft, facebook, apple)auth-social-login.md
base44 auth sso <enable|disable>Configure SSO identity provider (google, microsoft, github, okta, custom)auth-sso.md
base44 auth pullPull auth config from Base44 to local filesauth-pull.md
base44 auth pushPush local auth config to Base44auth-push.md

Note: Auth config is also deployed as part of base44 deploy.

Secrets Management

Manage project secrets (environment variables stored securely in Base44). These commands are hidden from --help output but are fully functional.

CommandDescriptionReference
base44 secrets listList the names of all secretssecrets-list.md
base44 secrets setSet one or more secrets (KEY=VALUE or --env-file)secrets-set.md
base44 secrets delete <key>Delete a secret by namesecrets-delete.md

Script Execution

Run one-off scripts against your app with the Base44 SDK pre-authenticated. Use it to perform CRUD operations on entities (base44.entities.MyEntity.list/create/update/delete), call backend functions (base44.functions.invoke("myFunction", args)), invoke agents, or access any other resource exposed by the SDK — without deploying a full function. Useful for data migrations, bulk operations, debugging, and scripted workflows.

CommandDescriptionReference
base44 execRun a script (via stdin) with the Base44 SDK pre-authenticatedexec.md

Type Generation

CommandDescriptionReference
base44 types generateGenerate TypeScript types (types.d.ts) from entities, functions, agents, and connectorstypes-generate.md

Output: base44/.types/types.d.ts — augments @base44/sdk module with typed registries (EntityTypeRegistry, FunctionNameRegistry, AgentNameRegistry, ConnectorTypeRegistry).

No authentication required. Runs entirely locally. Automatically updates tsconfig.json to include the generated types.

Site Management

CommandDescriptionReference
base44 site deployDeploy built site files to Base44 hostingsite-deploy.md
base44 site openOpen the deployed site in your browsersite-open.md

SPA only: Base44 hosting supports Single Page Applications with a single index.html entry point. All routes are served from index.html (client-side routing).

Quick Start

  1. Install the CLI in your project:

    npm install --save-dev base44
  2. Authenticate with Base44:

    npx base44 login
  3. Create a new project (ALWAYS provide name and --path flag):

    npx base44 create my-app --path .
  4. Run local development:

    npx base44 dev
  5. Build and deploy everything:

    npm run buildnpx base44 deploy -y

Or deploy individual resources:

  • npx base44 entities push - Push entities only
  • npx base44 functions deploy - Deploy functions only
  • npx base44 functions delete <name> - Delete a deployed function
  • npx base44 functions list - List all deployed functions
  • npx base44 functions pull - Pull deployed functions to local files
  • npx base44 agents push - Push agents only
  • npx base44 connectors pull - Pull connectors from Base44
  • npx base44 connectors push - Push connectors only
  • npx base44 auth pull - Pull auth config from Base44
  • npx base44 auth push - Push auth config only
  • npx base44 site deploy -y - Deploy site only

Common Workflows

Creating a New Project

⚠️ MANDATORY: Before running base44 create, you MUST read create.md for:

  • Template selection - Choose the correct template (backend-and-client vs backend-only)
  • Correct workflow - Different templates require different setup steps
  • Common pitfalls - Avoid folder creation errors that cause failures

Failure to follow the create.md instructions will result in broken project scaffolding.

Linking an Existing Project

# If you have base44/config.jsonc but no .app.jsoncnpx base44 link --create --name my-app

Running Local Development

# Starts the Base44 backend locallynpx base44 dev

If you want base44 dev to run your frontend too, verify base44/config.jsonc has site.serveCommand set correctly (for example, "serveCommand": "npm run dev"). When that field is present, base44 dev runs both the backend and the frontend together.

Deploying All Changes

# Generate types (optional, for TypeScript projects)npx base44 types generate# Build your project firstnpm run build# Deploy everything (entities, functions, and site)npx base44 deploy -y

Generating TypeScript Types

# Generate types from entities, functions, agents, and connectorsnpx base44 types generate

This creates base44/.types/types.d.ts with typed registries for the @base44/sdk module. Run this after changing entities, functions, agents, or connectors to keep your types in sync. No authentication required.

Deploying Individual Resources

# Push only entitiesnpx base44 entities push# Deploy only functions (all)npx base44 functions deploy# Deploy specific functionsnpx base44 functions deploy my-function other-function# Deploy and prune removed functionsnpx base44 functions deploy --force# Push only agentsnpx base44 agents push# Pull connectors from Base44npx base44 connectors pull# Push only connectorsnpx base44 connectors push# Deploy only sitenpx base44 site deploy -y

Opening the Dashboard

# Open app dashboard in browsernpx base44 dashboard

Authentication

Most commands require authentication. If you're not logged in, the CLI will automatically prompt you to login. Your session is stored locally and persists across CLI sessions.

Troubleshooting

ErrorSolution
Not authenticatedRun npx base44 login first
No entities foundEnsure entities exist in base44/entities/ directory
Entity not recognizedEnsure file uses kebab-case naming (e.g., team-member.jsonc not TeamMember.jsonc)
No functions foundEnsure functions exist in base44/functions/ with entry.ts or entry.js
No agents foundEnsure agents exist in base44/agents/ directory with valid .jsonc configs
Invalid agent nameAgent names must be lowercase alphanumeric with underscores only
No connectors foundEnsure connectors exist in base44/connectors/ directory with valid .jsonc configs
Invalid connector typeRun npx base44 connectors list-available to see valid types
Duplicate connector typeEach connector type can only be defined once per project
Connector authorization timeoutRe-run npx base44 connectors push and complete the OAuth flow in your browser
No site configuration foundCheck that site.outputDirectory is configured in project config
Site deployment failsEnsure you ran npm run build first and the build succeeded
Update available messageIf prompted to update, run npm install -g base44@latest (or use npx for local installs)

base44-cli 설치

스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.

ZIP 다운로드

저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.

git clone https://github.com/base44/skills/blob/main/skills/base44-cli/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

복사 복사
빠른 설정: skill 폴더를 .claude/skills/로 복사하면 Claude가 해당 스킬을 자동으로 감지하여 사용합니다.
저장소 base44/skills

관련 스킬

Verification &amp; Quality Assurance
업데이트 된 시간 2026년 6월 29일
klingai-upgrade-migration
업데이트 된 시간 2026년 7월 3일
Railway CLI Management
업데이트 된 시간 2026년 7월 2일
debug
업데이트 된 시간 2026년 7월 3일
OR