Skip to content

Latest commit

 

History

History
849 lines (628 loc) · 56.8 KB

File metadata and controls

849 lines (628 loc) · 56.8 KB

Graphify

🇺🇸 English | 🇨🇳 简体中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇩🇪 Deutsch | 🇫🇷 Français | 🇪🇸 Español | 🇮🇳 हिन्दी | 🇧🇷 Português | 🇷🇺 Русский | 🇸🇦 العربية | 🇮🇷 فارسی | 🇮🇹 Italiano | 🇵🇱 Polski | 🇳🇱 Nederlands | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇻🇳 Tiếng Việt | 🇮🇩 Bahasa Indonesia | 🇸🇪 Svenska | 🇬🇷 Ελληνικά | 🇷🇴 Română | 🇨🇿 Čeština | 🇫🇮 Suomi | 🇩🇰 Dansk | 🇳🇴 Norsk | 🇭🇺 Magyar | 🇹🇭 ภาษาไทย | 🇺🇿 Oʻzbekcha | 🇹🇼 繁體中文 | 🇵🇭 Filipino | 🇮🇱 עברית

YC S26 Discord The Memory Layer CI PyPI Downloads Sponsor LinkedIn X

Star History Chart

הקלידו ‎/graphify בעוזר ה-AI לכתיבת קוד שלכם, והוא ימפה את הפרויקט כולו — קוד, מסמכים, קובצי PDF, תמונות, סרטונים — לגרף ידע שאפשר לשאול עליו שאלות, במקום לחפש בקבצים עם grep.

עובד ב-Claude Code, Codex, OpenCode, Kilo Code, Cursor, Gemini CLI, GitHub Copilot CLI, VS Code Copilot Chat, Aider, Amp, OpenClaw, Factory Droid, Trae, Hermes, Kimi Code, Kiro, Pi, Devin CLI ו-Google Antigravity.

/graphify .

זה הכול. מקבלים שלושה קבצים:

graphify-out/
├── graph.html       נפתח בכל דפדפן — לחיצה על צמתים, סינון, חיפוש
├── GRAPH_REPORT.md  עיקרי הדברים: מושגי מפתח, קשרים מפתיעים, שאלות מוצעות
└── graph.json       הגרף המלא — אפשר לשאול עליו בכל רגע בלי לקרוא שוב את הקבצים

לדף ארכיטקטורה קריא עם דיאגרמות זרימת-קריאות ב-Mermaid, הריצו:

graphify export callflow-html

דרישות מקדימות

דרישה מינימום בדיקה התקנה
Python 3.10+ python --version python.org
uv (מומלץ) כל גרסה uv --version curl -LsSf https://astral.sh/uv/install.sh | sh
pipx (חלופה) כל גרסה pipx --version pip install pipx

התקנה מהירה ב-macOS (עם Homebrew):

brew install python@3.12 uv

התקנה מהירה ב-Windows:

winget install astral-sh.uv

Ubuntu/Debian:

sudo apt install python3.12 python3-pip pipx
# או התקנת uv:
curl -LsSf https://astral.sh/uv/install.sh | sh

התקנה

החבילה הרשמית: חבילת ה-PyPI היא graphifyy (עם y כפולה). חבילות graphify* אחרות ב-PyPI אינן קשורות לפרויקט. פקודת ה-CLI היא עדיין graphify.

שלב 1 — התקנת החבילה:

# מומלץ (סביבה מבודדת; אם הפקודה 'graphify' לא נמצאת אחר כך, הריצו: uv tool update-shell):
uv tool install graphifyy

# חלופות:
pipx install graphifyy
pip install graphifyy  # עשוי לדרוש הגדרת PATH — ראו הערה בהמשך

שלב 2 — רישום המיומנות (skill) אצל עוזר ה-AI שלכם:

graphify install

זהו. פתחו את עוזר ה-AI והקלידו ‎/graphify .

כדי להתקין את המיומנות בתוך המאגר הנוכחי במקום בפרופיל המשתמש, הוסיפו --project:

graphify install --project
graphify install --project --platform codex

התקנה ברמת הפרויקט כותבת לתוך התיקייה הנוכחית, למשל .claude/skills/graphify/SKILL.md או .agents/skills/graphify/SKILL.md (בתוספת תיקיית references/ שהמיומנות טוענת לפי הצורך), ומדפיסה רמז git add לקבצים שאפשר לבצע להם commit. פקודות פר-פלטפורמה שתומכות בהתקנה ברמת הפרויקט מקבלות את אותו דגל, למשל graphify claude install --project או graphify codex install --project.

הערת PowerShell: השתמשו ב-graphify . ולא ב-‎/graphify . — הלוכסן המוביל הוא מפריד נתיבים ב-PowerShell.

graphify: command not found?uv tool install / pipx install מציבים את פקודת graphify בתיקיית הכלים שלהם (~/.local/bin). אם המעטפת (shell) לא מוצאת אותה מיד אחרי ההתקנה — נפוץ בהתקנת macOS + zsh טרייה — התיקייה הזו עדיין לא ב-PATH: הריצו uv tool update-shell (או pipx ensurepath) ופתחו טרמינל חדש. עם pip רגיל, הוסיפו את ~/.local/bin (בלינוקס) או ~/Library/Python/3.x/bin (במק) ל-PATH, או הריצו python -m graphify.

מריצים עם uvx / uv tool run בלי להתקין? ציינו את שם החבילה, לא את שם הפקודה: uvx --from graphifyy graphify install. ‏uvx graphify … רגיל נכשל (No solution found … no versions of graphify) כי uv tool run קורא את המילה הראשונה כשם חבילה, והחבילה היא graphifyy — פקודת graphify נמצאת בתוכה.

הימנעו מ-pip install במק/Windows אם אפשר. המיומנות מאתרת את Python בזמן ריצה מתוך graphify-out/.graphify_python; אם הוא מצביע על סביבה שונה מזו שבה pip התקין את החבילה, תקבלו ModuleNotFoundError: No module named 'graphify'. ‏uv tool install ו-pipx install מבודדים את החבילה בסביבה משלהם ונמנעים מהבעיה לחלוטין.

הוקים של Git עם uv tool / pipx:graphify hook install מטמיע את נתיב המפרש הנוכחי ישירות בסקריפטי ההוק בזמן ההתקנה, כך שהוק ה-post-commit יופעל כראוי גם בלקוחות Git גרפיים וב-CI שבהם ~/.local/bin אינו ב-PATH. אם התקנתם מחדש או שדרגתם את graphify, הריצו שוב graphify hook install כדי לרענן את הנתיב המוטמע.

בחרו את הפלטפורמה שלכם

