Connecting Your Repository
To get the most out of ShellPod, you will want to connect it to your code repositories. This guide covers setting up SSH keys for GitHub (and other Git providers), cloning repos, and managing your code.
Generating an SSH key
Your ShellPod container comes with Git and SSH pre-installed. The first step is to generate an SSH key pair that you will use to authenticate with GitHub, GitLab, or any other Git provider.
Open your terminal and run:
ssh-keygen -t ed25519 -C "your-email@example.com"
Press Enter to accept the default file location (~/.ssh/id_ed25519). You can optionally set a passphrase, but for a cloud development environment most developers skip this for convenience.
Once generated, copy your public key:
cat ~/.ssh/id_ed25519.pub
Copy the entire output — it starts with ssh-ed25519 and ends with your email.
Adding your key to GitHub
Go to GitHub SSH Key Settings and:
- Give the key a title like "ShellPod" so you can identify it later
- Paste your public key into the "Key" field
- Click Add SSH key
Test the connection:
ssh -T git@github.com
You should see a message like: Hi username! You've successfully authenticated.
Adding your key to other providers
The process is similar for other Git providers:
- GitLab: Go to Preferences → SSH Keys and paste your public key
- Bitbucket: Go to Personal Settings → SSH Keys and add your key
- Self-hosted Gitea/Forgejo: Go to Settings → SSH/GPG Keys and add your key
Cloning a repository
With your SSH key configured, clone any repository:
cd ~
git clone git@github.com:yourusername/your-repo.git
cd your-repo
Your repo is now on your ShellPod container's persistent disk. It will be there every time you reconnect.
Configuring Git identity
Set your Git identity so your commits are properly attributed:
git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"
These settings persist across sessions since they are stored in ~/.gitconfig on your container's persistent filesystem.
Working with multiple repositories
Your ShellPod container has plenty of disk space. You can clone as many repos as you need:
cd ~
git clone git@github.com:yourorg/frontend.git
git clone git@github.com:yourorg/backend.git
git clone git@github.com:yourorg/infra.git
Switch between them freely. Each has its own directory with its own git history, branches, and working state. Claude Code can work in any of them — just cd into the directory and run claude.
Using HTTPS instead of SSH
If you prefer HTTPS authentication, you can use a personal access token:
git clone https://github.com/yourusername/your-repo.git
When prompted for a password, use your personal access token (not your GitHub password). To avoid re-entering it, configure the credential helper:
git config --global credential.helper store
After the first authentication, your credentials are cached for future operations.
Pushing changes
Once Claude Code makes changes to your code, you can review and push them like normal:
git status
git diff
git add -A
git commit -m "feat: add new feature"
git push origin main
Or better yet, let Claude Code handle the git workflow for you. It can create branches, write commit messages, and even create pull requests if you have the GitHub CLI installed.
Tips
- Your SSH key persists across sessions — you only need to set it up once
- Use
git worktreeto work on multiple branches simultaneously (see our parallel agents blog post) - If you use multiple Git providers, the same SSH key works for all of them
- Consider adding a
CLAUDE.mdfile to your repo to give Claude Code project-specific context