# ה-CLI של Nodaro

> התקינו את ה-CLI של Nodaro עם npm או כקובץ בינארי עצמאי, התחברו פעם אחת לכל מופע והריצו תהליכים, אפליקציות ורכיבים מהטרמינל או ממשימת CI.

Source: https://nodaro.ai/he/docs/developers/cli

**ה-CLI של Nodaro** (`@nodaro/cli`) הוא לקוח שורת פקודה ל-Nodaro. ה-CLI מציג רשימות של תהליכים ומריץ אותם, מריץ אפליקציות שפורסמו, מריץ רכיב יחיד בלי תהליך ובודק את המצב של כל הרצה עד שהיא מסתיימת. אפשר לשמור בו כמה פרופילים מחוברים זה לצד זה, והוא מדפיס JSON לסקריפטים, ולכן הוא מתאים לעבודה בטרמינל, למשימות cron ולפייפליינים של CI.

ה-CLI הוא מעטפת דקה סביב ה-[SDK ל-TypeScript](https://nodaro.ai/docs/developers/sdk). לאינטגרציה שכתובה בקוד, השתמשו ב-SDK ישירות.

## התקנה
**npm**

חבילת ה-npm רצה על macOS, על Linux ועל Windows. היא דורשת Node.js 20 ומעלה.

```bash
npm install -g @nodaro/cli
nodaro --version
```

כדי להריץ פקודה אחת בלי להתקין את החבילה, השתמשו ב-`npx`:

```bash
npx @nodaro/cli projects list
```

**קובץ בינארי ל-macOS ול-Linux**

הקובץ הבינארי העצמאי הוא קובץ יחיד בגודל של כ-60 MB. הוא לא צריך Node.js, ומתחיל לרוץ בתוך כ-10 אלפיות שנייה.

במאגר הקוד הציבורי, הגרסאות של ה-CLI מתויגות `cli-vX.Y.Z`. הגרסה "latest" של מאגר הקוד שייכת לאפליקציה ולא ל-CLI, ולכן קישור `releases/latest/download/...` אף פעם לא מוביל לקובץ בינארי של ה-CLI. מצאו קודם את התג `cli-v` החדש ביותר, ואז הורידו ממנו:

```bash
# 1. The newest CLI version
NODARO_CLI_VERSION=$(curl -fsSL "https://api.github.com/repos/nodaroai/app.nodaro.ai/git/matching-refs/tags/cli-v?per_page=100" \
| grep -o '"refs/tags/cli-v[0-9][0-9.]*"' | tr -d '"' | sed 's#refs/tags/cli-v##' \
| sort -t. -k1,1n -k2,2n -k3,3n | tail -n 1)
echo "Installing @nodaro/cli $NODARO_CLI_VERSION"

# 2. Your platform: darwin-arm64 (Apple silicon), darwin-x64 (Intel Mac), linux-x64 or linux-arm64
NODARO_CLI_PLATFORM=darwin-arm64

# 3. Download. -f fails on an HTTP error instead of saving the error page as the binary.
curl -fL "https://github.com/nodaroai/app.nodaro.ai/releases/download/cli-v$NODARO_CLI_VERSION/nodaro-$NODARO_CLI_PLATFORM" \
  -o /usr/local/bin/nodaro && chmod +x /usr/local/bin/nodaro
nodaro --version
```

**קובץ בינארי ל-Windows**

ב-PowerShell, מצאו את התג `cli-v` החדש ביותר, ואז הורידו את `nodaro-windows-x64.exe`:

```powershell
$v = (Invoke-RestMethod "https://api.github.com/repos/nodaroai/app.nodaro.ai/git/matching-refs/tags/cli-v?per_page=100") |
ForEach-Object { $_.ref -replace '^refs/tags/cli-v', '' } |
Where-Object { $_ -match '^\d+\.\d+\.\d+$' } |
Sort-Object { [version]$_ } | Select-Object -Last 1
Invoke-WebRequest "https://github.com/nodaroai/app.nodaro.ai/releases/download/cli-v$v/nodaro-windows-x64.exe" -OutFile nodaro.exe
.\nodaro.exe --version
```

כדי לקבע גרסה, דלגו על השלב הראשון והגדירו את הגרסה בעצמכם. כל הגרסאות של ה-CLI והקבצים הבינאריים שלהן מופיעים ברשימת [הגרסאות cli-v](https://github.com/nodaroai/app.nodaro.ai/releases?q=cli-v) של מאגר הקוד הציבורי.

## התחברות
ה-CLI מזדהה עם אסימון API אישי ושומר אותו בפרופיל.

### התחלת ההתחברות בדפדפן
הריצו `nodaro auth login`. ה-CLI פותח בדפדפן שלכם את הדף **אישור שורת הפקודה של Nodaro** במופע ה-Nodaro.

### אישור הגישה ל-CLI
התחברו אם צריך, ואז לחצו על **אישור**. Nodaro יוצר אסימון API אישי שנקרא על שם המכשיר שלכם ומחזיר אותו לטרמינל.

### בדיקת הפרופיל
הריצו `nodaro auth status`. הפקודה מציגה את שם הפרופיל, את כתובת המופע ואת האסימון, כשרובו מוסתר.

אם ההתחברות בדפדפן נכשלת, ה-CLI מבקש מכם להדביק אסימון במקום זאת. כדי ליצור אסימון בעצמכם, פתחו ב-Nodaro את הדף **הגדרות › מפתחות API** ולחצו על **יצירת אסימון**. האסימון המלא מוצג רק פעם אחת. אסימוני API אישיים זמינים ב-Nodaro Cloud ובהתקנות של מהדורת Business. ראו את דף ה-API [אימות](https://nodaro.ai/docs/developers/api/authentication) כדי להבין איך אסימונים עובדים.

```bash
nodaro auth login                                   # browser sign-in
nodaro auth login --no-browser                      # paste a token instead
nodaro auth login --token "$NODARO_TOKEN"           # non-interactive, for CI
nodaro auth status [--profile <name>] [--json]      # show a profile, token masked
nodaro auth logout [--profile <name>]               # delete a saved profile
```

| דגל של `auth login` | מה הוא עושה |
| --- | --- |
| `--profile <name>` | הפרופיל שיישמר. ברירת המחדל היא `production`. |
| `--token <token>` | שומר את האסימון הזה, בלי לפתוח את הדפדפן ובלי לבקש מכם אסימון. |
| `--base-url <url>` | מופע ה-Nodaro. ברירת המחדל היא `https://app.nodaro.ai`. |
| `--no-browser` | מדלג על הדפדפן, ובמקומו מדביקים אסימון. |

ה-CLI שומר את הפרופילים ב-`~/.config/nodaro/config.json`, ורק המשתמש שלכם במחשב יכול לקרוא את הקובץ (הרשאות קובץ `0600`). כדי לשמור את הקובץ בתיקייה אחרת, הגדירו את `NODARO_CONFIG_DIR`.

## פרופילים לכמה מופעים
**פרופיל** הוא כתובת של מופע ואסימון ששמרתם. צרו פרופיל אחד לכל מופע, כמו Nodaro Cloud, התקנת staging והתקנה מקומית. אחר כך בחרו פרופיל עם הדגל `--profile`, שכל פקודה מקבלת:

```bash
nodaro auth login --profile prod    --base-url https://app.nodaro.ai
nodaro auth login --profile staging --base-url https://staging.example.com
nodaro auth login --profile local   --base-url http://localhost:3000

nodaro projects list --profile staging
```

פקודה בלי `--profile` משתמשת בפרופיל ברירת המחדל. עד שאתם שומרים פרופיל, ברירת המחדל היא `production`, והפרופיל הראשון שאתם שומרים הופך לברירת המחדל. לכן רוב האנשים צריכים רק להריץ פעם אחת את `nodaro auth login`, בלי דגלים.

## בחירת סביבת עבודה
במופע עם ארגונים, העבודה נמצאת ב**סביבות עבודה**. בחרו סביבת עבודה לפקודה אחת עם `--workspace <id>`, לכל הפקודות ב-shell או במשימת CI עם `NODARO_WORKSPACE` או שמרו אותה בפרופיל עם `nodaro workspace use <id>`. כשלא הוגדרה סביבת עבודה, העבודה נעשית במרחב האישי שלכם. ראו את הדף [סביבות עבודה וארגונים](https://nodaro.ai/docs/developers/cli/workspaces).

## שלוש דרכים להריץ
ה-CLI תומך בשלוש הדרכים שבהן Nodaro מריץ עבודה. בחרו את הדרך שמתאימה למה שבניתם.

| מטרה | פקודה |
| --- | --- |
| הרצת תהליך שמור | `nodaro workflows run <workflowId>` |
| הרצת אפליקציה שפורסמה, עם הקלטים והפלטים שנבחרו לה בקפידה | `nodaro apps run <slug> --input key=value` |
| הרצת רכיב יחיד ישירות, בלי תהליך | `nodaro nodes run <type> --param key=value` |

הפקודה `nodaro nodes run` היא המקבילה ב-CLI לכלי הפעולה של [שרת ה-MCP](https://nodaro.ai/docs/mcp/tools), כגון `generate_image` ו-`generate_video`. לכל רכיב יצירה יש נתיב `POST /v1/<type>`, ולכן אפשר להריץ עם `nodaro nodes run` כל רכיב שהפקודה `nodaro nodes list` מציגה. לצד של ה-REST, ראו את דף ה-API [הרצת רכיב יחיד](https://nodaro.ai/docs/developers/api/nodes).

הוסיפו `--watch` כדי לחכות עד שההרצה מסתיימת:

```bash
nodaro nodes run generate-image \
  --param prompt="a snow leopard on a mountain ridge, cinematic" \
  --param provider=flux \
  --watch
```

ראו את הדף [פרמטרים וקובצי קלט](https://nodaro.ai/docs/developers/cli/params) כדי להכיר את התחביר של `--param`, ואת הדף [פלט וקודי יציאה](https://nodaro.ai/docs/developers/cli/output) לפני שאתם כותבים סקריפטים עם ה-CLI.

## מה ה-CLI לא כולל
ה-CLI לא מטפל בקניית קרדיטים, בשינוי תוכנית, ביישומי מפתחים, ב-OAuth, בפייפליינים, בבחירת המיטב ובפונקציות העזר להעלאה. לאלה, השתמשו ב-[SDK](https://nodaro.ai/docs/developers/sdk) או ב-[REST API](https://nodaro.ai/docs/developers/api).

המעבר מה-CLI לקוד הוא קצר. זו המקבילה ב-SDK ל-`nodaro workflows run wf_abc`:

```ts

const nodaro = createClient({
baseUrl: "https://app.nodaro.ai",
auth: new StaticTokenAuth(process.env.NODARO_TOKEN!),
})

const run = await nodaro.workflows.run("wf_abc")
```

## השלבים הבאים
  - [פקודות](https://nodaro.ai/docs/developers/cli/commands): 
כל פקודות הליבה: פרויקטים, סשנים, תהליכים, אפליקציות, רכיבים, מודלים, ערכות, משימות, גלריה, Webhooks וחיוב.
  
  - [פרמטרים וקובצי קלט](https://nodaro.ai/docs/developers/cli/params): 
איך `--param`, `--input` ו-`--params-file` הופכים טקסט לגוף בקשה.
  
  - [פלט וקודי יציאה](https://nodaro.ai/docs/developers/cli/output): 
פלט JSON, `--watch` וקודי היציאה שסקריפטים יכולים לפעול לפיהם.
  
  - [דוגמאות](https://nodaro.ai/docs/developers/cli/examples): 
משימות cron, שלבי CI שתלויים בהרצה, כתוביות מתמלול ומתכונים עם אשף הפרומפטים.

## שאלות נפוצות

### איך מתקינים את ה-CLI של Nodaro?

הריצו את הפקודה npm install -g @nodaro/cli עם Node.js 20 ומעלה. בלי Node.js, הורידו את הקובץ הבינארי העצמאי ל-macOS, ל-Linux או ל-Windows מאחת הגרסאות cli-v של מאגר הקוד הציבורי ב-GitHub. כדי לבדוק את ההתקנה, הריצו nodaro --version.

### איך מתחברים ל-CLI של Nodaro?

הריצו את הפקודה nodaro auth login. הדפדפן פותח את הדף אישור שורת הפקודה של Nodaro, אתם לוחצים על הכפתור אישור וה-CLI מקבל אסימון API אישי. במשימת CI, העבירו אסימון ישירות עם nodaro auth login --token.

### איפה ה-CLI של Nodaro שומר את האסימון שלי?

בקובץ ‎~/.config/nodaro/config.json, עם הרשאות קובץ שמאפשרות רק למשתמש שלכם במחשב לקרוא אותו. כדי לשמור את הקובץ בתיקייה אחרת, הגדירו את משתנה הסביבה NODARO_CONFIG_DIR.

### האם אפשר להשתמש ב-CLI עם התקנה של Nodaro באירוח עצמי?

כן. שמרו פרופיל עם הדגל ‎--base-url והכתובת של ההתקנה שלכם, למשל nodaro auth login --profile local --base-url http://localhost:3000, ואז הוסיפו את ‎--profile local לפקודות שלכם.

### במה להשתמש: ב-CLI או ב-SDK?

השתמשו ב-CLI לעבודה בטרמינל, למשימות cron, לפייפליינים של CI ולבדיקות מהירות. לאינטגרציה שכתובה בקוד, השתמשו ב-SDK ל-TypeScript. ה-CLI הוא מעטפת דקה סביב ה-SDK, ולכן כל מה שה-CLI עושה, גם ה-SDK עושה.
