home / skills / yousufjoyian / claude-skills / github
This skill helps you manage GitHub repositories via SSH by cloning, pulling, and pushing changes efficiently.
npx playbooks add skill yousufjoyian/claude-skills --skill githubReview the files below or copy the command above to add this skill to your agents.
---
name: github
description: Clone, pull, and manage GitHub repositories using SSH authentication. Handles yousufjoyian repos and third-party repos.
---
# GitHub Repository Manager
This skill manages GitHub repositories via SSH - cloning, pulling, and pushing code.
## Account Details
| Setting | Value |
|---------|-------|
| Username | `yousufjoyian` |
| SSH Key | `~/.ssh/github_ed25519` |
| Default Clone Location | `/home/yousuf/local_workspaces/` |
## When to Use This Skill
- Cloning a repository from GitHub
- Pulling latest changes from a repo
- Pushing commits to GitHub
- Checking repo status
- Listing user's repositories
## What This Skill Does
1. **Clone Repos**: Downloads repositories via SSH
2. **Pull Updates**: Fetches and merges latest changes
3. **Push Changes**: Uploads commits to GitHub
4. **Smart Defaults**: Assumes `yousufjoyian/` for bare repo names
## How to Use
### Clone Your Own Repo
```
Pull triclaude
```
```
Clone my youtube-transcripts repo
```
```
Get repo living-contract
```
### Clone Someone Else's Repo
```
Clone anthropics/claude-code
```
```
Pull microsoft/vscode
```
### Update Existing Repo
```
Update triclaude with latest changes
```
```
Pull latest on youtube-transcripts
```
### Push Changes
```
Push my changes to triclaude
```
## Commands Reference
### Clone a repo (yousufjoyian)
```bash
git clone [email protected]:yousufjoyian/<repo>.git /home/yousuf/local_workspaces/<repo>
```
### Clone third-party repo
```bash
git clone [email protected]:<owner>/<repo>.git /home/yousuf/local_workspaces/<repo>
```
### Pull latest
```bash
cd /home/yousuf/local_workspaces/<repo> && git pull
```
### Push changes
```bash
cd /home/yousuf/local_workspaces/<repo> && git push
```
### Check status
```bash
cd /home/yousuf/local_workspaces/<repo> && git status
```
### Test SSH connection
```bash
ssh -T [email protected]
```
## Workflow
1. **Parse repo name**:
- `triclaude` → `yousufjoyian/triclaude`
- `anthropics/claude-code` → `anthropics/claude-code`
2. **Check if exists locally**:
- If `/home/yousuf/local_workspaces/<repo>/` exists → `git pull`
- Otherwise → `git clone`
3. **Execute and report**:
- Show clone/pull output
- Report final path
## Trigger Words
| Phrase | Action |
|--------|--------|
| "pull", "clone", "get repo" | Clone or pull repo |
| "push", "upload" | Push commits |
| "github pull", "fetch from github" | Clone/pull |
| "update repo" | Git pull |
## Example Session
**User**: "Pull triclaude"
**Assistant**:
```
Cloning yousufjoyian/triclaude...
git clone [email protected]:yousufjoyian/triclaude.git /home/yousuf/local_workspaces/triclaude
Cloning into '/home/yousuf/local_workspaces/triclaude'...
remote: Enumerating objects: 245, done.
remote: Counting objects: 100% (245/245), done.
Receiving objects: 100% (245/245), 1.2 MiB | 5.00 MiB/s, done.
Done: /home/yousuf/local_workspaces/triclaude/
```
## Related Skills
| Skill | Purpose |
|-------|---------|
| `git-commit` | Local commits with smart staging and message crafting |
**Workflow:** Use `git-commit` skill for staging and committing locally, then this skill for push/pull.
## Troubleshooting
| Issue | Solution |
|-------|----------|
| Permission denied (publickey) | Run `ssh-add ~/.ssh/github_ed25519` |
| Repository not found | Check repo name/owner spelling |
| Already exists | Use `git pull` instead of clone |
| Merge conflicts on pull | Resolve conflicts manually or stash changes |
## SSH Setup (Already Configured)
Key location: `~/.ssh/github_ed25519`
If SSH agent needs the key:
```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/github_ed25519
```
Verify connection:
```bash
ssh -T [email protected]
# Expected: Hi yousufjoyian! You've successfully authenticated...
```
This skill manages GitHub repositories over SSH: cloning, pulling, pushing, and reporting status. It uses a configured SSH key and smart defaults to assume repositories under the yousufjoyian account when an owner is omitted. Default workspace location and key paths are applied automatically.
Given a repo name or owner/repo string, the skill resolves the full GitHub SSH URL and the local path under /home/yousuf/local_workspaces/. If the repo folder exists locally it runs git pull; otherwise it runs git clone using [email protected]:. It runs commands via the configured SSH key (~/.ssh/github_ed25519), captures output, and returns the final path and command results.
What SSH key and path does this skill use by default?
It uses ~/.ssh/github_ed25519 as the SSH key and /home/yousuf/local_workspaces/ as the default clone location.
What happens if the repo already exists locally?
The skill runs git pull inside /home/yousuf/local_workspaces/<repo> to update the repository instead of cloning.
How do I fix permission denied (publickey) errors?
Load the key into your agent with eval "$(ssh-agent -s)" and ssh-add ~/.ssh/github_ed25519, and verify with ssh -T [email protected].