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 language - •
stars:<n>orstars:><n>- Filter by star count - •
topic:<name>- Filter by topic - •
user:<owner>- Search within a user's repos - •
org:<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 repository - •
state:open|closed- Filter by issue state - •
author:<username>- Filter by author - •
label:<name>- Filter by label - •
language:<lang>- Filter by repo language - •
comments:<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 repository - •
state:open|closed|merged- Filter by PR state - •
author:<username>- Filter by author - •
label:<name>- Filter by label - •
language:<lang>- Filter by repo language - •
is: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:
bash
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:
markdown
### [<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.