
osgrep
by iamhenry
SKILL.md
name: osgrep description: Semantic code search using natural language queries. Use when users ask "where is X implemented", "how does Y work", "find the logic for Z", or need to locate code by concept rather than exact text. Returns file paths with line numbers and code snippets. allowed-tools: "Bash(osgrep:*), Read" license: Apache-2.0
When to Use
Use this to find code by concept or behavior (e.g., "where is auth validated", "how are plugins loaded"). Note: This tool prioritizes finding the right files and locations in the code. Snippets are truncated (max 16 lines) and are often just previews.
Example:
osgrep "how are plugins loaded"
osgrep "how are plugins loaded" packages/transformers.js/src
Strategy for Different Query Types
For Architectural/System-Level Questions (auth, LSP integration, file watching)
- Search Broadly First: Use a conceptual query to map the landscape.
osgrep "authentication authorization checks"
- Survey the Results: Look for patterns across multiple files:
- Are checks in middleware? Decorators? Multiple services?
- Do file paths suggest different layers (gateway, handlers, utils)?
- Read Strategically: Pick 2-4 files that represent different aspects:
- Read the main entry point
- Read representative middleware/util files
- Follow imports if architecture is unclear
- Refine with Specific Searches: If one aspect is unclear:
osgrep "session validation logic"osgrep "API authentication middleware"
For Targeted Implementation Details (specific function, algorithm)
- Search Specifically: Ask about the precise logic.
osgrep "logic for merging user and default configuration"
- Evaluate the Semantic Match:
- Does the snippet look relevant?
- Crucial: If it ends in
...or cuts off mid-logic, read the file.
- One Search, One Read: Use osgrep to pinpoint the best file, then read it fully.
Hybrid Search Strategy (Semantic + Grep)
Combining semantic search with grep is 31% more effective than either alone.
Decision Heuristic:
- osgrep: Exploration. You don't know exact names/patterns.
- rg (ripgrep): Precision. You know the symbol/pattern to find.
Two-Stage Workflow:
-
Discover with osgrep: Find the right files conceptually
osgrep "authentication validation logic"- → Returns
src/auth/middleware.ts:45,src/utils/jwt.ts:12
-
Pinpoint with ripgrep: Find exact matches in those files
rg "verifyToken|validateJWT" src/auth/ src/utils/- → Returns exact line numbers with context
Example: Finding rate limiting implementation
# Step 1: Conceptual discovery
osgrep "rate limiting throttling"
# → src/middleware/rateLimit.ts:23, src/api/limiter.ts:8
# Step 2: Exact symbols/patterns
rg "RateLimiter|throttle" src/middleware/ src/api/
Why this works: Semantic search narrows to the right files. Grep pinpoints exact locations within those files. Together = faster, more accurate results.
Output Format
Returns: path/to/file:line [Tags] Code Snippet
Example:
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");
...
Tags:
ORCHESTRATION: Contains logic, coordinates other code. Prioritize these.DEFINITION: Types, interfaces, classes.
Metadata:
Defines: What this code definesCalls: What this code calls (helps trace flow)Score: Relevance (1 = best match)
Markers:
...: Truncation marker. Snippet is incomplete—useReadfor full context.
Other Commands
# Trace call graph (who calls X, what X calls)
osgrep trace handleAuth
# Skeleton of a huge file (find which ranges to read)
osgrep skeleton src/giant-2000-line-file.ts
# Just file paths when you only need locations
osgrep "authentication" --compact
Tips
- More Words = Better: "auth" is vague. "where does the server validate JWT tokens" is specific.
- Prioritize ORCH Results: ORCHESTRATION results contain the logic—start there.
- Trust the Semantics: You don't need exact names.
osgrep "how does the server start"works better than guessingosgrep "server.init". - Watch for Distributed Patterns: If results span 5+ files in different directories, the feature is likely architectural—survey before diving deep.
- Scope When Possible: Use path constraints to focus:
osgrep "auth" src/server/ - Use Line Ranges: Don't read entire files. Use the line ranges osgrep gives you.
- Rephrase If Needed: If results seem off, rephrase your query like you'd ask a teammate.
If Index is Building
If you see "Indexing", "Building", or "Syncing": STOP. Alert the user that the index is building. Ask if they want to wait or proceed with partial results.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です