morning-cli

August 10, 2026 · View on GitHub

כלי שורת פקודה ידידותי-סוכן (agent-native) ל-morning — מערכת הנהלת החשבונות המובילה בישראל.

נבנה על-ידי JangoAI במתודולוגיית cli-anything. גרסה באנגלית: README.md.

למה בניתי את זה

אני מאור, מפתח עצמאי שמנהל את JangoAI — סטודיו קטן לאוטומציה ו-AI בישראל. אני עובד עם ה-API של morning כל יום — בעסק שלי ובפרויקטים של לקוחות — ונמאס לי לכתוב את אותו boilerplate של httpx + JWT בכל פרויקט מחדש.

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

מה זה

morning-cli עוטף את כל ה-API של morning ב-CLI נקי שאפשר להשתמש בו משורת הפקודה, מסקריפטים, או מתוך סוכני AI (Claude Code, Cursor, וכו'). הכלי לא מממש חשבוניות בפייתון — הוא קורא ישר ל-API האמיתי של morning.

מה יש בארסנל:

  • ✅ תואם ל-API v2 החדש של morning (developers.morning.co) — 9 קבוצות API (עסקים, לקוחות, ספקים, פריטים, מסמכים, הוצאות, תשלומים, פרטנרים, כלים) + ניהול auth/session מקומי
  • אימות OAuth 2.0 מול ה-IDP החדש, עם fallback אוטומטי ל-endpoint הישן אם צריך
  • ✅ העלאת קבצי הוצאות ב-flow החדש (expense upload receipt.pdf) — presigned S3
  • ✅ אשף התחברות אינטראקטיבי (morning-cli auth init) שמעביר אותך שלב-אחר-שלב ביצירת מפתחות API
  • ✅ REPL אינטראקטיבי כמצב ברירת מחדל — הרץ morning-cli בלי פרמטרים
  • ✅ פלט JSON עקבי (--json) לצריכה על-ידי AI agents, עם מבנה מתועד
  • ✅ חידוש טוקן אוטומטי על 401 — לא צריך לחשוב על תוקף טוקנים
  • ✅ ברירת מחדל: sandbox — תקלות לא פוגעות בנתונים אמיתיים
  • ✅ קובץ session נעול ב-~/.greeninvoice/session.json (הרשאות 0600)
  • ✅ 85 טסטים, מתוכם 23 רצים חי מול ה-API האמיתי (sandbox או production)
  • ✅ הודעות שגיאה בעברית נשמרות end-to-end (errorCode + errorMessage)

התקנה

pip install morning-cli

דורש Python 3.10 ומעלה.

התחלה מהירה

# 1. הרץ את אשף ההתחברות האינטראקטיבי
morning-cli auth init

האשף ידריך אותך:

  1. לבחור בין sandbox ל-production
  2. לפתוח את העמוד של morning ליצירת מפתח API
  3. להדביק את ה-id וה-secret
  4. לאמת את המפתחות מול ה-API האמיתי
  5. לשמור אותם ב-~/.greeninvoice/credentials.json (הרשאות 0600)

לאחר מכן:

# REPL אינטראקטיבי (מצב ברירת מחדל)
morning-cli

# או פקודות חד-פעמיות
morning-cli --json business current         # פרטי העסק שלך
morning-cli --json document types --lang he  # כל סוגי המסמכים הנתמכים
morning-cli --json client search              # כל הלקוחות

דוגמה — יצירת חשבון עסקה (Proforma Invoice)

cat > /tmp/proforma.json <<'JSON'
{
  "description": "ריטיינר חודשי",
  "type": 300,
  "lang": "he",
  "currency": "ILS",
  "vatType": 0,
  "client": {"name": "חברת אקמה בע\"מ", "emails": ["ap@acme.co.il"], "country": "IL"},
  "income": [
    {"description": "שירותי ייעוץ", "quantity": 10, "price": 300, "currency": "ILS", "vatType": 0}
  ]
}
JSON

# תצוגה מקדימה (לא יוצרת מסמך אמיתי)
morning-cli --json document preview --file /tmp/proforma.json

# יצירה בפועל
morning-cli --json document create --file /tmp/proforma.json

סוגי מסמכים נתמכים

קודסוג
10הצעת מחיר
20דרישת תשלום / אישור תשלום
100הזמנה
200תעודת משלוח
300חשבון עסקה (עובד לכל סוגי העסקים)
305חשבונית מס (לא זמין לעוסק פטור)
320חשבונית מס / קבלה
330חשבונית זיכוי
400קבלה
405קבלה לתרומה

הרשימה המלאה: morning-cli --json document types --lang he

פקודות לפי קבוצה

קבוצהendpointsפקודות עיקריות
authמקומיinit (אשף), login, logout, whoami, refresh
sessionמקומיshow, reset, history
business10 (legacy)list, current, get, update, ניהול מספור ולוגו — הוסר מתיעוד v2, עדיין עובד
client8add, get, update, delete, search, merge
supplier6כמו client אבל לספקים
item5ניהול פריטי קטלוג (מוצרים/שירותים)
document13יצירה, חיפוש, הורדת PDF, סגירה/פתיחה
expense13הוצאות + upload (העלאת קבלות ב-flow החדש) + drafts-search/draft-delete
payment3טפסי תשלום וחיוב כרטיסי אשראי שמורים
partner3חיבורי בין-חשבונות של morning (אימות Basic)
tools4רשימות עזר: עיסוקים, מדינות, ערים, מטבעות

שגיאות נפוצות

קודמשמעותמה לעשות
401טוקן פגה-CLI מחדש אוטומטית — אם זה עדיין נכשל, הרץ morning-cli auth init שוב
1003אין עסק פעיל בחשבוןצור עסק ב-UI של morning תחילה
1006המינוי פגחדש את המינוי בהגדרות morning
1007חסרה הרשאהמפתח ה-API שלך בסקופ מוגבל מדי
1012הפעולה דורשת מסלול גבוה יותרשדרג את המינוי
1110מחיר לא תקיןבדוק את שדה price ב-income[]
2102אי-אפשר להוסיף עוד עסקים במסלול הזהשדרג או מחק עסק קיים
2403סוג מסמך לא נתמך עבור סוג העסקעוסק פטור למשל לא יכול להנפיק חשבונית מס (305)

משתני סביבה

export MORNING_API_KEY_ID=<ה-id-שלך>
export MORNING_API_KEY_SECRET=<הסוד-שלך>
export MORNING_ENV=sandbox   # או production
משתנהתפקידברירת מחדל
MORNING_API_KEY_ID / MORNING_API_KEY_SECRETמפתחות ה-API
MORNING_ENVsandbox או productionsandbox
MORNING_BASE_URLדריסת כתובת ה-REST הראשית (פרוקסי וכו')אוטומטי
MORNING_GATEWAY_URLדריסת ה-hosts של ה-OAuth IDP והעלאת קבציםאוטומטי
MORNING_AUTH_MODEauto (ברירת מחדל) / oauth (בלי fallback) / legacy (בלי IDP)auto

איך האימות עובד (מגרסה 0.2.0): ה-CLI מקבל טוקן לשעה דרך OAuth 2.0 (POST /idp/v1/oauth/token על api.morning.co בפרודקשן או api.sandbox.morning.dev בסנדבוקס), ואם ה-IDP לא זמין לסביבה — נופל אוטומטית ל-POST /account/token הישן. רענון על 401 אוטומטי בכל מקרה. נתוני העזר (tools) מגיעים מ-host משותף (cache.greeninvoice.co.il) בלי אימות.

(התחילית הישנה GREENINVOICE_* עדיין נתמכת.)

שאלות נפוצות

איך אני יוצר מפתחות API? היכנס ל-morning → Settings → Advanced → Developers → "יצירת מפתח API". שים לב: הסוד מוצג פעם אחת בלבד. הרץ morning-cli auth init והאשף יפתח את הדף הנכון בשבילך.

מה ההבדל בין sandbox ל-production? Sandbox הוא סביבת בדיקות עם בסיס נתונים נפרד. מפתחות sandbox לא עובדים ב-production ולהפך. ה-sandbox משתמש בכרטיס אשראי דמו לתשלומים. הרשמה ל-sandbox: lp.sandbox.d.greeninvoice.co.il/join.

האם צריך מסלול מסוים של morning? כן — ה-API נעול מאחורי מסלולים מסוימים (כמו "Best"). אם אתה רואה "ForbiddenException: Product is not included in your subscription" — המסלול שלך לא כולל את מודול ה-API.

אני עוסק פטור — אילו מסמכים אני יכול להנפיק? עוסק פטור יכול להנפיק: הצעות מחיר (10), הזמנות (100), תעודות משלוח (200), חשבונות עסקה (300), קבלות (400). לא ניתן להנפיק חשבוניות מס (305) — זה מוגבל לעוסק מורשה/חברה.

איך אני מוחק חשבונית שיצרתי בטעות? אי-אפשר — מסמכים שהונפקו לא ניתנים למחיקה מסיבות רגולטוריות. מה שכן: אפשר לבטל ב-document close או להנפיק חשבונית זיכוי (330).

AI Agents

יש לחבילה קובץ SKILL.md שמתגלה אוטומטית על-ידי Claude Code / Cursor. אם אתה סוכן AI שקורא את זה — תתחיל שם, יש שם דוגמאות מוכנות ורשימה מלאה של קודי השגיאה של morning.

תרומה לפרויקט

PRs ברוכים ב-github.com/jango-ai-com/morning-cli. לפני שליחה:

pip install -e ".[test]"
pytest cli_anything/greeninvoice/tests/test_core.py -v

על JangoAI

JangoAI היא סטודיו ישראלי לאוטומציה וכלי AI לעסקים. אנחנו בונים אינטגרציות עם n8n, Monday.com, Supabase, ו-CLIs כמו זה — כולם עם דגש על להיות שימושיים לסוכני AI ולא רק לבני אדם.

היי, אם השתמשת בכלי ועזר לך — בוא נכיר! צור קשר דרך jango-ai.com או פתח issue ב-GitHub.

רישיון

MIT. ראה LICENSE.


נבנה על-ידי JangoAI · jango-ai.com · @jango-ai-com ב-GitHub