פלטפורמה פקודת התקנה
Claude Code (לינוקס/מק) graphify install
Claude Code (Windows) graphify install (זיהוי אוטומטי) או graphify install --platform windows
CodeBuddy graphify install --platform codebuddy
Codex graphify install --platform codex
OpenCode graphify install --platform opencode
Kilo Code graphify install --platform kilo
GitHub Copilot CLI graphify install --platform copilot
VS Code Copilot Chat graphify vscode install
Aider graphify install --platform aider
OpenClaw graphify install --platform claw
Factory Droid graphify install --platform droid
Trae graphify install --platform trae
Trae CN graphify install --platform trae-cn
Gemini CLI graphify install --platform gemini
Hermes graphify install --platform hermes
Kimi Code graphify install --platform kimi
Amp graphify amp install
Agent Skills (חוצה-פלטפורמות) graphify install --platform agents (כינוי: --platform skills)
Kiro IDE/CLI graphify kiro install
Pi coding agent graphify install --platform pi
Cursor graphify cursor install
Devin CLI graphify devin install
Google Antigravity graphify antigravity install

משתמשי Codex צריכים גם multi_agent = true תחת [features] בקובץ ~/.codex/config.toml לצורך חילוץ מקבילי. CodeBuddy משתמש באותו מנגנון Agent tool והוק PreToolUse כמו Claude Code. ‏Factory Droid משתמש בכלי Task לשיגור תת-סוכנים במקביל. OpenClaw ו-Aider משתמשים בחילוץ טורי (תמיכה בסוכנים מקביליים עדיין מוקדמת בפלטפורמות אלו). Trae משתמש ב-Agent tool לשיגור תת-סוכנים במקביל ואינו תומך בהוקים מסוג PreToolUse — ‏AGENTS.md הוא המנגנון הקבוע שם.

--platform agents (כינוי: --platform skills) מכוון למיקומים הגנריים חוצי-הפלטפורמות של Agent-Skills: ‏~/.agents/skills/ הגלובלי של המשתמש (נקרא על ידי npx skills ומסגרות תואמות-מפרט) בהתקנה גלובלית, ו-./.agents/skills/ בהתקנת פרויקט (--project). ‏graphify install החשוף נשאר חד-פלטפורמי (Claude Code) בכוונה — השתמשו בפלטפורמת agents כשתרצו שהמיומנות תהיה זמינה לכל מסגרת שקוראת .agents/skills.

Codex משתמש ב-‎$graphify במקום ‎/graphify.

תוספים אופציונליים

התקינו רק מה שצריך:

תוסף מה הוא מוסיף התקנה
pdf חילוץ PDF uv tool install "graphifyy[pdf]"
office תמיכה ב-.docx ו-.xlsx uv tool install "graphifyy[office]"
google רינדור Google Sheets uv tool install "graphifyy[google]"
video תמלול וידאו/אודיו (faster-whisper + yt-dlp) uv tool install "graphifyy[video]"
mcp שרת MCP stdio uv tool install "graphifyy[mcp]"
neo4j דחיפה ל-Neo4j uv tool install "graphifyy[neo4j]"
falkordb דחיפה ל-FalkorDB uv tool install "graphifyy[falkordb]"
svg ייצוא גרף ל-SVG uv tool install "graphifyy[svg]"
leiden זיהוי קהילות Leiden ‏(Python < 3.13 בלבד) uv tool install "graphifyy[leiden]"
ollama הרצה מקומית עם Ollama uv tool install "graphifyy[ollama]"
openai OpenAI / ממשקי API תואמי-OpenAI uv tool install "graphifyy[openai]"
gemini Google Gemini API uv tool install "graphifyy[gemini]"
anthropic Anthropic Claude API ‏(--backend claude, משתמש ב-ANTHROPIC_API_KEY) uv tool install "graphifyy[anthropic]"
bedrock AWS Bedrock (משתמש ב-IAM, ללא מפתח API) uv tool install "graphifyy[bedrock]"
azure Azure OpenAI Service ‏(--backend azure, משתמש ב-AZURE_OPENAI_API_KEY + ‏AZURE_OPENAI_ENDPOINT) uv tool install "graphifyy[openai]"
sql חילוץ סכמות SQL uv tool install "graphifyy[sql]"
postgres אינטרוספקציה של PostgreSQL חי (--postgres DSN) uv tool install "graphifyy[postgres]"
dm חילוץ AST של BYOND DreamMaker ‏.dm/.dme (עשוי לדרוש קומפיילר C + ‏python3-dev אם אין wheel מתאים לפלטפורמה) uv tool install "graphifyy[dm]"
terraform חילוץ AST של Terraform / HCL ‏.tf/.tfvars/.hcl uv tool install "graphifyy[terraform]"
chinese פילוח שאילתות בסינית (jieba) uv tool install "graphifyy[chinese]"
all כל מה שלמעלה uv tool install "graphifyy[all]"

גרמו לעוזר שלכם להשתמש בגרף תמיד

הריצו פעם אחת בפרויקט אחרי בניית גרף:

פלטפורמה פקודה
Claude Code graphify claude install
CodeBuddy graphify codebuddy install
Codex graphify codex install
OpenCode graphify opencode install
Kilo Code graphify kilo install
GitHub Copilot CLI graphify copilot install
VS Code Copilot Chat graphify vscode install
Aider graphify aider install
OpenClaw graphify claw install
Factory Droid graphify droid install
Trae graphify trae install
Trae CN graphify trae-cn install
Cursor graphify cursor install
Gemini CLI graphify gemini install
Hermes graphify hermes install
Kimi Code graphify install --platform kimi
Amp graphify amp install
Agent Skills (חוצה-פלטפורמות) graphify agents install (כינוי: graphify skills install)
Kiro IDE/CLI graphify kiro install
Pi coding agent graphify pi install
Devin CLI graphify devin install
Google Antigravity graphify antigravity install

הפקודה כותבת קובץ תצורה קטן שמנחה את העוזר שלכם להתייעץ עם גרף הידע בשאלות על בסיס הקוד — ולהעדיף שאילתות ממוקדות כמו graphify query "<שאלה>" על פני קריאת הדוח המלא או grep על קבצים גולמיים. בפלטפורמות שתומכות בהוקים נושאי-מטען (Claude Code, ‏Gemini CLI), הוק מופעל אוטומטית לפני קריאות כלי בסגנון חיפוש (וב-Claude Code גם לפני קריאת קובצי מקור אחד-אחד דרך הכלים Read/Glob) ומכוון את העוזר לנתיב הגרף. באחרות (Codex, ‏OpenCode, ‏Cursor וכו'), קובצי ההנחיות הקבועים (AGENTS.md, ‏.cursor/rules/ וכו') מספקים את אותה הנחיית "קודם הגרף". ‏GRAPH_REPORT.md עדיין זמין לסקירת ארכיטקטורה רחבה.

CodeBuddy עושה את אותם שני דברים כמו Claude Code: כותב קטע CODEBUDDY.md שמנחה את CodeBuddy לקרוא את graphify-out/GRAPH_REPORT.md לפני מענה על שאלות ארכיטקטורה, ומתקין הוקים מסוג PreToolUse ‏(.codebuddy/settings.json) שמופעלים לפני פקודות חיפוש ב-Bash וקריאת קבצים, ומכוונים ל-graphify query במקום.

