Development: GitHub CLI authentication for GHCR access and runner registration. Authenticates with GitHub and logs into the container registry. Run from repository root with 'just gh-login'. Use when developers need to push images or set up GitHub runners.
/plugin marketplace add atrawog/bazzite-ai-plugins/plugin install atrawog-bazzite-ai-dev-bazzite-ai-dev@atrawog/bazzite-ai-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
The gh development command authenticates with GitHub for container registry access and runner registration. It uses the GitHub CLI device code flow and logs into GHCR (GitHub Container Registry).
Key Concept: This is a development command - run with just from the repository root, not ujust. Authentication persists until you run gh auth logout.
| Action | Command | Description |
|---|---|---|
| Login | just gh-login | Authenticate with GitHub |
Authenticates with GitHub and logs into GHCR:
just gh-login
Flow:
| Scope | Purpose |
|---|---|
read:packages | Pull images from GHCR |
write:packages | Push images to GHCR |
repo | Generate runner registration tokens |
If a browser is available:
If no browser (SSH, headless):
github.com/login/device# 1. Run gh-login
just gh-login
# 2. Follow prompts to authenticate
# 3. Verify authentication
gh auth status
# 1. Authenticate
just gh-login
# 2. Build image
just build-pod nvidia
# 3. Push to registry
podman push ghcr.io/atrawog/bazzite-ai-pod-nvidia:latest
# 1. Authenticate (need repo scope)
just gh-login
# 2. Install runners
ujust runners install https://github.com/atrawog/bazzite-ai
The GitHub token is stored by gh CLI and persists across sessions:
~/.config/gh/hosts.ymlgh auth logoutThe container registry login is stored by Podman:
~/.local/share/containers/auth.jsonpodman logout ghcr.ioSymptom: gh: command not found
Fix:
# On Fedora/Bazzite (should be pre-installed)
rpm-ostree install gh
# Or download from GitHub
# https://github.com/cli/cli#installation
Symptom: Missing scopes: repo
Fix:
# The command auto-refreshes scopes
just gh-login
# Or manually refresh
gh auth refresh --scopes "read:packages,write:packages,repo"
Symptom: Error: unauthorized
Cause: Token expired or revoked
Fix:
# Re-authenticate
gh auth logout
just gh-login
Symptom: Device code not accepted
Cause: Code expired (15 minute limit)
Fix:
# Try again with fresh code
just gh-login
Symptom: denied: permission_denied
Cause: Missing write:packages scope or wrong repository
Fix:
# Check current scopes
gh auth status
# Refresh with correct scopes
just gh-login
Images are pushed to:
ghcr.io/<organization>/<image-name>:<tag>
Default organization: atrawog
pods (build and push pods), clean (logout)ujust runners installUse when the user asks about:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.