Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
# Set up the credential helper to cache credentials# "store" saves to ~/.git-credentials in plaintext (simple, persistent)
git config --global credential.helper store
# Now do a test operation that triggers auth — git will prompt for credentials# Username: <their-github-username># Password: <paste the personal access token, NOT their GitHub password>
git ls-remote https://github.com/<their-username>/<any-repo>.git
After entering credentials once, they're saved and reused for all future operations.
Alternative: cache helper (credentials expire from memory)
# Cache in memory for 8 hours (28800 seconds) instead of saving to disk
git config --global credential.helper 'cache --timeout=28800'
Alternative: set the token directly in the remote URL (per-repo)
# Embed token in the remote URL (avoids credential prompts entirely)
git remote set-url origin https://<username>:<token>@github.com/<owner>/<repo>.git
Step 3: Configure git identity
# Required for commits — set name and email
git config --global user.name "Their Name"
git config --global user.email "their-email@example.com"
Step 4: Verify
# Test push access (this should work without any prompts now)
git ls-remote https://github.com/<their-username>/<any-repo>.git
# Verify identity
git config --global user.name
git config --global user.email
Option B: SSH Key Authentication
Good for users who prefer SSH or already have keys set up.
Step 1: Check for existing SSH keys
ls -la ~/.ssh/id_*.pub 2>/dev/null || echo"No SSH keys found"
Step 2: Generate a key if needed
# Generate an ed25519 key (modern, secure, fast)
ssh-keygen -t ed25519 -C "their-email@example.com" -f ~/.ssh/id_ed25519 -N ""# Display the public key for them to add to GitHubcat ~/.ssh/id_ed25519.pub
echo"<THEIR_TOKEN>" | gh auth login --with-token
# Set up git credentials through gh
gh auth setup-git
Verify
gh auth status
Using the GitHub API Without gh
When gh is not available, you can still access the full GitHub API using curl with a personal access token. This is how the other GitHub skills implement their fallbacks.
Setting the Token for API Calls
# Option 1: Export as env var (preferred — keeps it out of commands)export GITHUB_TOKEN="<token>"# Then use in curl calls:
curl -s -H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/user
Extracting the Token from Git Credentials
If git credentials are already configured (via credential.helper store), the token can be extracted:
# Read from git credential store
uv run python3 "${HERMES_HOME:-$HOME/.hermes}/skills/github/github-auth/scripts/git-credential-token.py"
Helper: Detect Auth Method
Use this pattern at the start of any GitHub workflow:
# Try gh first, fall back to git + curlifcommand -v gh &>/dev/null && gh auth status &>/dev/null; thenecho"AUTH_METHOD=gh"elif [ -n "$GITHUB_TOKEN" ]; thenecho"AUTH_METHOD=curl"elif _hermes_env="${HERMES_HOME:-$HOME/.hermes}/.env"; [ -f "$_hermes_env" ] && grep -q "^GITHUB_TOKEN=""$_hermes_env"; thenexport GITHUB_TOKEN=$(grep "^GITHUB_TOKEN=""$_hermes_env" | head -1 | cut -d= -f2 | tr -d '\n\r')
echo"AUTH_METHOD=curl"elif grep -q "github.com" ~/.git-credentials 2>/dev/null; thenexport GITHUB_TOKEN=$(uv run python3 "${HERMES_HOME:-$HOME/.hermes}/skills/github/github-auth/scripts/git-credential-token.py")
echo"AUTH_METHOD=curl"elseecho"AUTH_METHOD=none"echo"Need to set up authentication first"fi
Troubleshooting
Problem
Solution
git push asks for password
GitHub disabled password auth. Use a personal access token as the password, or switch to SSH
remote: Permission to X denied
Token may lack repo scope — regenerate with correct scopes
fatal: Authentication failed
Cached credentials may be stale — run git credential reject then re-authenticate
ssh: connect to host github.com port 22: Connection refused
Try SSH over HTTPS port: add Host github.com with Port 443 and Hostname ssh.github.com to ~/.ssh/config
Credentials not persisting
Check git config --global credential.helper — must be store or cache
Multiple GitHub accounts
Use SSH with different keys per host alias in ~/.ssh/config, or per-repo credential URLs
gh: command not found + no sudo
Use git-only Method 1 above — no installation needed