github-kb
GitHub Knowledge Base
Manage a local GitHub knowledge base and provide GitHub search capabilities via gh CLI. Key file: GITHUB_KB.md at the root of the KB directory catalogs all projects with brief descriptions.
Configuration
Set environment variables before use:
GITHUB_TOKEN- GitHub Personal Access Token (optional, for private repos)GITHUB_KB_PATH- Path to local KB directory (default:/home/node/clawd/github-kb)
Example:
export GITHUB_TOKEN="ghp_xxxx..."
export GITHUB_KB_PATH="/your/path/github-kb"
Token Privacy: Never hardcode tokens. Inject via environment variables or container secrets.
GitHub CLI (gh)
Requirement: GitHub CLI must be installed and authenticated.
Installation:
- macOS:
brew install gh - Linux:
apt install ghor see official install guide - Windows:
winget install GitHub.cli
Authentication:
# Interactive login
gh auth login
# Or use token from GITHUB_TOKEN env var
gh auth login --with-token <(echo "$GITHUB_TOKEN")
Verify: gh auth status
If gh is not installed or not authenticated, skip search operations and use only local KB features.
Searching Repos
# Search repos by keyword
gh search repos <query> [--limit <n>]
# Examples:
gh search repos "typescript cli" --limit 10
gh search repos "language:python stars:>1000" --limit 20
gh search repos "topic:mcp" --limit 15
Search qualifiers:
language:<lang>- Filter by programming languagestars:<n>orstars:><n>- Filter by star counttopic:<name>- Filter by topicuser:<owner>- Search within a user's reposorg:<org>- Search within an organization
Searching Issues
gh search issues "react hooks bug" --limit 20
gh search issues "repo:facebook/react state:open" --limit 30
gh search issues "language:typescript label:bug" --limit 15
Search qualifiers:
repo:<owner/repo>- Search in specific repositorystate:open|closed- Filter by issue stateauthor:<username>- Filter by authorlabel:<name>- Filter by labellanguage:<lang>- Filter by repo languagecomments:<n>orcomments:><n>- Filter by comment count
Searching Pull Requests
# Search PRs
gh search prs <query> [--limit <n>]
# Examples:
gh search prs "repo:vercel/next.js state:open" --limit 30
gh search prs "language:go is:merged" --limit 15
Search qualifiers:
repo:<owner/repo>- Search in specific repositorystate:open|closed|merged- Filter by PR stateauthor:<username>- Filter by authorlabel:<name>- Filter by labellanguage:<lang>- Filter by repo languageis:merged|unmerged- Filter by merge status
Viewing PR/Issue Details
# View issue/PR details
gh issue view <number> --repo <owner/repo>
gh pr view <number> --repo <owner/repo>
# View with comments
gh issue view <number> --repo <owner/repo> --comments
gh pr view <number> --repo <owner/repo> --comments
Local Knowledge Base Workflow
Querying About a Repo in KB
- Read GITHUB_KB.md to understand what projects exist
- Locate the project directory under ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/
Cloning a New Repo to KB
- Search GitHub if the full repo name is not known
- Clone to KB directory:
git clone https://github.com/<owner>/<name>.git ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/<name> - Generate project description: Read README or key files to understand the project
- Update GITHUB_KB.md: Add entry for the new repo following the existing format:
### [<name>](/<name>) Brief one-line description of what the project does. Additional context if useful (key features, tech stack, etc.). - Confirm completion: Tell user the repo was cloned and where to find it
Default Clone Location
If user says "clone X" without specifying a directory, default to ${GITHUB_KB_PATH:-/home/node/clawd/github-kb}/.
GITHUB_KB.md Format
The catalog file follows this structure:
# GitHub Knowledge Base
This directory contains X GitHub projects covering various domains.
---
## Category Name
### [project-name](/project-name)
Brief description of the project.
Maintain categorization and consistent formatting when updating.