In short:
ak-gkgqueries a code graph instead of guessing with text search: where a definition lives, who calls it, and what a change would touch. For Python, TypeScript and JavaScript it cross-checks with plain search. It does not stop another session's gkg server and does not handle remote repos: that is whatak-repomixis for.
Disclosure: I maintain AgentKit and have an affiliate relationship with it: the AgentKit link in this post is an affiliate link; buying through it gets you 30% off.
Summary
Use it when you are about to refactor and need every caller of a function, when you want to jump from a call to its definition, or when you are new to a codebase and need an overview. You do not need it to pack context quickly, count tokens or read a remote repo: use ak-repomix. The skill needs a Git repo initialized on your machine.
flowchart LR
A["About to refactor or need to understand code"] --> B["ak-gkg"]
B --> C["Definitions, usages, repo map"]
C --> D["You review every caller before editing"]
B --> E["Python, TS, JS: cross-check with plain search"]
A --> F["Quick context pack, remote repo: ak-repomix"]Three things the skill always checks before it answers:
| Concept | Question | Example |
|---|---|---|
| Index | Does the graph have the latest code in the repo? | You just edited the billing module. The skill re-indexes only what is missing or stale, not the whole repo. |
| Server owner | Is it OK to stop the running gkg server to re-index? | Another session started the server. The skill does not stop it; it uses plain search or waits to coordinate. |
| Language support | Does an empty result mean nobody calls this symbol? | A Java repo returning 0 callers can be trusted. A TypeScript repo returning 0 needs a grep. |
The main trade-off: gkg works best with Ruby, Java and Kotlin. With Python, TypeScript and JavaScript it can miss calls across files, so an empty result proves nothing.
Sample prompt (find every caller):
/ak-gkg Find every call to PaymentService#charge in <repo name>.
The repo is written in Ruby. List file and line, grouped by folder.This skill has no flags.
Below is the detailed version: how it runs, 5 situations with prompts, the change history by ak release, and common pitfalls. The detailed version and the interactive page are for subscribers. Your agent can also search them through the portal's MCP.
Opens when your account has subscriber access
This guide is for subscribers
Once your account has access, the full piece, the interactive visual and the agent call all open.
- Sign in or create a modernEngineer accountReading access belongs to your account email.
- Choose a plan on the pricing page1, 3 or 12 months, paid by VietQR bank transfer. Access opens about a minute after the money arrives.
- Or redeem a Facebook subscriber codePeople supporting the page on Facebook get an activation code by message each month.
Already a subscriber? Sign in to read.
Use this piece in your agent
Get an API keyCopy the text below and paste it into Claude Code, Codex or whichever agent you use. The agent reads the piece and checks it against the repo you have open.
Read "ak-gkg: find definitions and every usage before refactoring" on modernEngineer and apply it to this repo.
1. Call the content_get tool of the modernengineer MCP server with locale "en", slug "ak-gkg". If the modernengineer MCP server is not connected, stop and walk me through connecting it from https://modernengineer.dev/en/mcp.
2. Summarize the main steps of the piece and point out which apply to this repo.
3. Propose concrete changes and ask me before editing any file.Connect MCP in Claude Code (once)
claude mcp add --transport http modernengineer \
https://api.modernengineer.dev/mcp \
--header "Authorization: Bearer <API key>"Reading the full piece over MCP needs an API key from a subscriber account or one that bought this guide. Without access, the agent only gets the opening.
- Version
- v1.0.0
- Updated
- 22/10/2026
- Licence
- All rights reserved
- Slug
- ak-gkg


