מדריכי AI וכסף
מודים ב-Claude Code — המדריך המעשי
Claude Code יודע עכשיו לשנות את הממשק של עצמו. חמישה מודים שבניתי בלי לכתוב שורת קוד — פס usage, עברית מימין לשמאל, פרוגרס בר למשימות, מצב מצגת ודשבורד כסף חי מ-Financy MCP — עם הבקשה המדויקת, מה קורה מאחורי הקלעים, והמוקשים שכדאי לעקוף.
צוות Financy
13 דק׳ קריאה
Claude Code הגיע עם ממשק קבוע. מה שהוא מראה — זה מה שיש.
עכשיו אפשר לבקש ממנו לשנות את עצמו.
יש ב-Claude Code יכולת שנקראת mods: תוספים קטנים שמשנים את הממשק של Claude Code עצמו. פס מעל שורת ההודעה, פאנל בצד, התראות קופצות, שורת סטטוס, ואפילו הדרך שבה ההודעות מצוירות. ובאפליקציית הדסקטופ — גם גרפים.
ביומיים האחרונים בניתי חמישה כאלה. לא כתבתי אף אחד מהם. תיארתי ל-Claude Code מה חסר לי, והוא כתב, בדק וטען את המוד בזמן שהסשן רץ.
המדריך הזה עובר על כולם: מה כל מוד עושה, מה לבקש, מה קורה מאחורי הקלעים, ואיפה נתקעתי. בסוף — הדשבורד של הכסף, שמתחבר ל-Financy.

