> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Base44 CLI

> צור ונהל אפליקציות Base44 (פרויקטים) באמצעות כלי Base44 CLI.

<Warning>
  דף זה הוא חלק ממיומנות של סוכן קידוד AI ונכתב לסוכנים, לא לבני אדם. לתיעוד Base44 הקריא לבני אדם, ראה את [תיעוד המפתחים](/developers).
</Warning>

# Base44 CLI

צור ונהל אפליקציות Base44 (פרויקטים) באמצעות כלי Base44 CLI.

## ⚡ פעולה מיידית נדרשת - קרא זאת תחילה

מיומנות זו מופעלת בכל אזכור של "base44" או כאשר קיימת תיקיית `base44/`. **אל תקרא קבצי תיעוד או תחפש באינטרנט לפני פעולה.**

**הפעולה הראשונה שלך חייבת להיות:**

1. בדוק אם `base44/config.jsonc` קיים בתיקייה הנוכחית
2. אם **כן** (תרחיש פרויקט קיים):
   * העבר למיומנות base44-sdk ליישום
   * מיומנות זו מטפלת רק בפקודות CLI (login, deploy, entities push)
3. אם **לא**, החלט בין שני נתיבי אתחול:
   * **אפליקציה מוקצית** — אפליקציית Base44 כבר קיימת כי הוקצתה זה עתה דרך זרימת Stripe Projects / projects.dev, או `BASE44_APP_ID` (או `BASE44_PROJECTS_BASE44_APP_ID`) קיים בסביבה או בקובץ `.env`/`.env.local`:
     * הרץ `npx base44 scaffold` להגדרת קבצים מקומיים לאותה אפליקציה **קיימת**
     * **אל תריץ `npx base44 create`** — זה יוצר אפליקציה שנייה, כפולה. ראה [scaffold.md](https://docs.base44.com/developers/skills/base44-cli/references/scaffold.md).
   * **פרויקט חדש** — אין אפליקציה עדיין ואין אחת שהוקצתה:
     * מיומנות זו (base44-cli) מטפלת בבקשה; הנחה את המשתמש דרך `npx base44 create`
     * אל תפעיל את base44-sdk עדיין

## קריטי: התקנה מקומית בלבד

לעולם אל תקרא `base44` ישירות. ה-CLI מותקן מקומית כתלות dev וחייב להיות נגיש דרך package manager:

* `npx base44 <command>` (npm - מומלץ)
* `yarn base44 <command>` (yarn)
* `pnpm base44 <command>` (pnpm)

WRONG: `base44 login`
RIGHT: `npx base44 login`

## חובה: בדיקת אימות בתחילת סשן

**קריטי**: בתחילת כל סשן AI כאשר מיומנות זו מופעלת, אתה חייב:

1. **בדוק סטטוס אימות** על ידי הרצת:
   ```bash theme={null}
   npx base44 whoami
   ```

2. **אם המשתמש מחובר** (הפקודה מצליחה ומציגה אימייל):
   * המשך במשימה המבוקשת

3. **אם המשתמש אינו מחובר** (הפקודה נכשלת או מציגה שגיאה):
   * **עצור מיד**
   * **אל תמשיך** עם פעולות CLI כלשהן
   * **בקש מהמשתמש להתחבר ידנית** על ידי הרצת:
     ```bash theme={null}
     npx base44 login
     ```
   ```
   - המתן שהמשתמש יאשר שהתחבר לפני שתמשיך
   ```

**בדיקה זו חובה וחייבת לקרות לפני ביצוע כל פקודת Base44 CLI אחרת.**

**מוקצה דרך Stripe Projects / projects.dev?** כאשר האפליקציה מוקצית בזרימה זו, ה-CLI זורע אימות ממשתני הסביבה `BASE44_ACCESS_TOKEN` / `BASE44_REFRESH_TOKEN` שהוא מזריק (השמות עם קידומת `BASE44_PROJECTS_*` מנורמלים אוטומטית). במקרה כזה `npx base44 whoami` כבר מצליח ואינך צריך `npx base44 login` אינטראקטיבי.

## סקירה כללית

Base44 CLI מספק כלים של שורת פקודה לאימות, יצירת פרויקטים, ניהול entities ופריסת אפליקציות Base44. הוא אינו תלוי בפריימוורק ועובד עם פריימוורקים פופולריים של frontend כמו Vite, Next.js, ו-Create React App, Svelte, Vue ועוד.

## מתי להשתמש במיומנות זו לעומת base44-sdk

**השתמש ב-base44-cli כאשר:**

* יוצר פרויקט Base44 **חדש** מאפס
* מאתחל פרויקט בתיקייה ריקה
* מגדיר קבצים מקומיים לאפליקציה **קיימת** שהוקצתה חיצונית (למשל, דרך זרימת Stripe Projects / projects.dev) → השתמש ב-`scaffold`
* תיקייה חסרה `base44/config.jsonc`
* המשתמש מזכיר: "create a new project", "initialize project", "setup a project", "start a new Base44 app"
* פורס, דוחף entities, או מזדהה דרך CLI
* עובד עם פקודות CLI (`npx base44 ...`)

**השתמש ב-base44-sdk כאשר:**

* בונה תכונות בפרויקט Base44 **קיים**
* `base44/config.jsonc` כבר קיים
* כותב קוד JavaScript/TypeScript באמצעות Base44 SDK
* מיישם פונקציונליות, רכיבים או תכונות
* המשתמש מזכיר: "implement", "build a feature", "add functionality", "write code"

**תלויות מיומנות:**

* `base44-cli` הוא **תנאי מקדים** ל-`base44-sdk` בפרויקטים חדשים
* אם המשתמש רוצה "create an app" ואין פרויקט Base44, השתמש תחילה ב-`base44-cli`
* `base44-sdk` מניח שפרויקט Base44 כבר מאותחל

**לוגיקת בדיקת מצב:**
לפני בחירת מיומנות, בדוק:

* IF (המשתמש מזכיר "create/build app" OR "make a project"):
  * IF (`base44/config.jsonc` קיים):
    → השתמש ב-**base44-sdk** (הפרויקט קיים, בנה תכונות)
  * ELSE IF (האפליקציה הוקצתה חיצונית — `BASE44_APP_ID`/`BASE44_PROJECTS_BASE44_APP_ID` מוגדר, או זרימת Stripe Projects / projects.dev רצה זה עתה):
    → השתמש ב-**base44-cli** → `npx base44 scaffold` (הגדר קבצים מקומיים לאפליקציה הקיימת; אל `create`)
  * ELSE:
    → השתמש ב-**base44-cli** → `npx base44 create` (נדרש אתחול פרויקט חדש)

## מבנה פרויקט

פרויקט Base44 משלב פרויקט frontend סטנדרטי עם תיקיית תצורת `base44/`:

```
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
```

**קבצי מפתח:**

* `base44/config.jsonc` - שם פרויקט, תיאור, הגדרות site build
* `base44/entities/*.jsonc` - סכמות מודל נתונים (ראה סעיף Entity Schema)
* `base44/functions/*/entry.ts` - נקודת כניסה של פונקציית backend
* `base44/agents/*.jsonc` - תצורות סוכן (אופציונלי)
* `base44/.types/types.d.ts` - סוגי TypeScript שנוצרים אוטומטית עבור entities, functions, ו-agents (נוצר על ידי `npx base44 types generate`)
* `base44/connectors/*.jsonc` - תצורות OAuth connector (אופציונלי)
* `src/api/base44Client.js` - SDK client מוגדר מראש לשימוש ב-frontend

**דוגמת config.jsonc:**

```jsonc theme={null}
{
  "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
  }
}
```

**מאפייני תצורה:**

| מאפיין                 | תיאור                    | ברירת מחדל     |
| ---------------------- | ------------------------ | -------------- |
| `name`                 | שם פרויקט (נדרש)         | -              |
| `description`          | תיאור פרויקט             | -              |
| `entitiesDir`          | תיקייה לסכמות entity     | `"entities"`   |
| `functionsDir`         | תיקייה לפונקציות backend | `"functions"`  |
| `agentsDir`            | תיקייה לתצורות agent     | `"agents"`     |
| `connectorsDir`        | תיקייה לתצורות connector | `"connectors"` |
| `site.installCommand`  | פקודה להתקנת תלויות      | -              |
| `site.buildCommand`    | פקודה לבניית הפרויקט     | -              |
| `site.serveCommand`    | פקודה להרצת שרת dev      | -              |
| `site.outputDirectory` | תיקיית פלט build לפריסה  | -              |

## התקנה

התקן את Base44 CLI כתלות dev בפרויקט שלך:

```bash theme={null}
npm install --save-dev base44
```

**חשוב:** לעולם אל תניח או תקבע את גרסת חבילת `base44`. תמיד התקן בלי מציין גרסה כדי לקבל את הגרסה האחרונה.

ואז הרץ פקודות באמצעות `npx`:

```bash theme={null}
npx base44 <command>
```

**הערה:** כל הפקודות בתיעוד זה משתמשות ב-`npx base44`. ניתן גם להשתמש ב-`yarn base44`, או `pnpm base44` אם מועדף.

## אפשרות `--app-id` גלובלית

ל-CLI יש אפשרות גלובלית `--app-id <id>` עבור פקודות שצריכות רק הקשר של אפליקציה, לא קבצי פרויקט מקומיים.

**סדר פתרון:** דגל `--app-id` → משתנה סביבה `BASE44_APP_ID` → `base44/.app.jsonc` מקומי

זה שימושי כשאתה רוצה לבדוק או לפעול על אפליקציה מבלי לעבור לתיקיית פרויקט מקושרת. דוגמאות נפוצות:

```bash theme={null}
# 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
```

השתמש ב-`--app-id` לפקודות ברמת אפליקציה כמו `exec` ו-`logs`.

**אל** תשתמש ב-`--app-id` לפקודות שצריכות קבצי פרויקט מקומיים:

* `base44 create` יוצר אפליקציה חדשה, אז הוא דוחה `--app-id`
* `base44 dev` רץ מפרויקט מקומי מקושר, אז הוא דוחה `--app-id`
* `base44 deploy` עדיין דורש תיקיית פרויקט מקומית כי הוא קורא משאבים מקומיים

## פקודות זמינות

### אימות

| פקודה           | תיאור                                  | הפניה                                                                                            |
| --------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `base44 login`  | אמת עם Base44 באמצעות device code flow | [auth-login.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-login.md)   |
| `base44 logout` | התנתק מהמכשיר הנוכחי                   | [auth-logout.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-logout.md) |
| `base44 whoami` | הצג את המשתמש המאומת הנוכחי            | [auth-whoami.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-whoami.md) |

### ניהול פרויקט

| פקודה                   | תיאור                                                 | הפניה                                                                                                    |
| ----------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `base44 create`         | צור פרויקט Base44 חדש מתבנית                          | [create.md](https://docs.base44.com/developers/skills/base44-cli/references/create.md) ⚠️ **חובה לקרוא** |
| `base44 scaffold`       | הקם פרויקט מקומי לאפליקציית Base44 קיימת (לפי app ID) | [scaffold.md](https://docs.base44.com/developers/skills/base44-cli/references/scaffold.md)               |
| `base44 link`           | קשר פרויקט מקומי קיים ל-Base44                        | [link.md](https://docs.base44.com/developers/skills/base44-cli/references/link.md)                       |
| `base44 eject`          | הורד את הקוד לפרויקט Base44 קיים                      | [eject.md](https://docs.base44.com/developers/skills/base44-cli/references/eject.md)                     |
| `base44 dashboard open` | פתח את לוח האפליקציה בדפדפן שלך                       | [dashboard.md](https://docs.base44.com/developers/skills/base44-cli/references/dashboard.md)             |

### פיתוח

| פקודה        | תיאור                                                                                    | הפניה                                                                            |
| ------------ | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `base44 dev` | התחל פיתוח מקומי ל-Base44 backend שלך, וגם ל-frontend שלך כאשר `site.serveCommand` מוגדר | [dev.md](https://docs.base44.com/developers/skills/base44-cli/references/dev.md) |

### פריסה

| פקודה           | תיאור                                                                             | הפניה                                                                                  |
| --------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `base44 deploy` | פרוס את כל המשאבים (entities, functions, agents, connectors, auth config, ו-site) | [deploy.md](https://docs.base44.com/developers/skills/base44-cli/references/deploy.md) |

### ניהול Entity

| פעולה / פקודה          | תיאור                                   | הפניה                                                                                                               |
| ---------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Create Entities        | הגדר entities בתיקיית `base44/entities` | [entities-create.md](https://docs.base44.com/developers/skills/base44-cli/references/entities-create.md)            |
| `base44 entities push` | דחוף entities מקומיים ל-Base44          | [entities-push.md](https://docs.base44.com/developers/skills/base44-cli/references/entities-push.md)                |
| RLS Patterns           | דוגמאות ואופרטורים של אבטחת רמת שורה    | [rls-examples.md](https://docs.base44.com/developers/skills/base44-cli/references/rls-examples.md) ⚠️ **קרא ל-RLS** |

#### סכמת Entity (הפניה מהירה)

תמיד עקוב אחר המבנה המדויק הזה בעת יצירת קבצי entity:

**מתן שם לקבצים:** `base44/entities/{kebab-case-name}.jsonc` (למשל, `team-member.jsonc` עבור `TeamMember`)

**תבנית סכמה:**

```jsonc theme={null}
{
  "name": "EntityName",
  "type": "object",
  "properties": {
    "field_name": {
      "type": "string",
      "description": "Field description"
    }
  },
  "required": ["field_name"]
}
```

**סוגי שדה:** `string`, `number`, `integer`, `boolean`, `array`, `object`, `binary`
**פורמטי string:** `date`, `date-time`, `time`, `email`, `uri`, `hostname`, `ipv4`, `ipv6`, `uuid`, `file`, `regex`, `richtext`
**עבור enums:** הוסף `"enum": ["value1", "value2"]` ואופציונלית `"default": "value1"`
**שמות entity:** חייבים להיות אלפאנומריים בלבד (תבנית: `/^[a-zA-Z0-9]+$/`)

לתיעוד מלא, ראה [entities-create.md](https://docs.base44.com/developers/skills/base44-cli/references/entities-create.md).

### ניהול Function

| פעולה / פקודה                                  | תיאור                                                                                       | הפניה                                                                                                      |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Create Functions                               | הגדר פונקציות ב-`base44/functions`                                                          | [functions-create.md](https://docs.base44.com/developers/skills/base44-cli/references/functions-create.md) |
| `base44 functions deploy [names...] [--force]` | פרוס פונקציות מקומיות ל-Base44; אופציונלית מכוון לפונקציות ספציפיות או מנקה פונקציות שהוסרו | [functions-deploy.md](https://docs.base44.com/developers/skills/base44-cli/references/functions-deploy.md) |
| `base44 functions delete <names...>`           | מחק פונקציה אחת או יותר שנפרסו מ-Base44                                                     | [functions-delete.md](https://docs.base44.com/developers/skills/base44-cli/references/functions-delete.md) |
| `base44 functions list`                        | פרט את כל הפונקציות שנפרסו ב-Base44 מרחוק                                                   | [functions-list.md](https://docs.base44.com/developers/skills/base44-cli/references/functions-list.md)     |
| `base44 functions pull [name]`                 | משוך פונקציות שנפרסו מ-Base44 לקבצים מקומיים                                                | [functions-pull.md](https://docs.base44.com/developers/skills/base44-cli/references/functions-pull.md)     |

### ניהול Agent

Agents הם עוזרי AI שיחתיים שיכולים לתקשר עם משתמשים, לגשת ל-entities של האפליקציה שלך, ולקרוא לפונקציות backend. השתמש בפקודות אלה לניהול תצורות agent.

| פעולה / פקודה        | תיאור                               | הפניה                                                                                            |
| -------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------ |
| Create Agents        | הגדר agents בתיקיית `base44/agents` | ראה Agent Schema למטה                                                                            |
| `base44 agents pull` | משוך agents מרוחקים לקבצים מקומיים  | [agents-pull.md](https://docs.base44.com/developers/skills/base44-cli/references/agents-pull.md) |
| `base44 agents push` | דחוף agents מקומיים ל-Base44        | [agents-push.md](https://docs.base44.com/developers/skills/base44-cli/references/agents-push.md) |

**הערה:** פקודות agent מבצעות סנכרון מלא - דחיפה מחליפה את כל ה-agents המרוחקים במקומיים, ומשיכה מחליפה את כל ה-agents המקומיים במרוחקים.

#### סכמת Agent (הפניה מהירה)

**מתן שם לקבצים:** `base44/agents/{agent_name}.jsonc` (למשל, `support_agent.jsonc`)

**תבנית סכמה:**

```jsonc theme={null}
{
  "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?"
}
```

**כללי מתן שמות:**

* שמות agent חייבים להתאים לתבנית: `/^[a-z0-9_]+$/` (אלפאנומרי באותיות קטנות עם קווים תחתונים, 1-100 תווים)
* תקף: `support_agent`, `order_bot`
* לא תקף: `Support-Agent`, `OrderBot`

**שדות נדרשים:** `name`, `description`, `instructions`
**שדות אופציונליים:** `tool_configs` (ברירת מחדל `[]`), `whatsapp_greeting`

**סוגי tool config:**

* **Entity tools**: `entity_name` + `allowed_operations` (מערך של: `read`, `create`, `update`, `delete`)
* **Backend function tools**: `function_name` + `description`

### ניהול Connector

Connectors מאפשרים לאפליקציה שלך להתחבר לשירותים חיצוניים (Google Calendar, Slack, Stripe וכו'). רוב ה-connectors משתמשים ב-OAuth כדי לספק access tokens לפונקציות backend לקרוא ל-APIs חיצוניים. Stripe הוא החריג — הוא מוקצה אוטומטית בצד השרת ללא זרימת OAuth בדפדפן.

| פעולה / פקודה                      | תיאור                                       | הפניה                                                                                                                        |
| ---------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| Create Connectors                  | הגדר connectors בתיקיית `base44/connectors` | [connectors-create.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-create.md)                 |
| `base44 connectors list-available` | פרט את כל סוגי האינטגרציה הזמינים מ-Base44  | [connectors-list-available.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-list-available.md) |
| `base44 connectors pull`           | משוך connectors מרוחקים לקבצים מקומיים      | [connectors-pull.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-pull.md)                     |
| `base44 connectors push`           | דחוף connectors מקומיים ל-Base44            | [connectors-push.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-push.md)                     |

**הערה:** פקודות connector מבצעות סנכרון מלא - דחיפה מחליפה את כל ה-connectors המרוחקים במקומיים (ומפעילה OAuth עבור connectors חדשים של OAuth), ומשיכה מחליפה את כל ה-connectors המקומיים במרוחקים.

#### סכמת Connector (הפניה מהירה)

**מתן שם לקבצים:** `base44/connectors/{type}.jsonc` (למשל, `googlecalendar.jsonc`, `slack.jsonc`)

**תבנית סכמה:**

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

**שדות נדרשים:** `type`
**שדות אופציונליים:** `scopes` (ברירת מחדל `[]`)

**סוגי connector זמינים:** הרץ `npx base44 connectors list-available` כדי לראות את כל סוגי האינטגרציה הנתמכים.

**הערה:** `stripe` הוא גם סוג connector תקף אך לא מוחזר על ידי `list-available`. התייחס אליו כסוג נתמך — הוא מוקצה אוטומטית על ידי Base44 ללא זרימת OAuth בדפדפן. ראה [connectors-create.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-create.md) לפרטים.

לתיעוד מלא, ראה [connectors-create.md](https://docs.base44.com/developers/skills/base44-cli/references/connectors-create.md).

### תצורת Auth

נהל את הגדרות האימות של האפליקציה שלך (למשל, כניסה עם שם משתמש וסיסמה). תצורת Auth מאוחסנת ב-`base44/auth/` ומסונכרנת עם Base44 דרך `auth push`/`auth pull`.

| פקודה                                                   | תיאור                                                          | הפניה                                                                                                            |
| ------------------------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `base44 auth password-login <enable\|disable>`          | הפעל או השבת אימות שם משתמש וסיסמה                             | [auth-password-login.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-password-login.md) |
| `base44 auth social-login <provider> <enable\|disable>` | הפעל או השבת social login (google, microsoft, facebook, apple) | [auth-social-login.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-social-login.md)     |
| `base44 auth sso <enable\|disable>`                     | הגדר ספק זהות SSO (google, microsoft, github, okta, custom)    | [auth-sso.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-sso.md)                       |
| `base44 auth pull`                                      | משוך תצורת auth מ-Base44 לקבצים מקומיים                        | [auth-pull.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-pull.md)                     |
| `base44 auth push`                                      | דחוף תצורת auth מקומית ל-Base44                                | [auth-push.md](https://docs.base44.com/developers/skills/base44-cli/references/auth-push.md)                     |

**הערה:** תצורת Auth נפרסת גם כחלק מ-`base44 deploy`.

### ניהול Secrets

נהל סודות פרויקט (משתני סביבה מאוחסנים בבטחה ב-Base44). פקודות אלה מוסתרות מפלט `--help` אך מלאות פונקציונליות.

| פקודה                         | תיאור                                          | הפניה                                                                                                  |
| ----------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `base44 secrets list`         | פרט את השמות של כל הסודות                      | [secrets-list.md](https://docs.base44.com/developers/skills/base44-cli/references/secrets-list.md)     |
| `base44 secrets set`          | הגדר סוד אחד או יותר (KEY=VALUE או --env-file) | [secrets-set.md](https://docs.base44.com/developers/skills/base44-cli/references/secrets-set.md)       |
| `base44 secrets delete <key>` | מחק סוד לפי שם                                 | [secrets-delete.md](https://docs.base44.com/developers/skills/base44-cli/references/secrets-delete.md) |

### הרצת סקריפט

הרץ סקריפטים חד-פעמיים מול האפליקציה שלך עם Base44 SDK מאומת מראש. השתמש בו לביצוע פעולות CRUD על entities (`base44.entities.MyEntity.list/create/update/delete`), לקרוא לפונקציות backend (`base44.functions.invoke("myFunction", args)`), להפעיל agents, או לגשת לכל משאב אחר שנחשף על ידי ה-SDK — מבלי לפרוס פונקציה מלאה. שימושי להעברת נתונים, פעולות בכמות, ניפוי באגים וזרימות עבודה מסוגלות סקריפט.

| פקודה         | תיאור                                           | הפניה                                                                              |
| ------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------- |
| `base44 exec` | הרץ סקריפט (דרך stdin) עם Base44 SDK מאומת מראש | [exec.md](https://docs.base44.com/developers/skills/base44-cli/references/exec.md) |

### יצירת סוגים

| פקודה                   | תיאור                                                                          | הפניה                                                                                                  |
| ----------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| `base44 types generate` | צור סוגי TypeScript (`types.d.ts`) מ-entities, functions, agents, ו-connectors | [types-generate.md](https://docs.base44.com/developers/skills/base44-cli/references/types-generate.md) |

**פלט:** `base44/.types/types.d.ts` — מרחיב את מודול `@base44/sdk` עם רישומים מוקלדים (`EntityTypeRegistry`, `FunctionNameRegistry`, `AgentNameRegistry`, `ConnectorTypeRegistry`).

**לא נדרש אימות.** רץ כולו מקומית. מעדכן אוטומטית את `tsconfig.json` לכלול את הסוגים שנוצרו.

### ניהול Site

| פקודה                | תיאור                               | הפניה                                                                                            |
| -------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------ |
| `base44 site deploy` | פרוס קבצי site בנויים לאירוח Base44 | [site-deploy.md](https://docs.base44.com/developers/skills/base44-cli/references/site-deploy.md) |
| `base44 site open`   | פתח את ה-site הפרוס בדפדפן שלך      | [site-open.md](https://docs.base44.com/developers/skills/base44-cli/references/site-open.md)     |

**SPA בלבד**: אירוח Base44 תומך ב-Single Page Applications עם נקודת כניסה יחידה `index.html`. כל הנתיבים מוגשים מ-`index.html` (client-side routing).

## התחלה מהירה

1. התקן את ה-CLI בפרויקט שלך:
   ```bash theme={null}
   npm install --save-dev base44
   ```

2. אמת עם Base44:
   ```bash theme={null}
   npx base44 login
   ```

3. צור פרויקט חדש (תמיד ספק שם ודגל `--path`):
   ```bash theme={null}
   npx base44 create my-app --path .
   ```

4. הרץ פיתוח מקומי:
   ```bash theme={null}
   npx base44 dev
   ```

5. בנה ופרוס הכל:
   ```bash theme={null}
   npm run build
   npx base44 deploy -y
   ```

או פרוס משאבים בודדים:

* `npx base44 entities push` - דחוף entities בלבד
* `npx base44 functions deploy` - פרוס functions בלבד
* `npx base44 functions delete <name>` - מחק פונקציה שנפרסה
* `npx base44 functions list` - פרט את כל הפונקציות שנפרסו
* `npx base44 functions pull` - משוך פונקציות שנפרסו לקבצים מקומיים
* `npx base44 agents push` - דחוף agents בלבד
* `npx base44 connectors pull` - משוך connectors מ-Base44
* `npx base44 connectors push` - דחוף connectors בלבד
* `npx base44 auth pull` - משוך תצורת auth מ-Base44
* `npx base44 auth push` - דחוף תצורת auth בלבד
* `npx base44 site deploy -y` - פרוס site בלבד

## זרימות עבודה נפוצות

### יצירת פרויקט חדש

**⚠️ חובה: לפני הרצת `base44 create`, אתה חייב לקרוא את [create.md](https://docs.base44.com/developers/skills/base44-cli/references/create.md) עבור:**

* **בחירת תבנית** - בחר את התבנית הנכונה (`backend-and-client` לעומת `backend-only`)
* **זרימת עבודה נכונה** - תבניות שונות דורשות שלבי הגדרה שונים
* **מכשולים נפוצים** - הימנע משגיאות יצירת תיקייה שגורמות לכישלונות

כישלון בעקיבה אחר הוראות create.md יביא ל-scaffolding פרויקט שבור.

### קישור פרויקט קיים

```bash theme={null}
# If you have base44/config.jsonc but no .app.jsonc
npx base44 link --create --name my-app
```

### הרצת פיתוח מקומי

```bash theme={null}
# Starts the Base44 backend locally
npx base44 dev
```

אם ברצונך ש-`base44 dev` יריץ גם את ה-frontend שלך, אמת ש-`base44/config.jsonc` כולל `site.serveCommand` מוגדר נכון (לדוגמה, `"serveCommand": "npm run dev"`). כאשר שדה זה קיים, `base44 dev` מריץ הן את ה-backend והן את ה-frontend יחד.

### פריסת כל השינויים

```bash theme={null}
# Generate types (optional, for TypeScript projects)
npx base44 types generate

# Build your project first
npm run build

# Deploy everything (entities, functions, and site)
npx base44 deploy -y
```

### יצירת סוגי TypeScript

```bash theme={null}
# Generate types from entities, functions, agents, and connectors
npx base44 types generate
```

זה יוצר `base44/.types/types.d.ts` עם רישומים מוקלדים עבור מודול `@base44/sdk`. הרץ זאת לאחר שינוי entities, functions, agents, או connectors כדי לשמור את הסוגים שלך מסונכרנים. אין צורך באימות.

### פריסת משאבים בודדים

```bash theme={null}
# 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

# Push only agents
npx base44 agents push

# Pull connectors from Base44
npx base44 connectors pull

# Push only connectors
npx base44 connectors push

# Deploy only site
npx base44 site deploy -y
```

### פתיחת לוח

```bash theme={null}
# Open app dashboard in browser
npx base44 dashboard
```

## אימות

רוב הפקודות דורשות אימות. אם אינך מחובר, ה-CLI יבקש ממך אוטומטית להתחבר. הסשן שלך נשמר מקומית ונמשך בין סשני CLI.

## פתרון בעיות

| שגיאה                           | פתרון                                                                                 |
| ------------------------------- | ------------------------------------------------------------------------------------- |
| Not authenticated               | הרץ תחילה `npx base44 login`                                                          |
| No entities found               | ודא ש-entities קיימים בתיקיית `base44/entities/`                                      |
| Entity not recognized           | ודא שהקובץ משתמש במתן שם kebab-case (למשל, `team-member.jsonc` לא `TeamMember.jsonc`) |
| No functions found              | ודא שפונקציות קיימות ב-`base44/functions/` עם `entry.ts` או `entry.js`                |
| No agents found                 | ודא ש-agents קיימים בתיקיית `base44/agents/` עם תצורות `.jsonc` תקפות                 |
| Invalid agent name              | שמות agent חייבים להיות אלפאנומרי באותיות קטנות עם קווים תחתונים בלבד                 |
| No connectors found             | ודא ש-connectors קיימים בתיקיית `base44/connectors/` עם תצורות `.jsonc` תקפות         |
| Invalid connector type          | הרץ `npx base44 connectors list-available` כדי לראות סוגים תקפים                      |
| Duplicate connector type        | כל סוג connector יכול להיות מוגדר רק פעם אחת לפרויקט                                  |
| Connector authorization timeout | הרץ מחדש `npx base44 connectors push` והשלם את זרימת ה-OAuth בדפדפן שלך               |
| No site configuration found     | בדוק ש-`site.outputDirectory` מוגדר בתצורת הפרויקט                                    |
| Site deployment fails           | ודא שהרצת `npm run build` תחילה וה-build הצליח                                        |
| Update available message        | אם תתבקש לעדכן, הרץ `npm install -g base44@latest` (או השתמש ב-npx להתקנות מקומיות)   |

<Note>דף זה תורגם באמצעות בינה מלאכותית. למידע המדויק והעדכני ביותר, עיין ב[גרסה האנגלית](/). </Note>
