Ripwire Repo Map logo

Ripwire Repo Map

OrganizationPopular
redhat-et
ripwire-repo-map

Use ripwire CLI to map a repo before reading it.

Overview

Publisherredhat-et
Repositoryripwire
Skill nameripwire-repo-map
Stars
2.2K
Forks
141
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by redhat-et on GitHub. Read the source before you install it.

Installation

Install the Ripwire Repo Map AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/redhat-et/ripwire.git /tmp/ripwire
mkdir -p .claude/skills
cp -r /tmp/ripwire/skills/hermes/ripwire-repo-map .claude/skills/ripwire-repo-map
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ripwire Repo Map in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ripwire Repo Map on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ripwire Repo Map is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

ripwire — deterministic repo map before reading code

ripwire (v0.4.x at authoring time; the release binary must be on PATH) is a zero-dependency C++23 CLI that builds a ranked, deterministic call graph of any repo in ~1s (parses once, then auto-caches warm). It answers "what to touch, what it breaks, which tests to run" for a fraction of the tokens of grep + whole-file reads. No API key, no daemon, no index server, offline. Invoke it via the terminal tool.

When to reach for it (instead of blind grep / whole-file reads)

  • Landing cold in a repo or subsystem — "what's here, how is it organized, what matters"
  • "Where is the code for X" — a task, feature, or concept in your own words
  • A change is proposed — what breaks, who calls it, which tests must run
  • Resuming work after compaction / a new session on in-flight work
  • Reviewing code you did not write (fresh eyes), or pre-commit change vetting

Do NOT use for trivial single-file lookups (plain rg/search_files wins) or broad common-word questions — ripwire shines on specific technical asks.

Core verbs (all take a repo dir; --help is authoritative)

bash
ripwire <dir> --report            # architecture summary: modules, god-files, cycles, top symbols
ripwire <dir> --for="<task in your own words>"   # ranked task lens: what to touch first, with 1-hop edges
ripwire <dir> --callers=someFunc --legend=compact  # who calls it (blast radius)
ripwire <dir> --test-gate --legend=compact         # which tests must run before committing
ripwire <dir> --tree --legend=compact              # file-by-file: top symbols per file
ripwire <dir> --hotspots --legend=compact          # files ranked by churn × complexity
ripwire <dir> --communities --legend=compact       # cohesive modules (Louvain) + bridges — where a new feature belongs
ripwire <dir> --situ              # what the working tree already changed + its blast radius (resuming work)
ripwire <dir> --notes --legend=compact             # pinned gotchas from past sessions (field notes)
ripwire <git-url>                 # orient in a remote repo (shallow-clones into a cached temp dir; --refetch refreshes)

Read the map, then open only the files it surfaces (god-files and hotspots first). For a body of one ranked symbol: ripwire <dir> --for="..." --expand=path:name (paste p=/n= off the row).

Honesty signals — read them before trusting a result

  • The --for lens reports confidence=/margin_pct= on its result root and the output carries est_tokens=confidence="low" or a flat ranking means treat the set as a starting point, not an answer.
  • --for bundles: bodies="0" = no full bodies shipped (reason="compact-route"; --auto-bodies restores them. A reason="budget" means the caller's token budget cut them — raise the budget instead).
  • --skipped lists files the index dropped (oversize, or .gitignored — default ignored; --no-ignore restores the full walk). A "not found" is only trustworthy after checking this.
  • amb="K" on a symbol means K of its outbound calls matched several possible definitions — the resolver split the weight instead of choosing one. Read the source if the target matters. (lpin= is a separate, disclosed guess the resolver made; same remedy.)

Pitfalls

  1. First call on a tree parses (~1s at 1,500+ files; measured ≈1.2s wall for a 2,355-file / 77k-edge checkout on Apple M2). Later calls are warm and near-instant — chain verbs freely.
  2. --top-k is NOT read by --for's own bundle (it shapes the default map and --query; it still applies to --format=candidates with --for).
  3. Markdown/docs-only or shell-only repos yield few call-graph edges — --report is still useful, edges are not.
  4. The tool indexes signatures, not necessarily full bodies, by default on conceptual queries — --expand or --auto-bodies when you need the body.
  5. Cache/notes live in the repo tree (.ripwire_notes for --note-add); the notes file is meant to be committed.
  6. ripwire output can be large on big repos — budget with --max-tokens=8000 / --top-k=50 where supported.

Reference links

  • Upstream: https://github.com/redhat-et/ripwire (Apache-2.0; releases ship prebuilt macOS/Linux binaries + SHA-256)
  • The project ships 18 agent skills (Claude Code/Codex format) under skills/ in its repo — this Hermes skill is the distilled Hermes-format counterpart to that family (ripwire-orient is the closest base); read those upstream for deeper flows.

Frequently asked questions

What does the Ripwire Repo Map AI skill do?

Use ripwire CLI to map a repo before reading it.

Why use Ripwire Repo Map on TypingMind?

Because you install it once and use it with any model. Ripwire Repo Map is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ripwire Repo Map in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/redhat-et/ripwire/tree/main/skills/hermes/ripwire-repo-map. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Ripwire Repo Map?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ripwire Repo Map?

As many as you like. As long as a model supports skills, you can use Ripwire Repo Map with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ripwire Repo Map AI skill free?

Yes. It is published on GitHub by redhat-et under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