במדריך:
- מה זה mod
- איך מבקשים מוד, ואיך הוא נשאר
- מוד 1 — פס usage מעל ההודעה
- מוד 2 — עברית מימין לשמאל
- מוד 3 — כמה זמן המשימה תיקח
- מוד 4 — מצב מצגת
- מוד 5 — דשבורד הכסף עם Financy
- המוקש של מצב Auto
מה זה mod
מוד הוא plugin של Claude Code שבנוי מ-hooks — פונקציות ש-Claude Code קורא להן כשמשהו קורה: הסשן נפתח, נשלחה הודעה, כלי עומד לרוץ, או שצריך לצייר חלק מהמסך. הפונקציה מחזירה מה לצייר, ו-Claude Code מצייר.
כל מקום שמוד יכול לצייר בו נקרא render site. לפי התיעוד הרשמי, החשובים הם:
| איפה | מה זה | בשימוש אצלנו |
|---|---|---|
AbovePrompt | הפס שמעל שורת ההודעה, משותף לכל המודים | usage, זמן משימה, מצב מצגת, Financy |
Pane | פאנל צד, או אזור מעל ההודעה כשהחלון צר | דשבורד הכסף |
UserMessage, AssistantMessage | ההודעות שלכם והתשובות של Claude | עברית מימין לשמאל, מצב מצגת |
ToolUse, ToolResult ודומיהם | השורות של קריאות לכלים והפלט שלהן | מצב מצגת |
ובנוסף: התראות קופצות ($.ui.toast), רשומה בשורת הסטטוס ($.ui.status), וגרפים ב-SVG — שמופיעים רק באפליקציית הדסקטופ.
איפה זה עובד: בטרמינל ובלשונית Code של אפליקציית הדסקטופ. לא בפאנל של VS Code, לא בהרצה עם claude -p ולא בסשנים בענן. צריך Claude Code בגרסה 2.1.287 ומעלה.
איך מבקשים מוד, ואיך הוא נשאר
1. מתארים מה רוצים, בשפה רגילה. Claude עובד עם skill מובנה בשם plugin-authoring, שמכיר את ה-API המדויק של הגרסה שלכם. אפשר להריץ /plugin-authoring כדי לטעון אותו מראש, אבל לרוב פשוט מבקשים. טיפ שעבד לי: לסיים את הבקשה ב"תשאל אותי שאלות כדי להבין יותר טוב". Claude שואל על המבנה, הצבעים והמיקום לפני שהוא כותב.
2. מאשרים טעינה חמה. כש-Claude שומר את הקובץ הראשון, Claude Code שואל Enable hot reloading for this session?. בוחרים Enable for this session. מכאן המוד נטען בסוף התור, וכל שינוי שתבקשו נטען מחדש בסוף התור שבו הוא נעשה. במצבי ההרשאות default ו-acceptEdits תתבקשו גם לאשר כל קובץ, כי ~/.claude היא תיקייה מוגנת.
3. Claude בודק את עצמו. כל מוד הוא תיקייה עם שלושה קבצים: .claude-plugin/plugin.json, hooks/hooks.json והקוד עצמו, hooks/register.tsx. Claude מריץ claude plugin validate כדי לוודא ש-Claude Code יקבל את הקוד, ולפעמים גם כותב טסטים ומריץ אותם עם claude plugin test.
4. אומרים לו שזה צריך לעבוד גם מחר. זה המוקש הראשון שנתקלתי בו: מוד ש-Claude כותב נשמר בתיקייה של הסשן הנוכחי, ~/.claude/dev-mods/<מזהה הסשן>/, ונטען רק בו. פותחים סשן חדש — הוא לא שם.
הפתרון: לבקש במפורש להעביר אותו למקום קבוע. Claude העביר את המודים שלי ל-~/.claude/mods/, והוסיף את הנתיבים שלהם למשתנה CLAUDE_CODE_PLUGIN_DIRS בבלוק env של ~/.claude/settings.json. לפי התיעוד, זו הדרך לטעון מודים באפליקציות שאי אפשר להעביר להן flag, כמו הדסקטופ. בטרמינל אפשר גם claude --plugin-dir <תיקייה>.
{
"env": {
"CLAUDE_CODE_PLUGIN_DIRS": "/Users/you/.claude/mods/usage-band:/Users/you/.claude/mods/presentation-mode"
}
}
נתיבים מלאים, מופרדים בנקודתיים (ב-Windows בנקודה-פסיק). כדי לכבות מוד, מוחקים את הנתיב שלו מהרשימה.
מוד 1 — פס usage מעל ההודעה
מה הוא עושה: מראה מעל שורת ההודעה כמה נשאר בחלון של 5 השעות ובחלון השבועי, ועוד כמה זמן כל אחד מתאפס. כי אין דבר יותר מעצבן מ-Claude שנעצר באמצע משימה ארוכה בלי שראיתם את זה מגיע.
5h ▓▓▓▓▓▓░░░░ 58% left · resets in 2h 14m Week ▓▓▓▓▓▓▓▓░░ 81% left · resets in 3d 6h

