---
name: Hivemind Graph
slug: hivemind-graph-2
category: AI Engineering
description: Hivemind Graph queries a local AST-derived code graph of functions, classes, calls, and imports to answer structural questions like what calls X or where Y is defined. Use it to map dependencies and blast radius before changing a signature.
github: "https://github.com/activeloopai/hivemind/tree/main/harnesses/openclaw/skills/hivemind-graph"
language: TypeScript
stars: 1561
forks: 101
install: "npx degit https://github.com/activeloopai/hivemind/tree/main/harnesses/openclaw/skills/hivemind-graph ~/.claude/skills/hivemind-graph"
installs_to: ~/.claude/skills/hivemind-graph
source_path: harnesses/openclaw/skills/hivemind-graph/SKILL.md
collection_size: 10
category_size: 2451
collection_url: "https://dirskills.com/collections/activeloopai/hivemind"
added: 2026-08-19T07:26:29.538Z
last_synced: 2026-08-19T07:26:29.538Z
canonical_url: "https://dirskills.com/skills/hivemind-graph-2"
---

# Hivemind Graph

Hivemind Graph queries a local AST-derived code graph of functions, classes, calls, and imports to answer structural questions like what calls X or where Y is defined. Use it to map dependencies and blast radius before changing a signature.

**Install:**

```bash
npx degit https://github.com/activeloopai/hivemind/tree/main/harnesses/openclaw/skills/hivemind-graph ~/.claude/skills/hivemind-graph
```

## README

# Hivemind Code Graph (OpenClaw)

A deterministic, AST-derived map of the current repository — every function,
class, method, interface, type, enum, const, and module, plus the edges between
them (`calls`, `imports`, `extends`, `implements`, `method_of`).

The graph **builds and refreshes automatically** after each turn (gated by rate
limit + git diff). You never run a build command — just call the graph tools.

Set `plugins.entries.hivemind.config.tuning.HIVEMIND_GRAPH_CWD` in
`~/.openclaw/openclaw.json` to the git root of the project you want indexed
when the gateway's working directory is not the repo (then restart the gateway).

Use the graph as a fast **INDEX** to locate the few files/symbols that matter,
then use the host's read/exec tools on the real source. It is not a substitute
for reading source files.

## When to use this skill

Activate when the user asks a *structural / relational* question about the code:

- "What calls `pushSnapshot`?" / "Who uses this function?"
- "What does `deeplake-pull.ts` import?" / "What depends on X?"
- "Where is `GraphSnapshot` defined?" / "Find the function that handles Y."
- "What are the main subsystems / the architecture here?"
- "If I change this signature, what's affected?"

## Tools

- `hivemind_graph_search({ pattern })` — search symbols by substring (or
  multi-token AND with `+`, e.g. `auth+handler`). Returns matches with 1-hop
  neighbors (callers, callees, imports). **Start here.**
- `hivemind_graph_neighborhood({ file })` — every symbol in a repo-relative
  file path plus its cross-file neighbors.

## Workflow

1. Broad structural question? `hivemind_graph_search({ pattern: "<symbol>" })`.
2. Know the file? `hivemind_graph_neighborhood({ file: "src/hooks/capture.ts" })`.
3. Need the actual code? Open the `source_file:line` from the tool output with
   the host read tool — don't answer from the graph alone.

## When NOT to use this skill

- Reading the **body** of a symbol you already located → use the host read tool.
- Code that isn't **committed/built** yet — the graph can lag uncommitted edits.
- Languages outside **TypeScript, JavaScript, and Python** — fall back to grep.

## Anti-patterns

- **Zero incoming callers does NOT mean dead code.** Instance-method dispatch and
  dynamic calls are not fully resolved.
- **The graph can be stale.** Prefer live source for files edited in this session.
- **`pattern` is lexical, not semantic** — try multiple keywords if the first misses.