Codex כותב ל-AGENTS.md וגם מתקין הוק PreToolUse ב-.codex/hooks.json שמופעל לפני כל קריאת כלי Bash — אותו מנגנון קבוע כמו ב-Claude Code.

להסרת graphify מכל הפלטפורמות בבת אחת: graphify uninstall (הוסיפו --purge כדי למחוק גם את graphify-out/). או השתמשו בפקודה הפר-פלטפורמית (למשל graphify claude uninstall).


Kilo Code מתקין את מיומנות Graphify ל-~/.config/kilo/skills/graphify/SKILL.md ופקודת ‎/graphify נטיבית ל-~/.config/kilo/command/graphify.md. ‏graphify kilo install כותב גם AGENTS.md וגם תוסף tool.execute.before נטיבי (.kilo/plugins/graphify.js + רישום ב-.kilo/kilo.json או .kilo/kilo.jsonc) כך ש-Kilo מקבל את אותה התנהגות תזכורת-גרף קבועה דרך תצורת .kilo נטיבית.

Cursor כותב .cursor/rules/graphify.mdc עם alwaysApply: true — ‏Cursor מכליל אותו בכל שיחה אוטומטית, ללא צורך בהוק.

מה יש בדוח

  • צומתי מפתח (God nodes) — המושגים המקושרים ביותר בפרויקט. הכול עובר דרכם.
  • קשרים מפתיעים — קישורים בין דברים שחיים בקבצים או מודולים שונים. מדורגים לפי מידת ההפתעה.
  • ה"למה" — הערות בקוד (# NOTE:‏, # WHY:‏, # HACK:), ‏docstrings ורציונל עיצובי מהמסמכים מחולצים כצמתים נפרדים המקושרים לקוד שהם מסבירים.
  • שאלות מוצעות — 4–5 שאלות שהגרף נמצא בעמדה ייחודית לענות עליהן.
  • תגי ביטחון — כל קשר מוסק מסומן EXTRACTED‏, INFERRED או AMBIGUOUS. תמיד יודעים מה נמצא ומה נוחש.

אילו קבצים הוא מטפל

סוג סיומות
קוד (36 דקדוקי tree-sitter) .py .ts .js .jsx .tsx .mjs .go .rs .java .c .cpp .h .hpp .cu .cuh .metal .rb .cs .kt .scala .php .swift .lua .luau .zig .ps1 .psm1 .ex .exs .m .mm .jl .vue .svelte .astro .groovy .gradle .dart .v .sv .svh .sql .f .f90 .f95 .f03 .f08 .pas .pp .dpr .dpk .lpr .inc .dfm .lfm .lpk .sh .bash .json .dm .dme .dmi .dmm .dmf .sln .slnx .csproj .fsproj .vbproj .xaml .razor .cshtml ‏(.dm/.dme דורש uv tool install graphifyy[dm]; ‏CUDA ‏.cu/.cuh ו-Metal ‏.metal משתמשים בדקדוק C++)
Salesforce Apex .cls .trigger (מבוסס regex; מחלקות, ממשקים, enums, מתודות, טריגרים, קשתות SOQL/DML)
Terraform / HCL .tf .tfvars .hcl (דורש uv tool install graphifyy[terraform])
תצורות MCP .mcp.jsonmcp.jsonmcp_servers.jsonclaude_desktop_config.json — מחלץ צומתי שרתים, הפניות לחבילות, דרישות משתני סביבה
מניפסטים של חבילות apm.ymlpyproject.tomlgo.modpom.xml — צומת חבילה קנוני אחד לכל חבילה (לפי שם) בתוספת קשתות depends_on, כך שחבילה שמופנית מכמה מניפסטים היא מוקד (hub) יחיד
מסמכים .md .mdx .qmd .html .txt .rst .yaml .yml (קישורי markdown ‏[text](./other.md) ו-[[wikilinks]] הופכים לקשתות references בין מסמכים)
Office .docx .xlsx (דורש uv tool install graphifyy[office])
Google Workspace .gdoc .gsheet .gslides ‏(opt-in; דורש אימות gws ו---google-workspace; ‏Sheets דורש uv tool install graphifyy[google])
PDF .pdf
תמונות .png .jpg .webp .gif
וידאו / אודיו .mp4 .mov .mp3 .wav ועוד (דורש uv tool install graphifyy[video])
YouTube / כתובות URL כל כתובת וידאו (דורש uv tool install graphifyy[video])

קוד מחולץ מקומית ללא קריאות API ‏(AST באמצעות tree-sitter). כל השאר עובר דרך ה-API של מודל עוזר ה-AI שלכם.

קובצי .gdoc‏, .gsheet ו-.gslides של Google Drive לשולחן העבודה הם קיצורי דרך, לא תוכן מסמכים. כדי לכלול מסמכי Google Docs, ‏Sheets ו-Slides נטיביים בחילוץ headless, התקינו ואמתו את gws CLI, ואז הריצו:

uv tool install "graphifyy[google]"  # נדרש לרינדור טבלאות Google Sheets
gws auth login -s drive
graphify extract ./docs --google-workspace

אפשר גם להגדיר GRAPHIFY_GOOGLE_WORKSPACE=1. ‏graphify מייצא קיצורי דרך אל graphify-out/converted/ כקובצי Markdown נלווים, ואז מחלץ אותם.


פקודות נפוצות

/graphify .                        # בניית גרף לתיקייה הנוכחית
/graphify ./docs --update          # חילוץ מחדש של קבצים שהשתנו בלבד
/graphify . --cluster-only         # הרצת אשכול מחדש בלי לחלץ מחדש
/graphify . --cluster-only --resolution 1.5      # קהילות מפורטות יותר
/graphify . --cluster-only --exclude-hubs 99     # הסתרת מוקדי-עזר מדירוג צומתי המפתח
/graphify . --no-viz               # דילוג על ה-HTML, רק הדוח וה-JSON
/graphify . --wiki                 # בניית ויקי markdown מהגרף
graphify export callflow-html      # ‏HTML ארכיטקטורה/זרימת-קריאות ב-Mermaid (מתחדש אוטומטית בכל commit אם ההוק מותקן)

/graphify query "מה מחבר את האימות למסד הנתונים?"
/graphify path "UserService" "DatabasePool"
/graphify explain "RateLimiter"

/graphify add https://arxiv.org/abs/1706.03762   # הבאת מאמר והוספתו
/graphify add <youtube-url>                       # תמלול והוספת סרטון

graphify hook install              # בנייה מחדש אוטומטית בכל commit
graphify merge-graphs a.json b.json              # מיזוג שני גרפים

graphify prs                       # לוח PR: מצב CI, סטטוס ביקורת, מיפוי worktree
graphify prs 42                    # צלילה עמוקה ל-PR ‏#42 עם השפעת גרף
graphify prs --triage              # ‏AI מדרג את תור הביקורות שלכם (משתמש ב-backend המוגדר)
graphify prs --conflicts           # ‏PRs שחולקים קהילות גרף — סיכון בסדר המיזוג

ראו את רשימת הפקודות המלאה בהמשך.


התעלמות מקבצים

צרו קובץ .graphifyignore בשורש הפרויקט — אותו תחביר כמו .gitignore, כולל שלילה עם !.

.gitignore נאכף אוטומטית. ‏graphify קורא את ה-.gitignore בכל תיקייה. אם קיים גם .graphifyignore, השניים ממוזגים — תבניות .graphifyignore מוערכות אחרונות, כך שהן גוברות במקרה של התנגשות (כולל שלילות !). הוספת .graphifyignore רק מחריגה עוד; היא לעולם לא תחזיר קובץ שה-.gitignore כבר החריג. תחולת תת-תיקיות עובדת כמו ב-git — קובץ ignore משפיע רק על תת-העץ שלו.

# .graphifyignore
node_modules/
dist/
*.generated.py

# לאנדקס רק את src/, להתעלם מכל השאר
*
!src/
!src/**

עבודת צוות

graphify-out/ מיועד להיכנס ל-git כדי שכל חברי הצוות יתחילו עם מפה מוכנה.

תוספות מומלצות ל-.gitignore:

graphify-out/cost.json        # מקומי בלבד
# graphify-out/cache/         # אופציונלי: commit למהירות, דילוג לשמירה על ריפו קטן

manifest.json הוא כעת נייד — המפתחות נשמרים כנתיבים יחסיים ומעוגנים מחדש בטעינה, כך שבטוח לבצע לו commit והדבר חוסך בנייה מלאה מחדש ב-checkout הראשון.

תהליך העבודה:

  1. אחד מחברי הצוות מריץ ‎/graphify . ומבצע commit ל-graphify-out/.
  2. כולם מושכים — העוזר שלהם קורא את הגרף מיד.
  3. הריצו graphify hook install לבנייה אוטומטית מחדש אחרי כל commit ‏(AST בלבד, ללא עלות API). זה גם מגדיר merge driver של git כך ש-graph.json לעולם לא יישאר עם סימוני קונפליקט — שני מפתחים שמבצעים commit במקביל מקבלים מיזוג-איחוד אוטומטי של הגרפים.
  4. כשמסמכים או מאמרים משתנים, הריצו ‎/graphify --update לרענון הצמתים הללו.

שימוש ישיר בגרף

# שאילתת גרף מהטרמינל
graphify query "הצג את זרימת האימות"
graphify query "מה מחבר בין DigestAuth ל-Response?" --graph graphify-out/graph.json

# חשיפת הגרף כשרת MCP (לגישת כלים חוזרת)
python -m graphify.serve graphify-out/graph.json
python -m graphify.serve --graph graphify-out/graph.json  # גם הדגל --graph מתקבל

# רישום ב-Kimi Code:
kimi mcp add --transport stdio graphify -- python -m graphify.serve graphify-out/graph.json

# או הגשה על HTTP כך שכל הצוות מצביע על URL אחד (בלי graphify מקומי):
python -m graphify.serve graphify-out/graph.json --transport http --port 8080
python -m graphify.serve graphify-out/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET"

שרת ה-MCP נותן לעוזר שלכם גישה מובנית: query_graph‏, get_node‏, get_neighbors‏, shortest_path‏, list_prs‏, get_pr_impact‏, triage_prs.

שרת HTTP משותף

--transport stdio (ברירת המחדל) מריץ שרת מקומי אחד לכל מפתח. --transport http מגיש את אותם כלים על גבי MCP Streamable HTTP, כך שתהליך משותף אחד יכול לשרת את הגרף לכל הצוות — הלקוחות מכוונים את תצורת ה-MCP של ה-IDE אל http://<host>:8080/mcp במקום להריץ graphify מקומית.

דגל ברירת מחדל תפקיד
--transport {stdio,http} stdio סוג התעבורה
--host 127.0.0.1 כתובת ההאזנה ל-HTTP (השתמשו ב-0.0.0.0 לחשיפה מעבר ל-localhost)
--port 8080 פורט ההאזנה
--api-key משתנה סביבה GRAPHIFY_API_KEY דרישת Authorization: Bearer <key> (או X-API-Key)
--path /mcp נתיב העיגון ב-HTTP
--json-response כבוי החזרת JSON רגיל במקום זרמי SSE
--stateless כבוי ללא מצב פר-סשן (לפריסות מאוזנות-עומס / CI)
--session-timeout 3600 ניקוי סשנים לא פעילים אחרי N שניות (0 מבטל)

ברירת המחדל 127.0.0.1 היא loopback בלבד. הגדירו --host 0.0.0.0 וגם --api-key יחד כשחושפים על מארח משותף. אפשר להריץ בקונטיינר:

docker build -t graphify .
docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \
  /data/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET"

הערת WSL / לינוקס: אובונטו מגיעה עם python3, לא python. השתמשו ב-venv כדי להימנע מהתנגשויות:

python3 -m venv .venv && .venv/bin/pip install "graphifyy[mcp]"

משתני סביבה

אלו נדרשים רק לחילוץ headless / CI ‏(graphify extract). בהרצה דרך מיומנות ‎/graphify בתוך ה-IDE, ה-API של המודל מסופק על ידי סשן ה-IDE — לא נדרשים מפתחות נוספים.

משתנה משמש עבור מתי נדרש
ANTHROPIC_API_KEY ‏backend של Claude ‏(Anthropic) --backend claude
ANTHROPIC_BASE_URL כתובת endpoint תואם-Anthropic ‏(פרוקסי LiteLLM, שערים, ...) --backend claude (ברירת מחדל: https://api.anthropic.com)
ANTHROPIC_MODEL שם המודל ל-backend של Claude — ל-endpoints מותאמים, השתמשו בשם/כינוי שהשרת שלכם חושף --backend claude (ברירת מחדל: claude-sonnet-4-6)
GEMINI_API_KEY או GOOGLE_API_KEY ‏backend של Google Gemini --backend gemini
OPENAI_API_KEY ‏OpenAI או ממשקים תואמי-OpenAI --backend openai (שרתים מקומיים מקבלים כל ערך לא ריק)
OPENAI_BASE_URL כתובת שרת תואם-OpenAI ‏(llama.cpp, ‏vLLM, ‏LM Studio, ...) --backend openai (ברירת מחדל: https://api.openai.com/v1)
OPENAI_MODEL שם המודל ל-backend של OpenAI — לשרתים בהרצה עצמית, השתמשו בשם/כינוי שהשרת חושף (בדקו את endpoint ה-/v1/models שלו) --backend openai (ברירת מחדל: gpt-4.1-mini)
DEEPSEEK_API_KEY ‏backend של DeepSeek --backend deepseek
MOONSHOT_API_KEY ‏backend של Kimi Code --backend kimi
OLLAMA_BASE_URL כתובת הרצה מקומית של Ollama --backend ollama (ברירת מחדל: http://localhost:11434)
OLLAMA_MODEL שם מודל Ollama --backend ollama (ברירת מחדל: זיהוי אוטומטי)
GRAPHIFY_OLLAMA_NUM_CTX דריסת גודל חלון ה-KV-cache של Ollama אופציונלי — מותאם אוטומטית כברירת מחדל
GRAPHIFY_OLLAMA_KEEP_ALIVE דקות להשארת מודל Ollama טעון אופציונלי — ‏0 לפריקה אחרי כל chunk
AZURE_OPENAI_API_KEY ‏backend של Azure OpenAI Service --backend azure
AZURE_OPENAI_ENDPOINT כתובת ה-endpoint של משאב Azure --backend azure (נדרש יחד עם מפתח ה-API)
AZURE_OPENAI_API_VERSION דריסת גרסת ה-API של Azure אופציונלי — ברירת מחדל 2024-12-01-preview
AZURE_OPENAI_DEPLOYMENT או GRAPHIFY_AZURE_MODEL שם הפריסה ב-Azure אופציונלי — ברירת מחדל gpt-4o
AWS_* / ~/.aws/credentials ‏AWS Bedrock — שרשרת אישורים סטנדרטית --backend bedrock (ללא מפתח API, משתמש ב-IAM)
GRAPHIFY_MAX_WORKERS מספר threads למקביליות AST אופציונלי — גם דגל --max-workers
GRAPHIFY_MAX_OUTPUT_TOKENS העלאת תקרת הפלט לקורפוסים צפופים אופציונלי — למשל 32768 לקבצים גדולים
GRAPHIFY_API_TIMEOUT ‏timeout לקריאה בשניות עבור HTTP, ‏claude-cli ו-Anthropic SDK ‏(ברירת מחדל: 600) אופציונלי — גם דגל --api-timeout
GRAPHIFY_MAX_RETRIES מספר ניסיונות חוזרים לבקשה שנחסמה בקצב (429) לפני ויתור (ברירת מחדל: 6; מכבד Retry-After) אופציונלי — העלו למגבלות ארגוניות נוקשות; ‏0 מבטל
GRAPHIFY_FORCE כפיית בנייה מחדש של הגרף גם עם פחות צמתים אופציונלי — גם דגל --force
GRAPHIFY_GOOGLE_WORKSPACE הפעלה אוטומטית של ייצוא Google Workspace אופציונלי — הגדירו 1
GRAPHIFY_TRIAGE_BACKEND ‏backend עבור graphify prs --triage אופציונלי — מזוהה אוטומטית מהמפתחות הזמינים
GRAPHIFY_TRIAGE_MODEL דריסת מודל לטריאז' אופציונלי — למשל claude-opus-4-7
GRAPHIFY_QUERY_LOG דריסת נתיב יומן השאילתות (ברירת מחדל: ~/.cache/graphify-queries.log) אופציונלי — ערך ריק או /dev/null להשתקה
GRAPHIFY_QUERY_LOG_DISABLE הגדירו 1 לביטול מוחלט של יומן השאילתות אופציונלי
GRAPHIFY_QUERY_LOG_RESPONSES הגדירו 1 לרישום גם של תשובות תת-גרף מלאות (כבוי כברירת מחדל) אופציונלי
GRAPHIFY_MAX_GRAPH_BYTES דריסת תקרת הגודל של graph.json ‏(512 MiB) — למשל 700MB, ‏2GB או בייטים אופציונלי — שימושי לקורפוסים גדולים מאוד
GRAPHIFY_LLM_TEMPERATURE דריסת טמפרטורת ה-LLM לחילוץ סמנטי — למשל 0.7, או none להשמטה אופציונלי — מושמט אוטומטית למודלי היסק o1/o3/o4/gpt-5

פרטיות

  • קובצי קוד — מעובדים מקומית עם tree-sitter. שום דבר לא עוזב את המחשב. קורפוס של קוד בלבד אינו דורש מפתח API — ‏graphify extract רץ לגמרי offline.
  • וידאו / אודיו — מתומלל מקומית עם faster-whisper. שום דבר לא עוזב את המחשב.
  • מסמכים, PDF, תמונות — נשלחים לעוזר ה-AI שלכם לחילוץ סמנטי (דרך מיומנות ‎/graphify, עם המודל שסשן ה-IDE שלכם מריץ). ‏graphify extract בחילוץ headless דורש GEMINI_API_KEY / ‏GOOGLE_API_KEY ‏(Gemini), ‏MOONSHOT_API_KEY ‏(Kimi), ‏ANTHROPIC_API_KEY ‏(Claude), ‏OPENAI_API_KEY ‏(OpenAI), ‏DEEPSEEK_API_KEY ‏(DeepSeek), מופע Ollama רץ (OLLAMA_BASE_URL), אישורי AWS דרך שרשרת הספקים הסטנדרטית (Bedrock — ללא מפתח API, משתמש ב-IAM), או קובץ ההרצה claude ‏(Claude Code — ללא מפתח API, משתמש במנוי Claude שלכם). הדגל --dedup-llm משתמש באותו מפתח.
  • מיקום נתונים (Data residency) — ‏graphify extract מזהה אוטומטית באיזה ספק להשתמש לפי המפתח שמוגדר (עדיפות: Gemini ‏→ Kimi ‏→ Claude ‏→ OpenAI ‏→ DeepSeek ‏→ Azure ‏→ Bedrock ‏→ Ollama). לקוד עם דרישות מיקום נתונים, השתמשו ב---backend ollama (מקומי לחלוטין) או העבירו דגל --backend מפורש. ‏Kimi ‏(MOONSHOT_API_KEY) מנתב לשרתי Moonshot AI בסין.
  • ללא טלמטריה, ללא מעקב שימוש, ללא אנליטיקה.
  • יומן שאילתות — כל קריאת graphify query‏, graphify path‏, graphify explain ו-query_graph של MCP נרשמת ל-~/.cache/graphify-queries.log בפורמט JSON Lines ‏(חותמת זמן, שאלה, קורפוס, צמתים שהוחזרו, משך). תשובות תת-גרף מלאות אינן נשמרות כברירת מחדל. הגדירו GRAPHIFY_QUERY_LOG_DISABLE=1 לביטול, או GRAPHIFY_QUERY_LOG=/dev/null להשתקה בלי לבטל את המנגנון.

פתרון בעיות

graphify: command not found אחרי ההתקנה ה-CLI מותקן אבל תיקיית ה-bin שלו אינה ב-PATH של המעטפת. בחרו את התיקון לפי אופן ההתקנה:

  • uv ‏(uv tool install graphifyy): הפקודה מגיעה לתיקיית הכלים של uv ‏(~/.local/bin), שהתקנת macOS/zsh טרייה לרוב לא כוללת ב-PATH. הריצו uv tool update-shell ופתחו טרמינל חדש. (מצאו את התיקייה עם uv tool dir --bin.)
  • pipx ‏(pipx install graphifyy): הריצו pipx ensurepath ופתחו טרמינל חדש.
  • pip ‏(pip install graphifyy): ‏pip מתקין סקריפטים לתיקיית bin של המשתמש שאולי אינה ב-PATH — הוסיפו את ~/Library/Python/3.x/bin ‏(macOS) או ~/.local/bin ‏(לינוקס) ל-PATH ב-~/.zshrc/~/.bashrc, או פשוט הריצו python -m graphify.

uvx graphify … או uv tool run graphify … לא מצליחים לפתור את graphify חבילת ה-PyPI היא graphifyy; ‏graphify הוא רק הפקודה שהיא מספקת. ‏uv tool run מתייחס למילה הראשונה כשם חבילה, מחפש חבילה בשם graphify ומדווח No solution found … no versions of graphify. ציינו את החבילה במפורש: uvx --from graphifyy graphify install (זהה ל-uv tool run --from graphifyy graphify install). או התקינו פעם אחת עם uv tool install graphifyy וקראו ל-graphify ישירות.

python -m graphify עובד אבל פקודת graphify לא ה-PATH של המעטפת לא כולל את תיקיית ה-bin שאליה הותקנה הפקודה. העדיפו uv tool install / ‏pipx install על פני pip רגיל, ואז הריצו uv tool update-shell / ‏pipx ensurepath ופתחו טרמינל חדש (ראו הערות ההתקנה לעיל).

‎/graphify . גורם ל-"path not recognized" ב-PowerShell ‏PowerShell מתייחס ל-/ מוביל כמפריד נתיבים. השתמשו ב-graphify . (בלי לוכסן) ב-Windows.

לגרף יש פחות צמתים אחרי --update או בנייה מחדש אם refactor מחק קבצים, הצמתים הישנים נשארים. העבירו --force (או הגדירו GRAPHIFY_FORCE=1) לדריסה גם כשהבנייה החדשה קטנה יותר.

לגרף יש צמתים כפולים לאותה ישות (ghost duplicates) כפילויות רפאים (אותו סימבול מופיע פעמיים — פעם מחילוץ AST עם מיקום מקור, ופעם מחילוץ סמנטי בלעדיו) ממוזגות כעת אוטומטית בזמן הבנייה. אם אתם רואים זאת בגרף שנבנה לפני v0.8.33, הריצו חילוץ מלא מחדש לניקוי:

graphify extract . --force

‏Ollama נגמר לו ה-VRAM / חריגה מחלון ההקשר חלון ה-KV-cache מותאם אוטומטית אך עשוי להיות גדול מדי ל-GPU שלכם. הקטינו אותו:

GRAPHIFY_OLLAMA_NUM_CTX=8192 graphify extract ./docs --backend ollama --token-budget 4000

אזהרות LLM returned invalid JSON / ‏Unterminated string תשובת ה-JSON של המודל פגעה במגבלת אסימוני הפלט ונחתכה באמצע מחרוזת. ‏graphify מתאושש אוטומטית (הוא מפצל את ה-chunk ומחלץ מחדש את החצאים, ומסמך יחיד גדול מדי נחתך תחילה בגבולות כותרות/פסקאות כך שהקובץ כולו עדיין מכוסה), כך שהאזהרות רועשות אך אין אובדן נתונים. להפחתת התופעה, העלו את תקרת הפלט או הקטינו את פלט ה-chunk:

GRAPHIFY_MAX_OUTPUT_TOKENS=16384 graphify extract . --mode deep   # הרמת התקרה
graphify extract . --mode deep --token-budget 4000                # קלטים קטנים יותר -> פלט קטן יותר

עם שער ענן כמו OpenRouter, העדיפו --backend openai (הגדירו OPENAI_BASE_URL) על פני שכבת ה-Ollama — זה נתיב תואם-OpenAI נקי יותר. אם למודל יש תקרת פלט משלו, הורדת --token-budget היא המנוף האמין.

‏HTML של הגרף גדול מדי לפתיחה בדפדפן (מעל 5000 צמתים) דלגו על יצירת ה-HTML והשתמשו ב-JSON ישירות:

graphify cluster-only ./my-project --no-viz
graphify query "..."

ל-graph.json יש סימוני קונפליקט אחרי ששני מפתחים ביצעו commit במקביל הריצו graphify hook install — הוא מגדיר merge driver של git שממזג-מאחד את graph.json אוטומטית כך שקונפליקטים לא קורים בכלל.

החילוץ מחזיר צמתים/קשתות ריקים למסמכים או PDF מסמכים, PDF ותמונות דורשים קריאת LLM — קורפוסים של קוד בלבד אינם דורשים מפתח. ודאו שמפתח ה-API מוגדר וה-backend נכון:

ANTHROPIC_API_KEY=sk-... graphify extract ./docs --backend claude

אזהרת חוסר התאמה בגרסת המיומנות ב-IDE גרסת graphify המותקנת שונה מקובץ המיומנות. עדכנו:

uv tool upgrade graphifyy
graphify install  # דורס את קובץ המיומנות

רשימת הפקודות המלאה

/graphify                          # הרצה על התיקייה הנוכחית
/graphify ./raw                    # הרצה על תיקייה מסוימת
/graphify ./raw --mode deep        # חילוץ קשרים אגרסיבי יותר
/graphify ./raw --update           # חילוץ מחדש של קבצים שהשתנו בלבד
/graphify ./raw --directed         # שמירת כיוון הקשתות
/graphify ./raw --cluster-only     # הרצת אשכול מחדש על גרף קיים
/graphify ./raw --no-viz           # דילוג על ויזואליזציית HTML
/graphify ./raw --obsidian         # יצירת כספת Obsidian
/graphify ./raw --obsidian --obsidian-dir ~/vault  # כתיבה לכספת קיימת (לעולם לא דורס פתקים או תצורת .obsidian שלכם)
/graphify ./raw --wiki             # בניית ויקי markdown שסוכנים יכולים לסרוק
/graphify ./raw --svg              # ייצוא graph.svg
/graphify ./raw --graphml          # ייצוא ל-Gephi / yEd
/graphify ./raw --neo4j            # יצירת cypher.txt ל-Neo4j
/graphify ./raw --neo4j-push bolt://localhost:7687
/graphify ./raw --falkordb         # יצירת cypher.txt ל-FalkorDB
/graphify ./raw --falkordb-push falkordb://localhost:6379
/graphify ./raw --watch            # סנכרון אוטומטי כשקבצים משתנים
/graphify ./raw --mcp              # הפעלת שרת MCP stdio

/graphify add https://arxiv.org/abs/1706.03762
/graphify add <video-url>
/graphify add https://... --author "Name" --contributor "Name"

/graphify query "מה מחבר את ה-attention לאופטימייזר?"
/graphify query "..." --dfs --budget 1500
/graphify path "DigestAuth" "Response"
/graphify explain "SwinTransformer"

graphify save-result --question "Q" --answer "A" --nodes Foo Bar --outcome useful   # תיעוד תוצאת שאלה-תשובה (זיכרון עבודה; outcome ∈ useful|dead_end|corrected)
graphify reflect                   # איחוד תוצאות graphify-out/memory/ אל reflections/LESSONS.md
graphify reflect --if-stale        # לא עושה דבר אם LESSONS.md כבר חדש מכל הקלטים (זול להרצה בכל סשן)
graphify reflect --out docs/LESSONS.md    # כתיבת מסמך הלקחים למקום אחר
graphify reflect --graph graphify-out/graph.json  # קיבוץ לקחים לפי קהילה + כתיבת שכבת זיכרון העבודה (.graphify_learning.json)
                                   # השכבה מתייגת צמתים preferred/tentative/contested (משוקלל-עדכניות, עם מקור);
                                   # graphify explain / query מציגים אז רמז "Lesson:", מסומן "code changed — re-verify" כשהמקור התקדם

graphify uninstall                 # הסרה מכל הפלטפורמות במכה אחת
graphify uninstall --purge         # מחיקה גם של graphify-out/
graphify uninstall --project --platform codex  # הסרת קובצי התקנה ברמת פרויקט בלבד

graphify hook install              # הוקים של post-commit + post-checkout
graphify hook uninstall
graphify hook status

# הנחיות עוזר קבועות - פר פלטפורמה
graphify claude install            # CLAUDE.md + הוק PreToolUse ‏(Claude Code)
graphify claude uninstall
graphify codebuddy install         # CODEBUDDY.md + הוק PreToolUse ‏(CodeBuddy)
graphify codebuddy uninstall
graphify codex install             # AGENTS.md + הוק PreToolUse ב-.codex/hooks.json ‏(Codex)
graphify opencode install          # AGENTS.md + תוסף tool.execute.before ‏(OpenCode)
graphify kilo install              # מיומנות Kilo נטיבית + פקודת /graphify + ‏AGENTS.md + תוסף .kilo
graphify kilo uninstall
graphify cursor install            # .cursor/rules/graphify.mdc ‏(Cursor)
graphify cursor uninstall
graphify gemini install            # GEMINI.md + הוק BeforeTool ‏(Gemini CLI)
graphify gemini uninstall
graphify copilot install           # קובץ מיומנות (GitHub Copilot CLI)
graphify copilot uninstall
graphify aider install             # AGENTS.md ‏(Aider)
graphify aider uninstall
graphify claw install              # AGENTS.md ‏(OpenClaw)
graphify claw uninstall
graphify droid install             # AGENTS.md ‏(Factory Droid)
graphify droid uninstall
graphify trae install              # AGENTS.md ‏(Trae)
graphify trae uninstall
graphify trae-cn install           # AGENTS.md ‏(Trae CN)
graphify trae-cn uninstall
graphify hermes install             # AGENTS.md + ~/.hermes/skills/ ‏(Hermes)
graphify hermes uninstall
graphify amp install               # קובץ מיומנות (Amp)
graphify amp uninstall
graphify agents install            # ~/.agents/skills/ + AGENTS.md ‏(חוצה-פלטפורמות; כינוי: graphify skills)
graphify agents uninstall
graphify kiro install               # .kiro/skills/ + .kiro/steering/graphify.md ‏(Kiro IDE/CLI)
graphify kiro uninstall
graphify pi install                # קובץ מיומנות (Pi coding agent)
graphify pi uninstall
graphify devin install             # קובץ מיומנות + .windsurf/rules/graphify.md ‏(Devin CLI)
graphify devin uninstall
graphify antigravity install       # .agents/rules + .agents/workflows ‏(Google Antigravity)
graphify antigravity uninstall

graphify extract ./docs                        # חילוץ LLM ‏headless ל-CI ‏(ללא IDE)
graphify extract ./docs --backend gemini       # ‏backend מפורש: gemini, kimi, claude, openai, deepseek, ollama, bedrock או claude-cli
graphify extract ./docs --backend gemini --model gemini-3.1-pro-preview
graphify extract ./docs --backend ollama       # ‏Ollama מקומי (הגדירו OLLAMA_BASE_URL / OLLAMA_MODEL) - ללא מפתח API ל-loopback
OPENAI_BASE_URL=http://localhost:8080/v1 OPENAI_MODEL=my-model graphify extract ./docs --backend openai   # כל שרת תואם-OpenAI ‏(llama.cpp, vLLM, LM Studio)
ANTHROPIC_BASE_URL=http://localhost:4000 ANTHROPIC_MODEL=my-model graphify extract ./docs --backend claude   # כל endpoint תואם-Anthropic ‏(פרוקסי LiteLLM, שערים)
GRAPHIFY_OLLAMA_NUM_CTX=32768 graphify extract ./docs --backend ollama   # דריסת חלון ה-KV-cache (מותאם אוטומטית כברירת מחדל)
GRAPHIFY_OLLAMA_KEEP_ALIVE=0 graphify extract ./docs --backend ollama    # פריקת המודל אחרי כל chunk (חוסך VRAM ב-GPU קטן)
graphify extract ./docs --backend bedrock      # AWS Bedrock דרך IAM - ללא מפתח API, שרשרת אישורי AWS
graphify extract ./docs --backend claude-cli   # ניתוב דרך Claude Code CLI - ללא מפתח API, דרך מנוי Claude שלכם
graphify extract ./docs --backend azure        # Azure OpenAI (הגדירו AZURE_OPENAI_API_KEY + AZURE_OPENAI_ENDPOINT)
graphify extract ./docs --max-workers 16       # מקביליות AST ‏(גם GRAPHIFY_MAX_WORKERS)
graphify extract --postgres "postgresql://user:pass@host/db"   # אינטרוספקציה ישירה של סכמת PostgreSQL חיה
graphify extract ./my-workspace --cargo        # אינטרוספקציה ישירה של תלויות Cargo workspace ברוסט
graphify extract ./docs --token-budget 30000   # ‏chunks סמנטיים קטנים יותר למודלים מקומיים/קטנים
graphify extract ./docs --max-concurrency 2    # פחות קריאות LLM מקביליות (שימושי להרצה מקומית)
graphify extract ./docs --api-timeout 900      # ‏timeout ארוך יותר למודלים מקומיים איטיים (ברירת מחדל 600 שניות)
graphify extract ./docs --google-workspace     # ייצוא .gdoc/.gsheet/.gslides דרך gws לפני החילוץ
graphify extract ./docs --mode deep            # חילוץ סמנטי עשיר יותר עם system prompt מורחב
graphify extract ./docs --no-cluster           # חילוץ גולמי בלבד, דילוג על אשכול
graphify extract ./docs --timing               # הדפסת זמני ריצה פר-שלב ל-stderr ‏(עובד גם ב-cluster-only)
graphify extract ./docs --force                # דריסת graph.json גם אם לגרף החדש פחות צמתים (אחרי refactors או לניקוי כפילויות רפאים)
graphify extract ./docs --dedup-llm            # ‏LLM כמכריע לזוגות ישויות עמומים (משתמש באותו מפתח API)
graphify extract ./docs --global --as myrepo   # חילוץ ורישום בגרף הגלובלי חוצה-הפרויקטים
GRAPHIFY_MAX_OUTPUT_TOKENS=32768 graphify extract ./docs --backend claude  # הרמת תקרת הפלט לקורפוסים צפופים

graphify export callflow-html                       # graphify-out/<project>-callflow.html
graphify export callflow-html --max-sections 8      # הגבלת מספר קטעי הארכיטקטורה שנוצרים
graphify export callflow-html --output docs/arch.html
graphify export callflow-html ./some-repo/graphify-out

graphify global add graphify-out/graph.json --as myrepo   # רישום גרף פרויקט אל ~/.graphify/global-graph.json
graphify global remove myrepo                         # הסרת פרויקט מהגרף הגלובלי
graphify global list                                  # הצגת כל המאגרים הרשומים + ספירות צמתים/קשתות
graphify global path                                  # הדפסת הנתיב לקובץ הגרף הגלובלי

graphify prs                              # לוח PR: ‏CI, ביקורת, worktree, השפעת גרף
graphify prs 42                           # צלילה עמוקה ל-PR ‏#42
graphify prs --triage                     # דירוג טריאז' AI ‏(מזהה backend אוטומטית מהסביבה)
graphify prs --worktrees                  # מיפוי worktree ← branch ← PR
graphify prs --conflicts                  # ‏PRs שחולקים קהילות גרף (סיכון בסדר המיזוג)
graphify prs --base main                  # סינון ל-PRs שמכוונים ל-branch בסיס מסוים
graphify prs --repo owner/repo            # הרצה מול מאגר GitHub אחר
GRAPHIFY_TRIAGE_BACKEND=kimi graphify prs --triage   # ‏backend מסוים לטריאז'

graphify clone https://github.com/karpathy/nanoGPT
graphify merge-graphs a.json b.json --out merged.json
graphify --version                                    # הדפסת הגרסה המותקנת
graphify watch ./src
graphify check-update ./src
graphify update ./src
graphify update ./src --no-cluster  # דילוג על אשכול מחדש, כתיבת גרף AST גולמי בלבד
graphify update ./src --force       # דריסה גם אם לגרף החדש פחות צמתים
graphify cluster-only ./my-project
graphify cluster-only ./my-project --graph path/to/graph.json  # מיקום גרף מותאם
graphify cluster-only ./my-project --max-concurrency 16 --batch-size 200  # תיוג קהילות מקבילי (גרפים גדולים)
graphify cluster-only ./my-project --resolution 1.5            # יותר קהילות, קטנות יותר
graphify cluster-only ./my-project --exclude-hubs 99           # החרגת צומתי p99 מהחלוקה
graphify cluster-only ./my-project --no-label                  # השארת מצייני "Community N"
graphify cluster-only ./my-project --backend=gemini            # ‏backend לשמות הקהילות
graphify cluster-only ./my-project --backend=gemini --model gemini-2.5-pro  # מודל מסוים
graphify label ./my-project                                    # מתן שמות (מחדש) לקהילות עם ה-backend המוגדר
graphify label ./my-project --backend=openai --model gpt-4o   # כפיית backend ומודל מסוימים

שמות קהילות: בתוך סוכן (Claude Code, ‏Gemini CLI) הסוכן נותן שמות לקהילות בעצמו. בהרצת ה-CLI החשוף, cluster-only נותן שמות אוטומטית עם ה-backend המוגדר (מובנה או ספק תואם-OpenAI מותאם) — העבירו --no-label להשארת Community N, או הריצו graphify label ליצירת שמות מחדש לפי דרישה.


ללמוד עוד


נבנה על graphify — ‏Penpax

Penpax היא השכבה התמידית שנבנתה מעל graphify — היא מיישמת את אותה גישת גרף על כל חיי העבודה שלכם: פגישות, היסטוריית דפדפן, מיילים, קבצים וקוד, ומתעדכנת ברציפות ברקע.

נבנתה לאנשים שהעבודה שלהם מפוזרת על פני מאות שיחות ומסמכים שהם לעולם לא יוכלו לשחזר במלואם. ללא ענן, לגמרי על המכשיר.

גרסת ניסיון חינמית תושק בקרוב. הצטרפו לרשימת ההמתנה ←


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

הקמת סביבת פיתוח

הפרויקט משתמש ב-uv לתהליך הפיתוח. התקינו אותו פעם אחת, ואז:

git clone https://github.com/safishamsi/graphify.git
cd graphify
git checkout v8                        # ‏branch הפיתוח הפעיל

# יצירת venv לפרויקט והתקנת graphify + כל התוספים + קבוצת dev
# ‏(pytest). ‏uv מתקין את קבוצת התלויות dev כברירת מחדל; העבירו --no-dev לדילוג.
uv sync --all-extras

אימות ההתקנה במצב עריכה:

uv run graphify --version
uv run python -c "import graphify; print(graphify.__file__)"

הרצת בדיקות

uv run pytest tests/ -q                # הרצת החבילה המלאה
uv run pytest tests/test_extract.py -q # מודול אחד
uv run pytest tests/ -q -k "python"    # סינון לפי שם

הערת macOS: חבילת הבדיקות כוללת גם sample.f90 וגם sample.F90. אלו מתנגשים במערכות קבצים HFS+ / APFS שאינן רגישות לרישיות. הריצו בלינוקס או בקונטיינר Docker אם צריך לבדוק את שתי גרסאות ה-Fortran יחד.

תהליך עבודה ב-Git

  • הפיתוח הפעיל מתרחש ב-branch ‏v8.
  • סגנון commit: ‏fix: <description> / ‏feat: <description> / ‏docs: <description>
  • לפני פתיחת PR, הריצו uv run pytest tests/ -q וודאו שהוא עובר.
  • הוסיפו קובץ fixture ל-tests/fixtures/ ובדיקות ל-tests/test_languages.py לכל מחלץ שפה חדש.

מה כדאי לתרום

דוגמאות עבודה (worked examples) הן התרומה השימושית ביותר. הריצו ‎/graphify על קורפוס אמיתי, שמרו את הפלט ב-worked/{slug}/, כתבו review.md כן שמכסה מה הגרף קלע ומה פספס, ופתחו PR.

באגים בחילוץ — פתחו issue עם קובץ הקלט, רשומת ה-cache ‏(graphify-out/cache/) ומה חסר או שגוי.

ראו ARCHITECTURE.md לאחריות המודולים ואיך מוסיפים שפה.