Quick Reference
| Topic | Details |
| What you need | A GitHub account + admin or owner access to the repo |
| Who can be added | Anyone with a GitHub account (or just an email address) |
| Methods available | Web browser (UI), GitHub API, GitHub CLI |
| Permission levels | Read, Triage, Write, Maintain, Admin |
| Invitation expires | 7 days after sending |
| Works on | Personal repos AND organization repos |
| Free plan limit | Collaborators are unlimited on both public and private repos. |
| Invite accepted via | Email link OR GitHub notification bell |
Why This Matters More Than You Think
You just built something cool on GitHub.
Maybe it’s a side project with a friend. Maybe it’s a work app with your whole team. Either way, you need someone else to get in there and actually touch the code.
But if you just share the link, they can look — they can’t do anything.
Getting access set up correctly from the start saves you a ton of headaches later. Wrong permissions lead to accidental deletions, security problems, and a lot of frustrated teammates.
This guide walks you through every single way to add someone to a GitHub repository — with clear steps, real explanations, and no fluff.
See also “How to See Deleted Instagram Messages: Every Method That Actually Works (2026)“
Before You Start: What You Actually Need to Know
You can only invite people to a repository if you own it — or if the owner gave you Admin access.
If you try to add someone and GitHub won’t let you, that’s usually why. You don’t have admin rights. Contact whoever owns the repo and ask them to send the invite instead.
Asking the person you are inviting for their GitHub username is another issue that has to be resolved first.Not their email, not their full name — their actual GitHub handle. It looks something like @johndoe or @sarah-dev. You can also use their email address, but the username is faster and avoids confusion.
If they don’t have a GitHub account yet, they’ll need to make one first. It’s free and takes about two minutes.

Method 1: The Easy Way — Adding Someone Through the Website
This is what most people use. It works. It’s fast.
Here’s how to accomplish it precisely, step-by-step:
Step 1 — Go to your repository
Log into GitHub. In the upper right corner, click your profile image. Choose “Your repositories.” Click the repo you want to add someone to.
Step 2 — Open Settings
Look at the row of tabs near the top of your repo page. You’ll see Code, Issues, Pull Requests, and so on. The last one says Settings. Click it.
Can’t see the Settings tab? That means you’re not an admin on this repo. You need admin access to do this.
Step 3 — Find the Collaborators section
Locate the Access area on the Settings page’s left side. Under it, click Collaborators (for personal repos) or Collaborators and teams (for organization repos).
GitHub will ask you to confirm your password or use two-factor authentication here. That’s normal — it’s just confirming it’s really you.
Step 4 — Click “Add people”
A green button or a clear link will say Add people. Click it.
A search box pops up.
Step 5 — Search for the person
Type their GitHub username, their full name, or their email address. GitHub will show matching accounts as you type. Click the right one.
Double-check before you click. There are sometimes accounts with very similar names.
Step 6 — Choose their permission level
Before you confirm, you’ll choose what level of access to give them. (More on what each level means in the next section.)
Step 7 — Send the invite
Click Add [username] to [repo name]. GitHub sends them an email and a notification on their account.
That’s it on your end. Now they need to accept it.
The Invite: What Happens on Their Side
The person you invited gets two notifications at the same time.
First, an email lands in their inbox with a link saying they’ve been invited to collaborate. Second, a notification shows up on GitHub itself — the little bell icon in the top right will have a red dot on it.
They click either one and accept the invitation.
Here’s the important part: the invite expires after 7 days. If they don’t accept it in that window, it disappears. You’d have to send it again. So after you invite someone, drop them a message and let them know to check their email or GitHub notifications.
Once they accept, they appear in your Collaborators list immediately.
Understanding the 5 Permission Levels (This Part Really Matters)
This is where most people get confused — and where mistakes happen.
GitHub has five permission levels. Each one gives a different amount of power over your repository.
Read
This is “look but don’t touch.” The person can see everything in the repo, download the code, open issues, and leave comments. They cannot push code or make any changes. Give this to stakeholders, clients, or reviewers who just need to see the project.
Triage
A step up from Read. This person can manage issues and pull requests — they can add labels, assign tasks, close issues, and request reviews. But they still can’t push code directly. Good for project managers or community helpers who organize things without coding.
Write
This is the standard developer role. They can push code to unprotected branches, create and merge pull requests, and manage releases. This is what you give your teammates who are actively building.
Maintain
Think of this as “lead developer access.” They can do everything a Writer can, plus manage some repo settings, configure webhooks, and handle branch protections. They can’t do anything truly destructive like deleting the repository. Good for senior developers or team leads.
Admin
Full control. This person can change any setting, manage all other users’ access, and even delete the repository. Only give this to people you fully trust — like co-owners or leads who genuinely need that level.
The golden rule: give people the minimum access they need to do their job. Nothing more. If someone just needs to write code, don’t give them Admin. If someone just needs to see the project, don’t give them Write.

Personal Repos vs. Organization Repos: What’s Different
There are two types of repositories on GitHub, and the process for adding people is slightly different for each.
Personal repositories belong to your individual GitHub account. You own them. When you add someone, you’re adding them directly as a collaborator. Simple and direct.
Organization repositories belong to a GitHub organization — a shared account that a team or company owns. These have extra layers of access control.
In an org repo, you can still add people as outside collaborators the same way (Settings → Collaborators). But you can also manage access through Teams — which is much more powerful for larger groups.
Using GitHub Teams for Bigger Groups
If you work in an organization with lots of people, teams are your best friend.
Instead of adding people one by one to every repo, you create a Team — say, “Backend Developers” — and give that team access to all the relevant repos at once. When someone new joins, you add them to the team. When they leave, you remove them from the team. All their access updates automatically.
To create a team and add repo access:
- Go to your organization’s main page on GitHub
- Click the Teams tab
- Create a new team or click an existing one
- Go to the Repositories tab inside the team
- Click Add repository and choose the repos you want
- Set the permission level for the team on each repo
Now anyone in that team automatically gets access to all those repos. Clean, organized, and easy to manage at scale.
Method 2: Adding a Collaborator via the GitHub API
This one is for developers who automate things or manage many repos at once.
The GitHub REST API has an endpoint specifically for adding collaborators. You send a PUT request to this address:
PUT /repos/OWNER/REPO/collaborators/USERNAME
You include the permission level in the request body. Here’s what it looks like using cURL in your terminal:
bash
curl -L \
-X PUT \
-H “Accept: application/vnd.github+json” \
-H “Authorization: Bearer YOUR-TOKEN” \
https://api.github.com/repos/OWNER/REPO/collaborators/USERNAME \
-d ‘{“permission”:”write”}’
Replace OWNER with the repo owner’s username, REPO with the repo name, USERNAME with the person you’re adding, and YOUR-TOKEN with your GitHub personal access token.
If it works, you get back a 201 status response. That confirms the invite was sent successfully.
You’ll need a Personal Access Token (PAT) with repo scope to do this. Go to GitHub Settings → Developer settings → Personal access tokens to create one.
Method 3: Using the GitHub CLI
The GitHub CLI (gh) is a command-line tool that lets you work with GitHub from your terminal.
To add a collaborator using the CLI, you use the API method through the gh api command:
bash
gh api \
–method PUT \
-H “Accept: application/vnd.github+json” \
/repos/OWNER/REPO/collaborators/USERNAME \
-f permission=’write’
This does the same thing as the cURL method but uses the GitHub CLI’s built-in authentication, so you don’t need to paste a token manually.
The CLI is especially useful when you’re adding multiple collaborators at once. You can write a short script and run it instead of clicking through the UI ten times.
How to Remove a Collaborator When the Time Comes
People change jobs. Projects end. Contracts finish.
Removing someone from a repository is just as important as adding them. Stale access is a real security risk.
To remove someone through the website:
- Go to Settings → Collaborators
- Find the person in the collaborator list
- Click the Remove button next to their name
That’s immediate. They lose access the second you click it. They don’t get notified by GitHub — though you should tell them directly, of course.
Through the API, you send a DELETE request to:
DELETE /repos/OWNER/REPO/collaborators/USERNAME
Common Problems and How to Fix Them
“I don’t see the Settings tab”
You’re not an admin on that repo. Only the owner or someone with Admin access can invite collaborators.
“I sent the invite but they never got the email”
Ask them to check their spam folder. Or tell them to look at their GitHub notification bell directly — the invite shows up there too. Remember: it expires in 7 days.
“I get an error saying I can’t assign that permission level”
You can only give someone access up to your own permission level. If you have Write access, you can’t give someone Maintain or Admin. Contact the repo owner to send the invite instead.
“The person I added can’t push code”
Check what permission level you gave them. If it’s Read or Triage, they can’t push. Change it to Write.
“My organization repo doesn’t show a Collaborators option”
For org repos, look for Manage access in Settings instead. The exact label can vary depending on your organization settings.
A Few Smart Habits for Managing Access
Once you start adding people, it’s easy to forget who has access to what. Here are habits that keep things tidy:
- Audit your collaborator list every few months. Go to Settings → Collaborators and remove anyone who no longer needs access.
- Use Teams for more than 5 people. It’s much easier to manage than individual permissions.
- Never give Admin access unless someone truly needs it. Most developers work perfectly fine with Write access.
- For contractors and freelancers, use outside collaborator access with Write or Triage. Don’t add them as full organization members.
- When a project is done, consider archiving the repository. GitHub lets you archive repos so they become read-only for everyone.
Final Words
Adding someone to a GitHub repository takes about thirty seconds once you know where to look.
The real skill isn’t clicking the right buttons — it’s thinking clearly about who needs what access before you invite them. Give too much, and you risk accidents. If you don’t give enough, nobody will be able to finish their work.
Start with Write access for most developers. Use Triage for anyone managing issues without touching code. Save Admin for people who actually need to change repo settings.
And keep your collaborator list clean. Review it regularly. Remove people who no longer need access. It takes two minutes and it keeps your project safe.
Now you know everything. Go add your teammate.
FAQs
1. Do I need a paid GitHub plan to add collaborators?
No. You can add unlimited collaborators to both public and private repositories on GitHub’s free plan. Paid plans add extra features for organizations, but the basic ability to add people is free for everyone.
2. Can I add someone who doesn’t have a GitHub account yet?
Sort of. You can send an invite to their email address. But they’ll still need to create a GitHub account before they can actually access the repository. The invite link in the email will prompt them to sign up or sign in first.
3. How long does a GitHub invitation stay active?
Seven days. If the person doesn’t accept within that window, the invitation expires automatically. You’ll need to go back to Settings → Collaborators and send it again.
4. Can I add someone to just one branch instead of the whole repo?
Not directly. GitHub collaborator access is at the repository level, not the branch level. However, you can protect specific branches using branch protection rules, which prevents anyone — even Write-level collaborators — from pushing to that branch without a pull request review.
5. What’s the difference between a collaborator and an organization member?
A collaborator (also called an outside collaborator in organizations) is someone added directly to a specific repository. An organization member belongs to the whole organization and can be given access to multiple repos through teams. Collaborators are simpler and more isolated; organization membership is more powerful and flexible.
6. Can I change someone’s permission level after I’ve already added them?
Yes, easily. Go to Settings → Collaborators, find their name, and you’ll see an option to change their role. The change takes effect immediately — no new invite needed.
7. What happens to a collaborator’s forks when I remove them?
Their fork still exists in their own account. Removing them from your repository only removes their direct access to your repo. They can’t push to your repo anymore, but their copy (the fork) stays with them.
8. Can I add a whole team to a repository at once?
Yes, if your repo is part of a GitHub organization. Go to Settings → Collaborators and teams, then search for your team name instead of an individual. The whole team gets access at the permission level you set. This is the recommended approach for larger projects.
9. What if I accidentally give someone Admin access?
Fix it immediately. Go to Settings → Collaborators, find their name, and change their permission to something lower — like Write. The change is instant. You don’t need to remove and re-invite them.
10. Can I add someone to multiple repositories at once?
Through the website, you have to do it one repo at a time. But with the GitHub API or CLI, you can write a script that loops through multiple repos and adds the same person to all of them with a single run.
11. Is there a limit to how many collaborators I can add?
For personal repositories on the free plan, GitHub limits outside collaborators on private repos to 3 on older plan structures, but current free plans allow unlimited collaborators on private repos too. Organization accounts have different rules based on the plan. Always check GitHub’s current billing page if you’re unsure.
12. Why can the person I added see some things but not push code?
They almost certainly have Read or Triage access. Only Write access and above allows someone to push code directly. Go to Settings → Collaborators and upgrade their permission to Write.
13. What’s the safest permission level for a freelancer or contractor?
Write access is usually right for someone who needs to contribute code. If they just need to review code and manage tasks, Triage is even better. Avoid giving contractors Maintain or Admin access — they don’t need it, and limiting access protects your project.
Explore more, learn more, and think deeper with Theory Magazine.