מה ביקשתי:
תבנה לי mod שיראה לי כמה usage נשאר לי ישר ב-Claude Code desktop, מעל הבר שאני בא לשלוח את ההודעה. תשאל אותי שאלות כדי להבין יותר טוב.
מאחורי הקלעים: המוד מצייר ב-AbovePrompt. את הנתונים הוא לוקח מ-$.session.usage(), שמחזיר את מגבלות השימוש של המנוי, ומתעדכן באירוע session.measure — אחרי כל תור, וכשאחוז השימוש זז. טיימר של דקה מרענן את הספירה לאחור.
const usage = await $.session.usage()
await update($, limits, () => usage.rateLimits) // [{ kind, percentUsed, resetsAt }]
כדאי לדעת:
- עובד רק עם מנוי (Pro או Max). מי שמחובר עם API key לא מקבל חלונות של 5 שעות ושבוע, ואין מה להציג.
- לפני התשובה הראשונה בסשן הפס כותב Usage: waiting for the first response…, כי Claude Code מקבל את הנתונים רק מתשובה של המודל.
מוד 2 — עברית מימין לשמאל
כל מי שכותב ל-Claude בעברית מכיר את זה: שורה שמתחילה בעברית ויש בה מילה באנגלית, מספר או סימן פיסוק — והסדר מתבלגן. זה הסעיף הכי חשוב במדריך למי שעובד בעברית, ויש בו שני חלקים: ההודעות בשיחה, והממשק שהמוד שלכם מצייר.
ההודעות בשיחה
מה ביקשתי:
תבנה לי עוד מוד שמציג את ההודעות ב-RTL, גם כשאני שולח אותן. אני שם לב שההודעה ששלחתי לא מוצגת ב-RTL.
הניסיון הראשון נכשל. המוד הזיז כל פסקה בעברית לצד ימין, כבלוק. אבל בתוך הבלוק הטקסט עדיין רץ משמאל לימין, אז חלק מהשורות נראו ממורכזות וסדר המילים התבלגן. צילמתי מסך, שלחתי ל-Claude, והוא החליף גישה.
הגרסה שעובדת לא מזיזה כלום. היא עוטפת כל שורה שמתחילה בעברית בשני תווים בלתי נראים של Unicode: RLI בהתחלה ו-PDI בסוף. הם אומרים למסך "את השורה הזאת תסדר מימין לשמאל", גם כשיש בה אנגלית, קוד או מספרים.
// RLI ... PDI: the words between them are laid out right to left
const RLI = ''
const PDI = ''
return `${prefix}${RLI}${body}${PDI}`
והפרטים הקטנים שעושים את ההבדל: האות החזקה הראשונה בשורה קובעת את הכיוון, כמו dir="auto" בדפדפן. סימני רשימה, כותרות וציטוטים נשארים בתחילת השורה כדי לא לשבור את ה-Markdown. בלוקים של קוד, טבלאות ושורות באנגלית לא משתנים. המוד מצייר ב-AssistantMessage וב-UserMessage, ופועל רק בדסקטופ.
המגבלה, בכנות: ל-API של המודים אין דרך להגדיר כיוון אמיתי לפסקה — אין dir="rtl". אז סדר המילים מסתדר, אבל השורות נשארות מיושרות לשמאל. לא מושלם, אבל קריא.
בתוך הפאנל שלכם
אם המוד שלכם מצייר ממשק משלו — כמו דשבורד הכסף בהמשך — אתם שולטים בפריסה, ואפשר לעשות RTL כמו שצריך. אלה הטכניקות ש-Claude השתמש בהן בפאנל של Financy, ואפשר לבקש אותן בשמן:
- עמודות מיושרות לימין:
alignItems="flex-end"על כלBoxבכיוון עמודה. - שורות מימין לשמאל:
flexDirection="row-reverse"— התווית בימין, הסכום בשמאל. - סכומים שלא קופצים: כל סכום עטוף ב-LRI ו-PDI, הזוג ההפוך, שמבודד אותו כטקסט משמאל לימין. בלי זה הסימן ₪ והמינוס נודדים לצד הלא נכון.
- גרפים: ב-SVG כל סכום מצויר כאלמנט
textנפרד עםdirection="ltr", כדי שעברית ומספרים לא יתערבבו באותה שורה.
const LRI = ''
const PDI = ''
const row = (label: string, value: string) => (
<Box flexDirection="row-reverse" justifyContent="space-between">
<Text>{label}</Text>
<Text>{LRI + value + PDI}</Text>
</Box>
)
מוד 3 — כמה זמן המשימה תיקח
מה הוא עושה: כששולחים משימה, הוא מעריך כמה זמן היא תיקח, ומציג מעל ההודעה פרוגרס בר, שעון ומונה של קריאות לכלים. כשהמשימה מסתיימת, השורה נעלמת.
⏱ ▓▓▓▓░░░░░░ 1m 20s / ~3m 00s · 4 tool calls
מה ביקשתי:
אתה יכול לייצר לי מוד שמעריך כמה זמן משימה אמורה להימשך, ומראה פרוגרס בר כזה?
מאחורי הקלעים: זה המוד הכי מעניין טכנית, כי הוא משתמש במודל בתוך המוד.
- באירוע
prompt.submitהוא שולח את הטקסט שלכם ל-Haiku, המודל הקטן והמהיר, ושואל כמה שניות זה ייקח. הוא עושה את זה מטיימר ($.clock.after), כדי שההודעה שלכם לא תחכה להערכה. עד שהתשובה מגיעה כתוב estimating…. - כל קריאה לכלי (
tool.call) מעלה את המונה. - בסוף התור (
turn.complete) הוא שומר ב-$.storeכמה Haiku ניחש וכמה זה באמת לקח. - הוא לומד מכם. אחרי שלוש משימות הוא מכפיל כל ניחוש בחציון של היחס "בפועל חלקי ניחוש". אם המשימות שלכם לוקחות בדרך כלל פי 2 ממה ש-Haiku מעריך, ההערכה תוכפל. הוא זוכר את 30 המשימות האחרונות, ומשימות שעצרתם באמצע לא נספרות.
const r = await $.model.complete({
model: 'haiku',
system: SYSTEM, // "Reply with one integer number of seconds"
prompt: `Request:\n${text}\n\nSeconds:`,
maxTokens: 16,
})
כדאי לדעת:
- כל הערכה היא קריאה קטנה ל-Haiku, וזה עולה קצת מה-usage שלכם.
- Haiku רואה רק את ההודעה, לא את השיחה ולא את הקוד. "תתקן את זה" בלי הקשר הוא ניחוש עיוור.
- כשמשימה עוברת את ההערכה, הבר נהיה צהוב ומופיע taking longer than expected.
מוד 4 — מצב מצגת
מה הוא עושה: כפתור בפס שמעל ההודעה. לחיצה מסתירה את כל התשובות של Claude — הטקסט, הקריאות לכלים והפלט שלהן. ההודעות שלכם ואינדיקטור העבודה נשארים, כך שהקהל רואה מה ביקשתם ושמשהו קורה. לחיצה נוספת מחזירה הכול, והשיחה עצמה לא נפגעת.
מושלם להרצאות, לפגישות עם לקוחות, ולכל פעם שמשתפים מסך ולא רוצים שכולם יקראו קיר של פלט.

