Értsd meg a kódot, olvasás nélkül.
A callgraph token-hatékony kód-térkép AI kódoló agenteknek. Megmutatja a szerkezetet, a kategorizált hívás-gráfot, egy-egy metódus törzsét, hogy „ki hívja?”, és a hatáselemzést — pár tucat sorban, a teljes fájlok helyett.
$ callgraph.sh --project shop app/Models/Order.php class Order extends Model L7-23 constants (1): STATUS_OPEN = 'open' saveTranslations() L13-20 external_call create, info global_helper logger internal_helper translations translations() L22-22 orm_relation hasMany $ callgraph.sh app --grep saveTranslations --depth 2 == 1. szint — közvetlenül hívja: /saveTranslations/ app/Models/Order.php Caller::run() L25-25 == 2. szint — az előző szintet hívja (nincs további hívó)
Miért szeretik az agentek (és az emberek)
Minden válasz a szintaxisfából jön, ezért pontos, tömör és olcsón olvasható.
Honnan induljon a feladat?
A locate egy hívásban megkapja a feladat neveit
és fogalmait, és felsorolja azt a pár fájlt, amit érdemes először megnyitni, a legjobbal kezdve, indoklással.
Projekt-profil
A profile megmondja az agentnek, hogyan épül fel egy ismeretlen
projekt: architektúra, melyik mappában melyik réteg, tervezési minták, és a rétegek közti hívásirány.
Kevesebb token, gyorsabb válasz
Egy outline pár tucat sor. Az agent előbb a térképet olvassa, utána csak a szükséges sorokat.
Kategorizált hívás-gráf
Minden hívás címkét kap — ORM-reláció, modell, framework, natív, belső segéd, SwiftUI view vagy modifier —, így a szándék első ránézésre látszik.
„Ki hívja?”
A --grep megtalál minden hívót a projektben; a --depth N a hívók hívóit is bejárja hatáselemzéshez.
Célzott olvasás
A fájl::metódus --body csak azt a metódust írja ki, sorszámozva. A --lines 30-60 bármely sávot.
Framework-nézetek
Laravel / Yii ismeret: routes, middleware, validation, jobs, events, providers, DI, views — mind egy-egy parancs.
Egyetlen bináris, magától frissül
Nem kell PHP, Node vagy Rust. macOS, Linux és Windows. Gyors, cache-elt, inkrementális; a callgraph.sh update letölti a legújabb kiadást, a beállítások megmaradnak.
Angolul vagy magyarul
Minden kimenet és súgó alapból angol — magyarra: callgraph.sh set-lang hu.
Mikor használd — és mikor ne
A callgraph és a sima szövegkeresés más-más feladatra való. Mindegyiket arra használd, amiben a legjobb.
| A kérdés | A legjobb eszköz |
|---|---|
| Pontos string, naplóüzenet vagy konfig-érték | grep — a sima szövegkeresés ebben a legjobb |
| Honnan induljak ezzel a feladattal? | locate — rangsorolt fájlok a feladat neveiből és fogalmaiból |
| Hogyan épül fel ez az ismeretlen projekt? | profile — architektúra, rétegek, minták |
| Definíciók, szerkezet, hívók, egy változtatás hatása | callgraph — outline, --body, --grep, --depth |
Mikor ne használd
- Egy ismert sorsáv pontos szövege kell:
--linesvagy célzott olvasás. - Nem kódfájlok (sima szöveg, adat-dump): az outline keveset ad hozzá.
- Makró- vagy reflexió-nehéz kód: a statikusan fel nem oldható dinamikus hívások csak név szerinti egyezésként (
?) látszanak a--guess-szel, vagy egyáltalán nem.
Támogatott nyelvek
Minden nyelvnek ugyanaz a kimeneti formája.
| Nyelv | Fájlok | Mit kapsz |
|---|---|---|
| PHP | .php | osztályok, traitek, enumok, metódusok, property-k, konstansok, hívások típuskövetéssel, Laravel / Yii felismerés |
| JavaScript / TypeScript | .js .mjs .cjs .jsx .ts .tsx | modulok, függvények, osztályok, importok alias-feloldással |
| Vue | .vue | props, emits, setup, template-komponensek és eseménykezelők, computed, watch, hookok |
| Rust | .rs | modulok, structok, enumok, traitek, impl-blokkok, függvények, use-fák, makróhívások, framework-felismerés (axum, actix-web, tokio…) |
| Swift / SwiftUI | .swift | osztályok, structok, protokollok, actorok, extensionök, View-komponensek, property wrapperek, SwiftUI view-k és modifierek |
| CSS / SCSS | .css .scss | szabály-blokkok, mixinek, függvények, változók, importok |
| JSON / Markdown | .json .md | kulcs-útvonalak; címsor-szakaszok és linkek |
Telepítés
A csomagban a Claude Code skill és a géped binárisa van. Csak bash kell hozzá.
macOS / Linux
p="$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)" && t="$(mktemp -d)" \
&& curl -fsSL -o "$t/cg.zip" "https://github.com/GeRiY/callgraph/releases/latest/download/callgraph-$p.zip" \
&& mkdir -p ~/.claude/skills && unzip -qo "$t/cg.zip" -d ~/.claude/skills \
&& bash ~/.claude/skills/callgraph/install.sh && rm -rf "$t"
Windows
Töltsd le a callgraph-windows-x86_64.zip-et,
csomagold ki, a callgraph mappát másold a %USERPROFILE%\.claude\skills\ alá, majd Git Bashben:
bash ~/.claude/skills/callgraph/install.sh
Utána egyszer regisztráld a projektet, és indítsd újra a Claude Code-ot:
bash ~/.claude/skills/callgraph/projects.sh add shop /abszolút/út/a/shophoz
Minden letöltés (macOS Apple Silicon és Intel, Linux x86_64 és ARM64, Windows): legfrissebb kiadás.
Használat
Az agent magától használja a skillt. Ugyanezek a parancsok bármelyik terminálból működnek.
| Feladat | Parancs |
|---|---|
| Honnan induljak ezzel a feladattal? (locate) | callgraph.sh locate <kifejezés>... [--all] |
| Hogyan épül fel a projekt? (profile) | callgraph.sh profile [--full] |
| Fájl vagy mappa outline-ja | callgraph.sh <fájl|mappa> |
| Csak egy metódus | callgraph.sh <fájl>::<metódus> |
| Metódus forrása sorszámozva | callgraph.sh <fájl>::<metódus> --body |
| Hol hívják? | callgraph.sh <mappa> --grep <minta> |
| Hatáselemzés | callgraph.sh <mappa> --grep <minta> --depth 3 |
| String / konstans helye | --strings <minta> · --const <minta> |
| Ágak sortartománnyal | --format flow |
| Csak a publikus felület | --format api |
| Hol nézz körül elsőként | --format hotspots |
| Diagramok | --format mermaid · --format dot |
| Laravel-nézetek | --format routes · validation · events · jobs |
Frissítés és nyelv
callgraph.sh update --check # van újabb kiadás?
callgraph.sh update # letöltés és telepítés (a beállítások megmaradnak)
callgraph.sh set-lang hu # magyar kimenet (vissza: set-lang en)
Bármely MCP-kliensből
A callgraph MCP-szerver is: callgraph mcp. A Claude Desktop, a Cursor, a VS Code, a Claude Code
vagy bármely más MCP-kliens ugyanazokat a lekérdezéseket típusos eszközként hívja, ugyanazzal a tömör kimenettel.
🔌 Helyben fut
A kliens a saját gépeden indítja el, és stdin/stdout-on beszélgetnek. Nincs szerver, a lekérdezések nem használnak hálózatot: a kódod nem hagyja el a gépet. Az egyetlen hálózati hívás a naponta egyszeri frissítés-ellenőrzés a GitHub Release-ek felé.
🔒 Csak olvas
A forrásfájlokat soha nem írja, és csak a projekt mappáján belül olvas; a kifelé mutató utakat elutasítja.
🧰 Tíz eszköz
locate, project_profile, outline,
method_body, find_callers, search, framework_view,
projects, notes, valamint guide — ugyanazok a lekérdezések, mint a fenti
parancsok, és egy rövid útmutató az agentnek.
Válaszd ki a rendszered — a parancsok a telepített skill-csomag binárisát használják. Az --auto-update-tel
(ajánlott) a szerver induláskor naponta egyszer ellenőriz, telepíti az új kiadást (ellenőrzőösszeggel) és újraindul;
nélküle csak jelzi az agentnek, hogy van frissítés. Az ellenőrzés kikapcsolása: CALLGRAPH_UPDATE_CHECK=0.
macOS / Linux
Claude Code (minden projekthez):
claude mcp add -s user callgraph -- \
~/.claude/skills/callgraph/bin/$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)/callgraph mcp --auto-update
A lenti JSON-beállításokhoz a bináris abszolút útja kell — ez kiírja:
echo ~/.claude/skills/callgraph/bin/$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)/callgraph
Claude Desktop (claude_desktop_config.json) · Cursor (.cursor/mcp.json):
{
"mcpServers": {
"callgraph": {
"command": "/Users/te/.claude/skills/callgraph/bin/darwin-arm64/callgraph",
"args": ["mcp", "--auto-update"]
}
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"callgraph": {
"type": "stdio",
"command": "/Users/te/.claude/skills/callgraph/bin/darwin-arm64/callgraph",
"args": ["mcp", "--auto-update"],
"cwd": "${workspaceFolder}"
}
}
}
A példa-utat cseréld a fent kiírtra (mappák: darwin-arm64, darwin-x86_64, linux-x86_64, linux-aarch64).
Windows
Claude Code (PowerShell, minden projekthez):
claude mcp add -s user callgraph -- "$env:USERPROFILE\.claude\skills\callgraph\bin\windows-x86_64\callgraph.exe" mcp --auto-update
Claude Desktop (claude_desktop_config.json) · Cursor (.cursor/mcp.json):
{
"mcpServers": {
"callgraph": {
"command": "C:\\Users\\te\\.claude\\skills\\callgraph\\bin\\windows-x86_64\\callgraph.exe",
"args": ["mcp", "--auto-update"]
}
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"callgraph": {
"type": "stdio",
"command": "C:\\Users\\te\\.claude\\skills\\callgraph\\bin\\windows-x86_64\\callgraph.exe",
"args": ["mcp", "--auto-update"],
"cwd": "${workspaceFolder}"
}
}
}
A te helyére a Windows-felhasználóneved kerül (a JSON-ban minden \ dupla).
Kliensenkénti beállítás lépésről lépésre, a tíz eszköz és hibakeresés: MCP-szerver beállítása.
A skill és az MCP-szerver megfér egymás mellett. Ha a kliens nem a projektmappában indul (pl. Claude
Desktop), egy regisztrált projekt-aliast használ: projects.sh add shop /út/a/shophoz.
Merre tovább
Útmutatók nyelvenként és funkciónként.
MCP-szerver beállítása
Claude Code, Claude Desktop, Cursor és VS Code beállítás, --auto-update, a tíz eszköz.
PHP, Laravel és Yii
Osztályok, kategorizált hívások, hívók interfészen és traiten át, framework-nézetek.
Rust
Structok, traitek, impl-blokkok, makróhívások, framework a Cargo.toml-ból.
JavaScript, TypeScript és Vue
Importok alias-feloldással, Vue SFC-k, típusos fogadók, route- és i18n-kulcsok.
Swift és SwiftUI
View-típusok komponensként, property wrapperek, SwiftUI view-k és modifierek.
locate
Az a pár fájl, amit egy feladatnál először érdemes megnyitni, indoklással.
Projekt-profil
Architektúra, rétegek és a köztük lévő hívásirány, kb. 15 sorban.
Változásnapló
Mit hozott, mit változtatott és mit javított minden kiadás.
Hibajelentés és visszajelzés
Hibát találtál, vagy ötleted van? Minden jelzést elolvasunk. Előbb nézd meg a meglévő issue-kat.
🐞 Hiba jelzése
Nyiss egy hibajelentést. Az űrlap végigvezet azon, mi kell nekünk.
💡 Ötlet, észrevétel
Hiányzó nyelv vagy framework, jobb kimenet, bármi: oszd meg az ötleted.
🔒 Biztonsági hiba
Ne nyilvános issue-ban jelezd, hanem privátban. Néhány napon belül válaszolunk.
Mit írj a hibajelentésbe
- a verziót:
callgraph --version - a pontos parancsot és a kimenetét
- ha a kimenetben van
[error-id: …]sor: abash ~/.claude/skills/callgraph/feedback.sh show <error-id>kimenetét — maga a hibaüzenet is a hibajelentő űrlapra mutat - egy kis, nem bizalmas kódrészletet, amivel előjön, és az operációs rendszert
Gyakori kérdések
Mi a callgraph?
Parancssori kód-térkép AI kódoló agenteknek. Elemzi a fájlt vagy mappát, és megmondja, mi van benne, melyik metódus melyik sorokon él, mit hív, ki hívja, és mit érint egy változtatás — pár tucat sorban a teljes fájl helyett.
Milyen nyelveket támogat?
PHP (Laravel- és Yii-ismerettel), JavaScript, TypeScript, Vue single-file komponensek, Rust, Swift és SwiftUI, CSS, SCSS, JSON és Markdown. Részletek: PHP, Rust, TypeScript / Vue, Swift.
Kell hozzá PHP, Node vagy Rust?
Nem. A callgraph egyetlen statikus bináris, futtatáshoz csak bash kell.
Működik Claude Code nélkül is?
Igen. Claude Code skillként érkezik, de minden parancs bármilyen terminálból vagy szkriptből használható, és bármely MCP-kliens (Claude Desktop, Cursor, VS Code…) is használhatja a callgraph mcp-vel — lásd az MCP-beállítást.
Elküldi valahova a kódomat?
Nem. Minden helyben fut; a kódod sehova nem töltődik fel. Az egyetlen hálózati hívás a frissítés-ellenőrzés a GitHub Release-ek felé (legfeljebb naponta egyszer; kikapcsolás: CALLGRAPH_UPDATE_CHECK=0).
Hogyan frissíthető?
A callgraph.sh update letölti a legfrissebb kiadást a GitHubról, ellenőrzi a kiadás SHA256SUMS fájlja szerint, a projektek és a beállítások megmaradnak. Mi változott: változásnapló.
Hol jelezhetek hibát vagy kérhetek új funkciót?
A GitHubon: hibajelentés vagy ötlet / észrevétel. Biztonsági hibát privátban jelezz.
Mennyibe kerül?
Semmibe. A callgraph nyílt forrású, MIT licenccel.