From cofounder
This skill should be used when the user asks to "set up a repo", "create a GitHub repo", "initialize git", "create a remote repository", "push to GitHub", "log in to GitHub", "gh auth", "set up GitHub", or asks about initializing a local and remote repository and pushing it to GitHub.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cofounder:repo-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize a local git repository and create a matching remote on GitHub using
Initialize a local git repository and create a matching remote on GitHub using the GH CLI, with device-code authentication that works reliably in all environments.
The computer-setup skill must have been run first — it installs gh and git.
A GitHub account is required before proceeding. If the user does not have one, guide them through account creation:
Recommend enabling two-factor authentication after sign-up. For more details, see Creating an account on GitHub.
Run gh auth status — interpret whether it shows the user as authenticated.
If not authenticated, run:
GH_FORCE_TTY=1 NO_COLOR=1 GH_PROMPT_DISABLED=1 gh auth login --hostname github.com --git-protocol https --scopes "repo,read:org,workflow" > /tmp/gh-auth.log 2>&1 & sleep 3 && cat /tmp/gh-auth.log
Retrieve the one-time code from the output and display it very prominently to the user along with the URL https://github.com/login/device. For example:
GitHub login required!
Your one-time code is:
XXXX-XXXXOpen https://github.com/login/device in your browser and enter the code.
Ask the user to complete the browser authorization and confirm when done.
After the user confirms, verify:
gh auth status
Before running the init script, check if a remote is already configured:
git remote get-url origin 2>/dev/null
If origin is already set, the repo is fully configured — do not ask the
user for a name or visibility, and skip the init script entirely.
If no remote is configured, ask the user for:
private (default) or public.Then run the init script:
bash ${CLAUDE_PLUGIN_ROOT}/skills/repo-setup/scripts/repo-init.sh <repo-name> [private|public]
The script will:
.git/ does not existorigin is already configured locallyorigin and pushprivate), add it as origin, and pushIf finer control is needed, run each step individually:
# Initialize local repo
git init
# Create remote and link it (from the project directory)
gh repo create <repo-name> --private --source=. --remote=origin --push
gh auth status fails.--web flag for gh auth login — it attempts to open a browser
which may not work. The device code flow (default when --web is omitted) is
more reliable.scripts/repo-init.sh — Initializes local git repo and creates the matching GitHub remote in one stepnpx claudepluginhub gmautner/marketplace --plugin cofounderConfigures GitHub repository via gh CLI with main branch protection rules, issue/PR templates, standard labels, .gitignore, and metadata. For new or existing professional projects.
Creates private GitHub repo with branch protection, squash merges only, Actions permissions, Pages deployment, MIT license, and README using GitHub CLI. Use for new repo initialization.