Skip to content
Development
Skill

/osgrep

Semantic code search. Use alongside grep - grep for exact strings, osgrep for concepts.

From plugin
osgrep
1.1k1 skill
Install
$ npx -y skills add Ryandonofrio3/osgrep --skill osgrep --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/osgrep

Context preview

The summary Claude sees to decide when to auto-load this skill.

Semantic code search. Use alongside grep - grep for exact strings, osgrep for concepts.

SKILL.md

osgrep.SKILL.md
name: osgrep
description: Semantic code search. Use alongside grep - grep for exact strings, osgrep for concepts.
allowed-tools: "Bash(osgrep:*), Read"

What osgrep does

Finds code by meaning. When you'd ask a colleague "where do we handle auth?", use osgrep.

  • grep/ripgrep: exact string match, fast
  • osgrep: concept match, finds code you couldn't grep for

Primary command

osgrep "where do we validate user permissions"

Returns ~10 results with code snippets (15+ lines each). Usually enough to understand what's happening.

Output explained

ORCHESTRATION src/auth/handler.ts:45
Defines: handleAuth | Calls: validate, checkRole, respond | Score: .94

export async function handleAuth(req: Request) {
  const token = req.headers.get("Authorization");
  const claims = await validateToken(token);
  if (!claims) return unauthorized();
  const allowed = await checkRole(claims.role, req.path);
  ...
  • **ORCHESTRATION** = contains logic, coordinates other code
  • **DEFINITION** = types, interfaces, classes
  • **Score** = relevance (1 = best match)
  • **Calls** = what this code calls (helps you trace flow)

When to Read more

The snippet often has enough context. But if you need more:

# osgrep found src/auth/handler.ts:45-90 as ORCH
Read src/auth/handler.ts:45-120

Read the specific line range, not the whole file.

Other commands

# Trace call graph (who calls X, what X calls)
osgrep trace handleAuth

# Skeleton of a huge file (to find which ranges to read)
osgrep skeleton src/giant-2000-line-file.ts

# Just file paths when you only need locations
osgrep "authentication" --compact

Workflow: architecture questions

# 1. Find entry points
osgrep "where do requests enter the server"
# Review the ORCH results - code is shown

# 2. If you need deeper context on a specific function
Read src/server/handler.ts:45-120

# 3. Trace to understand call flow
osgrep trace handleRequest

Tips

  • More words = better results. "auth" is vague. "where does the server validate JWT tokens" is specific.
  • ORCH results contain the logic - prioritize these
  • Don't read entire files. Use the line ranges osgrep gives you.
  • If results seem off, rephrase your query like you'd ask a teammate

If Index is Building

If you see "Indexing" or "Syncing": STOP. Tell the user the index is building. Ask if they want to wait or proceed with partial results.

Read more
Ships withosgrep

Open Source Semantic Search for your AI Agent

Get the whole plugin
Stats
1,139
Stars
67
Forks
Quiet
Maintenance
TypeScript
Language
Apache-2.0
License
7mo ago
Last commit
9mo ago
Created

Repo: Ryandonofrio3/osgrep