מה ביקשתי:
תבנה לי מוד שיוסיף כפתור בבר החדש שיצרנו, שמסתיר את הפלט של ההודעות שלך.
מאחורי הקלעים: המוד לא מוחק כלום. הוא נרשם על ה-render sites של כל מה ש-Claude מצייר בתור — AssistantMessage, ToolUse, ToolResult, ToolGroup ועוד — וכשהמצב פעיל, מחזיר במקומם קופסה ריקה ונסתרת. כשהמצב כבוי, הוא מעביר את הציור הלאה בלי לגעת בו.
const hide: Hook<'ui.render'> = async ($, e, next) => {
if (!(await read($, isOn))) return next(e)
const { Box } = $.ui.resolve(e)
return <Box display="none" />
}
הכפתור עצמו מתחלף בין Presentation mode ל-Show replies, ולידו מופיע Claude's replies are hidden כשהמצב פעיל.
המוקש: מודים שחולקים את אותו פס. הפס שמעל ההודעה משותף לכל המודים. מוד שמחזיר ציור משלו בלי לכלול את מה שהמודים האחרים ציירו — דורס אותם. כשהוספתי את הכפתור, Claude עדכן את כל המודים כך שכל אחד מצייר את השורה שלו ומוסיף מתחת את מה שהמודים האחרים החזירו:
const below = await next(e) // what the other mods drew
return (
<Box flexDirection="column">
{myRow}
{below ?? null}
</Box>
)
אם אתם מבקשים מוד חדש לפס, תגידו ל-Claude שיש שם כבר מודים אחרים ושהוא צריך לשמור עליהם.
מוד 5 — דשבורד הכסף עם Financy
וכאן זה כבר לא רק נוחות. מוד יכול לקרוא לכלים של שרתי MCP שכבר מחוברים ל-Claude Code ($.mcp.call), דרך החיבור הקיים של Claude Code עצמו. בלי מפתחות חדשים, בלי שרת בצד.
אז ביקשתי מוד שמתחבר ל-Financy ומציג את מצב הכסף שלי.
הבקשה הראשונה הייתה משפט אחד:
אני רוצה שתייצר לי מוד שמתחבר לFinancy MCP ומציג לי את המצב של הכסף שלי בחלק העליון של claude code desktop
את כל השאר הוספתי בבקשות המשך קצרות: פאנל צד במקום פס, התראות קופצות, גרפים, יישור מימין לשמאל וכפתור שפותח את הפאנל. אם אתם רוצים הכול בבת אחת, אפשר להעתיק ולשנות:
תבנה לי מוד שמתחבר ל-Financy ומציג בפאנל צד את מצב הכסף שלי: נטו, עו״ש, חסכונות, השקעות, הלוואות וחיובי כרטיסים קרובים, עם פירוט לפי חשבון. תוסיף גרפים של נכסים מול התחייבויות, תזרים חודשי והוצאות לפי קטגוריה. תרענן כל רבע שעה, ותקפיץ לי התראה כשמשהו חשוב משתנה. הכול בעברית, מימין לשמאל, ורק בכלי קריאה של Financy.

