Skip to content
Guides DOCS

Getting Started with Gather Step

Gather Step is usually not operated manually after setup. You install it, index a workspace, connect an MCP-aware client, and the assistant calls the Gather Step tools automatically when it needs graph context.

You need two things:

  • the gather-step binary
  • a workspace directory containing the repositories you want to index

If you need install details, use Installation.

On macOS:

Terminal window
brew install thedoublejay/tap/gather-step

Or build from source:

Terminal window
cargo build -p gather-step --release

Verify the binary:

Terminal window
gather-step --version

Run gather-step init from the workspace root: the directory that contains the repositories you want Gather Step to index.

workspace/
|-- backend/
|-- frontend/
|-- shared/
`-- shared_contracts/
Terminal window
cd /path/to/workspace
gather-step init

The guided defaults cover the common path: choose repos, write gather-step.config.yaml, index the selected repos, generate assistant-facing context files, register workspace-local Claude MCP settings, and leave watch mode off unless you opt in.

Running gather-step with no subcommand also starts the guided flow in an interactive workspace without a config. In a configured workspace, no-args mode shows the status summary instead.

Use the arrow-key picker to choose repositories, then press Enter to confirm. For the remaining prompts, press Enter to accept the default. In the common path, that means keep the selected repos, index now, generate AI context files, register local MCP settings, and skip foreground watch mode.

Hi, welcome to Gather Step setup
Gather Step builds a local code graph so your agent can plan with repo, route, event, and contract context.
Workspace: /path/to/workspace
Found 3 Git repositories
1) Select repositories to include
↑/↓ move Space toggle Enter confirm a all n none q cancel
3 repositories selected
> [x] 1. backend (backend)
[x] 2. frontend (frontend)
[x] 3. shared (shared)
2) Index the selected repositories now? [Y/n]
3) Generate AI context files now? (.agent-context/gather-step/, .claude/skills/, .agents/skills/, CLAUDE.gather.md, AGENTS.gather.md) [Y/n]
4) Register Gather Step as an MCP server? [local/global/skip] (default: local)
5) Watch for repository changes and re-index automatically? [y/N]

When stdin or stdout is not a terminal, Gather Step falls back to the text prompt that accepts numbers, ranges, all, none, or Enter.

Wizard promptDefaultEquivalent flag
Select repositories to includeExisting config repos, or all discovered reposedit gather-step.config.yaml
Index these repos now?Yes--index
Generate AI context files?Yes--generate-ai-files
Register as an MCP server?Local--setup-mcp local
Watch for repository changes and re-index automatically?No--watch

The watcher runs in the foreground only if you opt in. Use Ctrl+C to stop it; indexed state is preserved.

Pass flags explicitly to skip prompts in scripts or CI:

Terminal window
cd /path/to/workspace
gather-step init --index --generate-ai-files --setup-mcp local

When an index exists, --generate-ai-files writes graph-backed reference data under .agent-context/gather-step/ and installs an on-demand skill (.claude/skills/gather-step-context/SKILL.md, .agents/skills/gather-step-context/SKILL.md) plus a tiny .claude/rules/gather-step-index.md pointer so neither Claude Code nor Codex auto-loads the heavy reference at launch. CLAUDE.gather.md / AGENTS.gather.md remain as root-level summaries. If no index exists yet, it writes the summaries and prints a warning explaining that reference-data generation requires gather-step index.

Example:

repos:
- name: backend_standard
path: repos/backend_standard
- name: frontend_standard
path: repos/frontend_standard
- name: shared_contracts
path: repos/shared_contracts
indexing:
workspace_concurrency: 4

Use neutral logical names in the config. The name field is what appears in CLI output, MCP responses, and repo-scoped filters.

If you skipped indexing during setup, run a full index:

Terminal window
gather-step --workspace /path/to/workspace index

This creates .gather-step/ inside the workspace and stores:

  • the workspace registry
  • the persisted graph
  • the search index
  • the metadata database

Source repositories are not modified.

During active development, keep the index fresh:

Terminal window
gather-step --workspace /path/to/workspace watch

You can also pass --watch to init or index when you want setup to continue into watch mode.

Before wiring in an AI client, confirm the index is usable:

Terminal window
gather-step --workspace /path/to/workspace status
gather-step --workspace /path/to/workspace doctor

Use status to confirm the expected repos were indexed. Use doctor to surface missing paths, search projection gaps, dangling edges, or unresolved graph problems.

If you did not pass --setup-mcp local during setup, register Claude settings now:

Terminal window
gather-step --workspace /path/to/workspace setup-mcp --scope local

For other MCP clients, configure the client to launch the local stdio server:

{
"mcpServers": {
"gather-step": {
"command": "gather-step",
"args": [
"--workspace",
"/path/to/workspace",
"serve"
]
}
}
}

Gather Step does not need to run as a separate network service. The client starts it as needed. The example assumes the installed gather-step binary is available on the MCP client’s PATH.

For client-specific setup, use MCP clients.

After setup, the assistant chooses the right Gather Step tools automatically. For example:

  • “What handles POST /orders end to end?”
  • “Who consumes order.created?”
  • “What repos are affected if I change this shared type?”
  • “Give me a review-oriented context pack for createOrder.”
  • “Review this PR using gather-step.” (triggers the pr_review MCP tool automatically)

The person using the assistant does not need to invoke trace_route, trace_event, or planning_pack directly unless they want to inspect the graph from the terminal.

Once Gather Step is configured as an MCP server, the flow is:

  1. You ask a normal question.
  2. Claude Code chooses the Gather Step tools automatically.
  3. Claude Code combines those tool results into the answer you read.

Example:

What features or pages are affected if I change CreateOrderInput?

Typical automatic tool flow:

Prompt
-> search
-> get_symbol
-> trace_impact
-> get_shared_type_usage
-> change_impact_pack
-> Answer

What each step is doing:

  • search finds the target symbol in the indexed workspace.
  • get_symbol confirms the exact match and source location.
  • trace_impact walks cross-repo graph links to find affected repos and surfaces.
  • get_shared_type_usage checks where the shared type is used directly.
  • change_impact_pack returns a bounded impact-focused context bundle for the final answer.

The important part is that this happens automatically. The command names are reference material so the retrieval path is visible, not a manual workflow you are expected to memorize.

During active development, keep the graph up to date with:

Terminal window
gather-step --workspace /path/to/workspace watch

If you prefer one long-running process for both MCP and live indexing, start the server with watch mode enabled:

Terminal window
gather-step --workspace /path/to/workspace serve --watch

If you are not using watch mode, rerun:

Terminal window
gather-step --workspace /path/to/workspace index

After large reindexes or long watch sessions, reclaim generated-state space without deleting the index:

Terminal window
gather-step --workspace /path/to/workspace compact

You almost never run Gather Step commands yourself. After init, the AI assistant calls them. You ask a normal product or engineering question, and Claude Code (or any MCP-aware assistant) chooses the right Gather Step tools — search, trace_impact, pr_review, planning_pack, and so on — to ground the answer in your code.

The CLI is there for the cases the assistant cannot cover from its side: full reindex (gather-step index), watcher (gather-step watch), PR review on a branch (gather-step pr-review), and one-off graph queries from the terminal. For day-to-day work the assistant handles retrieval. Treat the CLI reference as the manual you keep open in another tab — not as a workflow you run by hand.

  • Workspace setup — config, depth, and the interactive repo picker.
  • CLI reference — every command and flag, in one place. Skim once so you know what the assistant has at its disposal.
  • MCP clients — Claude Code, Cursor, and generic MCP setup.
  • PR review guide — structural cross-repo review on a branch before merge.
  • MCP tools reference — the automatic tool surface the assistant uses.