How to Configure GitHub Personal Access Token for Private Repository Access in Agent-Reach
Run agent-reach configure github-token <YOUR_PAT> to store your Personal Access Token in ~/.agent-reach/config.yaml, enabling the gh CLI to authenticate against private repositories and increasing your API rate limit from 60 to 5,000 requests per hour.
Agent-Reach leverages the official GitHub CLI (gh) to read, search, and interact with repositories, which requires a GitHub personal access token for private repository access. According to the Panniantong/Agent-Reach source code, the token is stored in a local YAML configuration and validated through the gh auth status command before executing operations.
Why You Need a Token for Private Repositories
Without authentication, the gh CLI is restricted to public repositories and subject to a 60 request/hour rate limit. By configuring a Personal Access Token (PAT), you unlock private repository access and benefit from a 5,000 request/hour rate limit, enabling full read, search, fork, issue, and PR operations.
Configuring Your GitHub Personal Access Token
1. Generate a Personal Access Token
Navigate to https://github.com/settings/tokens and generate a new classic token. For read-only repository access, no specific scopes are required—the Agent-Reach README explicitly notes that "无需任何权限" (no permissions are needed).
2. Store the Token via CLI
Execute the configure command to write the token to your local configuration:
agent-reach configure github-token ghp_YourPersonalAccessTokenHere
Internally, this invokes the configuration handler in agent_reach/cli.py (lines 1115-1117), which executes the following logic:
# Inside agent_reach/cli.py
elif args.key == "github-token":
config.set("github_token", value) # store in ~/.agent-reach/config.yaml
print("✅ GitHub token configured!")
3. Verify Authentication
Run the health check to confirm the gh CLI recognizes your credentials:
agent-reach doctor
You should see "GitHub OK" indicating successful authentication.
How Agent-Reach Uses Your Token
Configuration Schema
The token is defined in the configuration schema at agent_reach/config.py (line 26) under the key github_token. When persisted, it is written to ~/.agent-reach/config.yaml.
Authentication Validation
The GitHubChannel class validates authentication by executing gh auth status via subprocess, as implemented in agent_reach/channels/github.py (lines 19-30):
# From agent_reach/channels/github.py
def check(self, config=None):
gh = shutil.which("gh")
if not gh:
return "warn", "gh CLI 未安装。安装:https://cli.github.com"
try:
r = subprocess.run([gh, "auth", "status"], capture_output=True,
encoding="utf-8", errors="replace", timeout=5)
if r.returncode == 0:
return "ok", "完整可用(读取、搜索、Fork、Issue、PR 等)"
return "warn", "gh CLI 已安装但未认证。运行 gh auth login 可解锁完整功能"
except Exception:
return "warn", "gh CLI 状态检查失败,运行 gh auth status 查看详情"
If the token is valid, the channel reports full capability for private repository operations.
Rate Limiting Benefits
As documented in the README installation section, authenticated requests enjoy a 5,000 request/hour limit compared to 60 requests/hour for unauthenticated access, preventing throttling during high-volume operations.
Manual Configuration Alternative
If you prefer editing the configuration file directly, add the following to ~/.agent-reach/config.yaml:
github_token: ghp_YourPersonalAccessTokenHere
Summary
- Agent-Reach requires a GitHub Personal Access Token to access private repositories via the
ghCLI - Store tokens using
agent-reach configure github-token <TOKEN>or by editing~/.agent-reach/config.yamldirectly - The configuration schema is defined in
agent_reach/config.py(line 26) and the CLI handler resides inagent_reach/cli.py(lines 1115-1117) - Authentication is validated by
GitHubChannel.check()inagent_reach/channels/github.py(lines 19-30) usinggh auth status - Authenticated users receive 5,000 API requests per hour versus 60 for unauthenticated access
Frequently Asked Questions
Do I need specific scopes for the GitHub personal access token?
No. For read-only access to private repositories, you do not need to select any scopes when creating the token. The Agent-Reach documentation explicitly states that no permissions are required ("无需任何权限") for basic repository reading and searching operations.
Where is the GitHub token stored locally?
The token is stored in ~/.agent-reach/config.yaml under the github_token key. This location is defined in the configuration schema at agent_reach/config.py (line 26) and is written by the CLI command handler in agent_reach/cli.py (lines 1115-1117).
How can I verify that my token is configured correctly?
Run agent-reach doctor to execute a health check. The tool runs gh auth status via subprocess as implemented in agent_reach/channels/github.py (lines 19-30). If authentication succeeds, you will see "GitHub OK" and confirmation that the CLI has full capability for private repository access.
What happens if I don't configure a personal access token?
Without a token, Agent-Reach can only access public repositories and is subject to GitHub's unauthenticated rate limit of 60 requests per hour. Private repositories will be inaccessible, and you may encounter rate limiting errors during high-volume operations.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →