
מה זה
Caveman הוא skill ל-Claude Code מאת Julius Brussee. הרעיון פשוט עד כדי גסות: לגרום לסוכן לכתוב כמו אדם קדמון חכם. מילות יידוע (a, an, the), מילות מילוי (just, really, basically), נימוסים (sure, of course, happy to) ועמימות (maybe, it seems) - כולם נושרים. משפטים חלקיים מותרים. מה שנשמר בשלמותו הוא כל דבר שנושא משמעות: מונחים טכניים, מחרוזות שגיאה מדויקות, נתיבי קבצים וגושי קוד. הסלוגן ב-README מסכם את הכל: "why use many token when few token do trick."
הריפו הוא github.com/JuliusBrussee/caveman - רישיון MIT, דורש Node ≥ 18, הגרסה הנוכחית v1.9.0 (נכון ליוני 2026), והוא צבר מעל 74k כוכבים. למרות השם "Claude Code", ה-installer תומך גם ב-Codex, Gemini, Cursor, Windsurf, Cline, Copilot ועוד עשרות סוכנים. הבנצ'מארק הרשמי על 10 משימות אמיתיות מראה ממוצע קיצוץ של 65% ב-output tokens (טווח 22-87%), מה שבסשן סוכן כבד מתורגם ישירות לתקציב context ולדולרים.
איך זה עובד - ארכיטקטורה
זו הנקודה שבה הרבה הסברים טועים: Caveman אינו מעבד-פלט שמשכתב את התשובה אחרי שהמודל סיים לכתוב. אין שלב post-processing שלוקח פסקה מלאה ודוחס אותה. במקום זה, המנגנון מורכב משני חלקים שמשנים את אופן הכתיבה של המודל מלכתחילה:
- skill file — קובץ חוקים שמלמד את הסוכן את הכלל המנחה: drop filler, keep substance, use fragments. המודל מייצר את הפלט התמציתי ישירות, כך שאתה משלם tokens רק עבור הטקסט הקצר.
- hook — ב-Claude Code, ה-installer רושם ל-
~/.claude/settings.jsonשני hooks (SessionStart ו-UserPromptSubmit) שכותבים קובץ דגל זעיר,~/.claude/.caveman-active. הסוכן קורא את הדגל ומדבר caveman כבר מההודעה הראשונה - בלי שתצטרך להקליד/cavemanידנית בכל סשן.
ההבחנה הזו חשובה כי היא מסבירה למה האיכות לא נפגעת: ה-skill נוגע רק ב-output tokens. ה-reasoning/thinking tokens הפנימיים של המודל לא נדחסים כלל - הסוכן ממשיך לחשוב בשלמות, רק מפסיק לבזבז את הפלט הגלוי על פרוזה. במקום "Sure! I'd be happy to help - the issue is likely caused by..." מקבלים "Bug in auth middleware. Token expiry uses < not <=. Fix:". גושי קוד, URLs ונתיבי קבצים נשמרים בייט-בבייט.
ארבע רמות הדחיסה
הרמה נקבעת עם /caveman [level] ונשמרת לאורך הסשן:
- lite — גוזר את מילות המילוי בלבד, שומר על משפטים מלאים. קריא לחלוטין לעין לא מורגלת.
- full — ברירת המחדל. משפטים חלקיים, מחיקת מילות יידוע, דחיסה אגרסיבית.
- ultra — כמעט טלגרפי. צפיפות מקסימלית, מינימום מילים.
- wenyan — סגנון סינית קלאסית (文言), שמצמצם את שטח הפנים עוד יותר בזכות הצפיפות הסמנטית הגבוהה של התווים.
התקנה והגדרה
ההתקנה היא שורה אחת. ב-macOS / Linux / WSL / Git Bash:
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
ב-Windows PowerShell 5.1+:
irm https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.ps1 | iex
בגלל שמדובר ב-curl | bash שנוגע ב-~/.claude/settings.json, כדאי לראות מה הוא עומד לכתוב לפני שמתחייבים. ה-installer מקבל --dry-run לבדיקה יבשה, ודגלים נוספים כמו --force, --minimal, --uninstall ו---with-init:
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash -s -- --dry-run
בפועל ה-installer מניח ב-~/.claude/hooks/ מספר קבצים (caveman-activate.js, caveman-mode-tracker.js, caveman-statusline.sh/.ps1, caveman-config.js), ממזג hooks לתוך settings.json תוך גיבוי ל-settings.json.bak, ומסמן את ההתקנה הפעילה עם ~/.claude/.caveman-active. ל-Codex ול-Gemini ההפעלה אוטומטית; לסוכן שלא מזוהה אוטומטית מעבירים --with-init כדי שיניח קבצי חוקים ל-IDE בתיקיית העבודה הנוכחית.
יכולות מרכזיות
מעבר לדחיסה הפסיבית, יש חמש פקודות slash שמכסות תרחישי עבודה ספציפיים:
/caveman [lite|full|ultra|wenyan] # set compression level (persists per session)
/caveman-commit # conventional commit, ≤ 50 chars
/caveman-review # one-line PR comments per line
/caveman-compress <file> # rewrite a memory file in place
/caveman-stats # session + lifetime token savings + USD
commit אוטומטי, conventional, ≤ 50 תווים — /caveman-commit בונה הודעה מתוך ה-diff:
> /caveman-commit
fix(auth): guard nil token
> /caveman-commit
feat(export): csv stream endpoint
סקירת PR בשורה אחת לכל הערה — /caveman-review מצמיד מספר שורה, חומרה ופעולה:
> /caveman-review
L42: bug: user null. Add guard.
L88: perf: N+1 on tags. Eager-load.
L120: nit: rename `tmp` → `pendingRows`.
דחיסת קובץ זיכרון — /caveman-compress משכתב קובץ כמו CLAUDE.md תוך שמירה על קוד, URLs ונתיבים. בבדיקות על 5 קבצי פרויקט אמיתיים החיסכון הממוצע ב-input tokens היה 46% (טווח 36.9%-59.6%) - context שמתפנה לקוד במקום להערות:
> /caveman-compress CLAUDE.md
rewriting 4,820 tokens → 2,610 tokens (46% saved)
Wrote CLAUDE.md.caveman. Preview before overwrite? [y/N]
חשבונאות שקופה — /caveman-stats קורא את לוג הסשן וסופר כמה נחסך בפועל, כולל המרה לדולרים. אם ה-badge בשורת הסטטוס מפריע, אפשר להשתיק אותו עם משתנה הסביבה CAVEMAN_STATUSLINE_SAVINGS=0.
Cavecrew - שלושה subagents
הפלאגין מגיע עם שלושה subagents (ה-cavecrew) שמדברים caveman בעצמם, כך שתוצאות הכלים שהם מחזירים לחלון ה-context של הסוכן ההורה קטנות בכ-60% לעומת subagent רגיל. בלולאות ארוכות זה ההבדל בין סוכן שמחזיק קוהרנטיות שעות לבין כזה שנכנס ל-context compaction כל כמה דקות.
- cavecrew-investigator — מאתר קוד, לקריאה בלבד. מחזיר קובץ/פונקציה/שורה, לא יכול לערוך.
- cavecrew-builder — עורך כירורגי. מתמקד בשינוי ממוקד ולא בעריכות רוחב.
- cavecrew-reviewer — סוקר diff ומוציא תוצאה בפורמט שורה-לבעיה שראינו למעלה.
שסתום הבטיחות - מה לעולם לא נדחס
הדחיסן כירורגי בכוונה, ושומר על אזורים שבהם תמציתיות מסוכנת. נדחס: מילות יידוע (a/an/the), תארי מילוי (just, really, basically, simply, very), נימוסים (sure, of course, happy to), עמימות (maybe, perhaps, it seems, I think), חזרה על השאלה, וביטויי מעבר (moving on, additionally, furthermore).
נשמר בשלמותו: כל גוש מוקף backticks, מחרוזות שגיאה מדויקות, נתיבי קבצים, מונחים טכניים, מספרי גרסאות, URLs, הודעות commit, גוף PR, וה-reasoning tokens עצמם. ה-safety valve עוצר את הדחיסה גם באזהרות אבטחה, באישור פעולות בלתי-הפיכות וברצפי שלבים שבהם משפט חלקי עלול להוביל לאי-הבנה. ההפרדה הזו - אגרסיבי על פרוזה, אפס על תוכן - היא מה שמאפשר להשאיר את המצב פעיל כברירת מחדל בלי לחשוש לשבירת קוד.
פירוט הבנצ'מארק
המספרים ב-README מגיעים מ-10 משימות אמיתיות, לא prompts סינתטיים, וכל שורה מציינת tokens של תשובה רגילה מול caveman:
- React re-render bug — 1,180 → 159 · 87%
- React error boundary — 3,454 → 456 · 87%
- PostgreSQL connection pool — 2,347 → 380 · 84%
- Auth middleware token expiry — 704 → 121 · 83%
- PostgreSQL race condition — 1,200 → 232 · 81%
- Docker multi-stage build — 1,042 → 290 · 72%
- PR security review — 678 → 398 · 41%
- Microservices architecture — 446 → 310 · 30%
- Git rebase vs merge — 702 → 292 · 58%
- Callback to async/await — 387 → 301 · 22%
ממוצע על פני כל 10 המשימות: 1,214 → 294 tokens, 65% קיצוץ. הקצה העליון הוא משימות הוראה/הסבר (שם מודל ברירת המחדל מנפח הכי הרבה); הקצה התחתון הוא תשובות עובדתיות קצרות שכבר אין בהן מה לדחוס. נקודה הוגנת ש-README מציין במפורש: ההשוואה היא מול "Answer concisely", לא מול ברירת המחדל הוורבוזית - כלומר ה-delta אמיתי ולא מנופח מלאכותית.
מערכת אקולוגית
Caveman הוא חלק ממשפחה שלמה שעובדת באותו עיקרון של צמצום tokens:
- caveman-shrink — MCP middleware (חבילת npm) שעוטף MCP server ודוחס את תיאורי הכלים לפני שהם מגיעים ל-context. נרשם אוטומטית עם
--with-mcp-shrink. - caveman-code — סוכן קידוד טרמינלי מלא, מתואר כצורך כ-2x פחות tokens מ-Codex.
- cavemem — זיכרון משותף בין Claude Code, Codex ו-Gemini.
- cavekit — לולאת בנייה מונחית-ספציפיקציה (spec → blueprint → build).
- cavegemma — מודל Gemma 4 31B מכוונן על זוגות טקסט שעברו דחיסת caveman.
מגבלות והערכה כנה
שתי הסתייגויות שכדאי להחזיק בראש. הראשונה: פלט ultra או wenyan גולמי נקרא כמו הודעה ממישהו שמיהר מאוד - כשעובדים בזוג עם מי שלא ראה את המצב, כדאי לרדת ל-lite כדי שהתשובות יישארו אנושיות. השנייה: זהו curl | bash שנוגע בקובץ ההגדרות של הסוכן, ולכן ה---dry-run אינו קישוט - הוא הצעד הראשון הנכון.
ראוי לציין שהרעיון נשען על בסיס אמפירי רחב יותר מהפרויקט עצמו. מאמר מ-מרץ 2026, "Brevity Constraints Reverse Performance Hierarchies in Language Models", מצא שהגבלת מודלים גדולים לתשובות קצרות שיפרה דיוק בעד 26 נקודות בחלק מהבנצ'מארקים - תמיכה בהנחה ש-output ארוך אינו בהכרח טוב יותר, ולעיתים אף פוגע.
למה זה חשוב בפועל
בשימוש יומיומי שני המנופים הגדולים הם עלות ו-context. עלות: יום סוכן כבד שורף כסף אמיתי על tokens שאף אחד לא קורא - נימוסים, חזרות על השאלה, פתיחות של "you're absolutely right". /caveman-stats הופך את החיסכון הזה למספר שאפשר לראות, וזה לבדו משנה את האופן שבו מסתכלים על תקציב הסשן. Context: בלולאות ארוכות ה-context הוא צוואר הבקבוק, לא הכסף, ותוצאות כלים קטנות ב-60% מה-cavecrew אומרות שהסוכן מחזיק קוהרנטיות הרבה יותר זמן לפני compaction.
מניסיון, חלוקת השימוש מתבקשת מעצמה: full כברירת מחדל לעבודה לבד, ירידה ל-lite ברגע שיש עין נוספת שלא ראתה את המצב, ו-/caveman-compress על קבצי זיכרון מנופחים כדי שיותר מחלון ה-context ילך לקוד ופחות להערות. ה-subagent cavecrew-investigator ב-refactors רב-קבציים מחזיר סיכום דחוס במקום dump של אלפי tokens - וזה לבדו שווה את ההתקנה.
מקורות
- github.com/JuliusBrussee/caveman — הריפו הרשמי
- README — טבלת הבנצ'מארק המלאה, הרמות והסלוגן
- bin/install.js — דגלים, hooks וקבצי ההתקנה
- claudepluginhub.com — רישום הפלאגין