מה קיבלתי

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



הגרפים מופיעים באפליקציית הדסקטופ. בטרמינל אותו פאנל מציג את המספרים בלי הגרפים.
כפתור בפס שמעל ההודעה. לצד המודים האחרים, המוד מוסיף כפתור Financy (מקש קיצור: f) שפותח את הפאנל, ולידו הנטו. הנטו מופיע גם בשורת הסטטוס.

התראות. המוד מתרענן לבד כל 15 דקות, ופקודת /money פותחת את הפאנל ומרעננת מיד. רענון ידני מקפיץ Financy עודכן עם הנטו, וההתראות האוטומטיות קופצות כש:
- הנטו השתנה מאז הרענון הקודם
- חיוב כרטיס יורד בשלושת הימים הקרובים
- הנתונים מבנק מסוים לא התעדכנו כבר יותר מדי זמן
- ההסכמה מול בנק או כרטיס פגה בתוך 14 יום
כל המספרים בצילומים כאן הם נתוני דמו. אצלכם זה יהיה הכסף האמיתי שלכם.
מאחורי הקלעים: שלושה כלים, כולם לקריאה
| כלי | מה הוא נותן לפאנל |
|---|---|
list_accounts | החשבונות, היתרות, ריביות, תאריכי סיום וחיובי כרטיסים |
get_status | מתי כל חיבור התעדכן לאחרונה ומתי ההסכמה פגה |
list_transactions | התנועות שמהן נבנים התזרים וההוצאות לפי קטגוריה |
שורה אחת לכל כלי, דרך החיבור ש-Claude Code כבר מחזיק:
const accounts = await $.mcp.call('financy', 'list_accounts', { all: true })
const status = await $.mcp.call('financy', 'get_status', {})
const txs = await $.mcp.call('financy', 'list_transactions', { from, all: true })
אין כאן כלי שמעביר כסף, משלם או משנה משהו בחשבון. ולא רק בגלל שהמוד לא ביקש — Financy מחובר לבנקים דרך Open Banking בהרשאת קריאה בלבד, כך שכלים כאלה פשוט לא קיימים.
איך מחברים את Financy ל-Claude Code
מה צריך: חשבון Financy בתוכנית Starter ומעלה, עם בנקים וכרטיסים שכבר מחוברים.
זה אותו שרת MCP שמופיע במדריך החיבור של Financy MCP, בכתובת https://mcp.open-finance.ai/mcp. ב-Claude Code מוסיפים אותו כשרת HTTP בשם financy:
claude mcp add --transport http --scope user financy https://mcp.open-finance.ai/mcp
ואז בתוך Claude Code מריצים /mcp, בוחרים את financy, ומשלימים את ההתחברות וההרשאה של Financy בדפדפן. השם financy חשוב: ממנו נגזרים שמות הכלים בכלל ההרשאה שבסעיף הבא.
המוקש של מצב Auto
אם אתם עובדים ב-Claude Code במצב ההרשאות Auto, הרענון הראשון של מוד הכסף ייכשל. הקריאות שלו ל-Financy ייחסמו עם הודעה בסגנון:
The server-side auto mode classifier gave no verdict ... the request that produced this action did not ask for one

