GitHub-focused research subagent package for pi.
From npm (after publish):
pi install npm:pi-librarianFrom git:
pi install git:github.com/default-anton/pi-librarianOr use without installing:
pi -e npm:pi-librarian
# or
pi -e git:github.com/default-anton/pi-librarian- Registers a
librariantool for GitHub code investigation viagh, using known query context when provided (without guessing unknown scope). - Runs a dedicated subagent session with a strict fixed turn budget (10 turns).
- Uses only
bash+readtools in the subagent. - Instructs the subagent to use
ghdirectly for search/tree/fetch workflows. - Caches only selected files in an isolated temporary workspace under
/tmp/pi-librarian/run-*/repos/.... - Returns the subagent's final Markdown answer as-is (no extension-side post-processing).
- Selects subagent model via shared package
pi-subagent-model-selection. - Emits compact selection diagnostics (
authMode,authSource,reason) in tool details.
librarian({
query: string,
repos?: string[],
owners?: string[],
maxSearchResults?: number,
})Source of truth: https://github.com/default-anton/pi-subagent-model-selection
This repository intentionally references that package instead of duplicating policy details.
These are the same patterns encoded in the librarian system prompt.
# code search
gh search code "NewCmdRoot" --repo cli/cli --json path,repository,sha,url,textMatches --limit 3
# repo tree
gh api "repos/cli/cli/git/trees/trunk?recursive=1"
# fetch one file into local cache
REPO='cli/cli'
REF='trunk'
FILE='pkg/cmd/root/root.go'
mkdir -p "repos/$REPO/$(dirname "$FILE")"
gh api "repos/$REPO/contents/$FILE?ref=$REF" --jq .content | tr -d '\n' | base64 --decode > "repos/$REPO/$FILE"# code search with path matching
gh search code "README.md" --repo default-anton/jagc --match path --json path,repository,sha,url --limit 3
# repo tree
gh api "repos/default-anton/jagc/git/trees/main?recursive=1"
# fetch one file into local cache
REPO='default-anton/jagc'
REF='main'
FILE='README.md'
mkdir -p "repos/$REPO/$(dirname "$FILE")"
gh api "repos/$REPO/contents/$FILE?ref=$REF" --jq .content | tr -d '\n' | base64 --decode > "repos/$REPO/$FILE"If a repo is inaccessible, gh returns 404/403; the subagent should report that constraint.
- GitHub CLI installed.
- GitHub CLI authenticated (
gh auth login).
No proactive auth pre-check is performed; command failures from gh are surfaced directly.
The subagent runs with cwd set to that temporary workspace, so relative writes stay in /tmp/pi-librarian/run-* and do not touch your project repository.
Apache-2.0