
librarian
PopularMulti-repository codebase exploration. Research library internals, find code patterns, understand architecture, compare implementations across GitHub/npm/PyPI/crates. Use when needing deep understanding of how libraries work, finding implementations across open source, or exploring remote repository structure.
Multi-repository codebase exploration. Research library internals, find code patterns, understand architecture, compare implementations across GitHub/npm/PyPI/crates. Use when needing deep understanding of how libraries work, finding implementations across open source, or exploring remote repository structure.
Librarian Skill
Deep codebase exploration across remote repositories.
How to Use This Skill
Reference Structure
| File | Purpose | When to Read |
|---|---|---|
tool-routing.md |
Tool selection decision trees | Always read first |
opensrc-api.md |
API reference, types | Writing opensrc code |
opensrc-examples.md |
JavaScript patterns, workflows | Implementation examples |
linking.md |
GitHub URL patterns | Formatting responses |
diagrams.md |
Mermaid patterns | Visualizing architecture |
Reading Order
- Start with
tool-routing.md→ choose tool strategy - If using opensrc:
- Read
opensrc-api.mdfor API details - Read
opensrc-examples.mdfor patterns
- Read
- Before responding:
linking.md+diagrams.mdfor output formatting
Tool Arsenal
| Tool | Best For | Limitations |
|---|---|---|
| grep_app | Find patterns across ALL public GitHub | Literal search only |
| context7 | Library docs, API examples, usage | Known libraries only |
| opensrc | Fetch full source for deep exploration | Must fetch before read |
Quick Decision Trees
"How does X work?"
Known library?
├─ Yes → context7.resolve-library-id → context7.query-docs
│ └─ Need internals? → opensrc.fetch → read source
└─ No → grep_app search → opensrc.fetch top result
"Find pattern X"
Specific repo?
├─ Yes → opensrc.fetch → opensrc.grep → read matches
└─ No → grep_app (broad) → opensrc.fetch interesting repos
"Explore repo structure"
1. opensrc.fetch(target)
2. opensrc.tree(source.name) → quick overview
3. opensrc.files(source.name, "**/*.ts") → detailed listing
4. Read: README, package.json, src/index.*
5. Create architecture diagram (see diagrams.md)
"Compare X vs Y"
1. opensrc.fetch(["X", "Y"])
2. Use source.name from results for subsequent calls
3. opensrc.grep(pattern, { sources: [nameX, nameY] })
4. Read comparable files, synthesize differences
Critical: Source Naming Convention
After fetching, always use source.name for subsequent calls:
const [{ source }] = await opensrc.fetch("vercel/ai");
const files = await opensrc.files(source.name, "**/*.ts");
| Type | Fetch Spec | Source Name |
|---|---|---|
| npm | "zod" |
"zod" |
| npm scoped | "@tanstack/react-query" |
"@tanstack/react-query" |
| pypi | "pypi:requests" |
"requests" |
| crates | "crates:serde" |
"serde" |
| GitHub | "vercel/ai" |
"github.com/vercel/ai" |
| GitLab | "gitlab:org/repo" |
"gitlab.com/org/repo" |
When NOT to Use opensrc
| Scenario | Use Instead |
|---|---|
| Simple library API questions | context7 |
| Finding examples across many repos | grep_app |
| Very large monorepos (>10GB) | Clone locally |
| Private repositories | Direct access |
Output Guidelines
- Comprehensive final message - only last message returns to main agent
- Parallel tool calls - maximize efficiency
- Link every file reference - see
linking.md - Diagram complex relationships - see
diagrams.md - Never mention tool names - say "I'll search" not "I'll use opensrc"
References
You Might Also Like
Related Skills

coding-agent
Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
openclaw
add-uint-support
Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.
pytorch
at-dispatch-v2
Convert PyTorch AT_DISPATCH macros to AT_DISPATCH_V2 format in ATen C++ code. Use when porting AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES*, or other dispatch macros to the new v2 API. For ATen kernel files, CUDA kernels, and native operator implementations.
pytorch
skill-writer
Guide users through creating Agent Skills for Claude Code. Use when the user wants to create, write, author, or design a new Skill, or needs help with SKILL.md files, frontmatter, or skill structure.
pytorch
implementing-jsc-classes-cpp
Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.
oven-sh
implementing-jsc-classes-zig
Creates JavaScript classes using Bun's Zig bindings generator (.classes.ts). Use when implementing new JS APIs in Zig with JSC integration.
oven-sh