זה לא באג. במצב Auto, Claude Code בודק כל פעולה מול הבקשה שלכם. קריאה שהמוד יוזם לבד ברקע — מטיימר של רבע שעה — לא נובעת מבקשה שכתבתם באותו רגע, ולכן היא נעצרת. בדיוק מה שהייתם רוצים ממנגנון הגנה.
הפתרון הוא לא לכבות את ההגנה. הוא להחליט, במודע, אילו כלים מותר להריץ בלי לשאול. בקובץ ההגדרות של הפרויקט — למשל .claude/settings.local.json — מוסיפים כלל הרשאה מפורש רק לשלושת כלי הקריאה:
{
"permissions": {
"allow": [
"mcp__financy__list_accounts",
"mcp__financy__get_status",
"mcp__financy__list_transactions"
]
}
}
אפשר גם פשוט לבקש מ-Claude להוסיף את זה.
שימו לב מה לא נמצא ברשימה: אין כוכבית על כל השרת, ואין כלים שלא צריך. זו בדיוק הגישה של Financy לאורך כל הדרך — רואים את הכסף. לא נוגעים בו. החיבור קורא בלבד, והכלל שהוספתם קורא בלבד. אם בעתיד תחברו למוד שרת שיכול גם לכתוב, אל תעתיקו את הכלל הזה בעיניים עצומות.
מה כדאי לדעת לפני
מודים עדיין חדשים. האירועים וה-API יכולים להשתנות בין גרסאות. אם מוד הפסיק לעבוד אחרי עדכון, בקשו מ-Claude להריץ עליו claude plugin validate ולתקן.
מוד שנכשל לא שובר את Claude Code. כשהציור של מוד לא תקין, Claude Code מצייר את הגרסה הרגילה שלו, ושורה עמומה בשיחה אומרת מה נדחה. זה המקום הראשון להסתכל בו.
דשבורד הכסף לא בזמן אמת. הפאנל מראה את הנתונים מהרענון האחרון, ו-Financy מראה את מה שהבנקים העבירו. בגלל זה הוא מציג לאיזה תאריך הנתונים נכונים, ומתריע כשחיבור לא התעדכן. וחשבון שלא חיברתם ל-Financy לא יופיע בו.
הגרפים לא מחליפים בדיקה. לפני החלטה כספית, פתחו את התנועות שמאחורי המספר.
פרטיות. המידע הפיננסי שלכם ב-Financy לא משמש לאימון מודלים, לא נמכר ולא מועבר לאף אחד. והמוד עצמו רץ אצלכם, בתוך Claude Code.
הכלי כבר לא חייב להישאר כמו שהוא הגיע
הנקודה היא לא חמשת המודים האלה. היא שמשהו שמפריע לכם בממשק — כבר לא צריך לחכות שמישהו אחר יתקן. מתארים, Claude בונה, וזה מופיע על המסך בתוך כמה דקות.
ואם יש מידע אחד שהייתם רוצים לראות כל הזמן בצד המסך, כנראה שזה הכסף. בשביל זה צריך את הנתונים, וזה מה ש-Financy נותן: בנקים, כרטיסי אשראי וארנקים דיגיטליים, במקום אחד, דרך Open Banking מפוקח ובקריאה בלבד.
הירשמו ל-Financy, חברו את החשבונות, ובקשו מ-Claude Code את הדשבורד שלכם
בניתם מוד משלכם? ספרו לנו מה הוא מציג.
