Teams
Collaborate on skills with your team. Manage roles, configure per-member permissions, and maintain a shared skill library that every team member can access from their IDE.
On this page
Plan Tiers
SkillRepo offers two plan tiers. Publisher is free and single-seat; Team is per-seat and unlocks shared workspace, role-based permissions, and skill moderation.
| Feature | Publisher | Team |
|---|---|---|
| Team members | 1 | Unlimited |
| Skills | Unlimited | 200 |
| Access keys | 1 | 1 / seat |
| Shared workspace | — | |
| Role-based permissions | — | |
| Configurable per-member permissions | — | |
| Skill moderation (admin flag/hide) | — | |
| GitHub integration | ||
| 14-day trial | — | |
| Price | Free | $8 / seat / month |
Each user gets one active access key. Use the Rotate key CTA on Connect to revoke and re-mint in a single step. Platform admins can raise the per-user cap via the per-account override; see Access Keys in a Team. Anti-abuse rate limits apply on top of the cap; rate-limited responses return 429 with Retry-After.
Roles
Every team member has one of three roles. Roles determine baseline permissions, with some capabilities further tunable through configurable settings.
Owner
Full control over the account. Manages billing, can transfer ownership, and has all permissions by default. Every account has exactly one owner.
- Create, update, and delete any skill in the account
- Publish skills to the global catalog
- Invite and remove team members
- Change any member's role
- Manage billing and subscription
- Configure account-wide and per-member permission settings
- Transfer ownership to another member
Admin
Manages the team and skill catalog. Has nearly all owner permissions except billing and ownership transfer.
- Create, update, and delete any skill in the account
- Publish skills to the global catalog
- Invite and remove team members
- Change member roles (if enabled by the owner)
- Manage GitHub connections and trigger syncs
- Configure per-member permission settings
- Create access keys with read or write scopes
Member
A standard team participant. Members can create skills and use the shared library, but cannot manage the team or publish to the global catalog.
- Create new skills
- Update and delete skills they created
- Use all skills in the shared library
- Add/remove library skills (if enabled)
- Create read-scoped access keys (if enabled)
- View their own audit log entries
Own vs. any
Members can only update and delete skills they personally created. Owners and admins can modify any skill in the account.
Inviting Team Members
Owners and admins can invite new members from the Team page in the dashboard. Members do not have permission to send invitations.
Sending invitations
- 1
Open the Team page
Open the Team page. It's visible to owners and admins on Team plans.
- 2
Click Invite
The invite dialog opens with a row for each person you want to invite. Enter their email address and choose a role.
- 3
Choose a role
Select Admin or Member for each invitee. Owners can assign either role. Admins can only assign the Member role.
- 4
Invite multiple people at once
Click Add another to add more rows. Each row gets its own email and role. The dialog shows how many seats remain on your plan so you know how many invitations you can send.
- 5
Send
Click Send invitation (or Send N invitations for multiple). Each invitee receives an email with a unique link to join your team.
Seat limits
Pending invitations count toward your billed seat count on the Team plan. Adding a pending invite triggers a Stripe seat-quantity update at the next sync. Manage seats from Settings → Billing.
Accepting an invitation
When someone is invited, they receive an email with a link to join the team. Here is what the invitee experiences:
Check your email
The invitation email includes the team name, who invited you, and your assigned role. Click the accept link to continue.
Sign in
If you are not already signed in, you will be prompted to sign in with GitHub or Google. New users can create an account at this step — you will be redirected back to the invitation automatically.
Accept and join
The acceptance page shows the team name, your role, and who invited you. Click Accept invitation to join. You are taken to the dashboard and can immediately access the shared skill library.
Email must match
You must sign in with the same email address the invitation was sent to. If you sign in with a different email, you will see a message asking you to switch accounts.
Accepting through the CLI
Invitees who are already setting up the SkillRepo CLI can accept their invitation without opening the email first. Running npx skillrepo init opens the same browser flow used to mint an access key. After signing in, any pending invitations for that email address are listed alongside the accounts the user already belongs to. Picking the invitation accepts it and issues a key against the invited account in a single database transaction, and the CLI finishes its first-run sync against the team library.
Both paths land in the same end state: a member row on the team plus a working access key. Pick whichever is closer to the invitee's starting point — the email link if they are not setting up the CLI yet, the CLI flow if they want to skip the inbox round trip.
Managing pending invitations
Pending invitations appear on the Team page below your current members. Owners and admins can take the following actions:
Resend — Generates a new invitation link and sends a fresh email. The previous link is invalidated. You can resend once every 5 minutes. The expiration timer resets to 7 days.
Cancel — Immediately invalidates the invitation. The link will no longer work if the invitee tries to accept it. The seat is freed up for a new invitation.
Expiration — Invitations expire automatically after 7 days. Expired invitations cannot be accepted. Send a new invitation if the window has passed.
You can also suspend active members without removing them. Suspended members lose access but their skills and history are preserved. Unsuspend them at any time to restore access.
Managing Member Permissions
Beyond fixed role-based permissions, SkillRepo supports configurable toggles that let owners and admins fine-tune what members can do. These toggles work at two levels: account-wide defaults and per-member overrides.
Account-wide defaults
Set these on the Settings page. They apply to all members who do not have a per-member override.
| Setting | Default | Description |
|---|---|---|
memberCanCreateAccessKeys | On | Allow members to mint their own read-scoped access key for connecting their dev environment |
memberCanManageLibrary | Off | Allow members to add and remove skills from the shared library |
memberCanViewAllAuditLogs | Off | Allow members to see all audit log entries, not just their own |
adminCanChangeRoles | Off | Allow admins to change other members' roles |
Per-member overrides
Override the account-wide defaults for individual members from the member detail page. Click a team member's name to open their detail view, where you can toggle each configurable permission independently.
Resolution order
Per-member override takes priority over the account-wide default. If no per-member override is set, the account default applies. If neither is set, the hardcoded default is used.
Admins cannot edit their own permission settings or the owner's settings. The owner always has full permissions and shows as all-enabled with no toggles.
Access Keys in a Team
Access keys are how team members connect their dev environment to the shared skill library. Each key is scoped to the team account, so every request made with the key operates within the team's library. SkillRepo enforces one active access key per user; minting a second key requires rotating the existing one.
| Capability | Owner / Admin | Member |
|---|---|---|
| Create read-scoped keys | Configurable (default: on) | |
| Create write-scoped keys | Not allowed | |
| List all account keys | Own keys only | |
| Revoke keys | Any account key | Own keys only |
| Rotate keys | Any account key | Own key only |
| Active keys per user | 1 (rotate to mint a new one) | |
Write scope restriction
Write-scoped keys (registry:write) are restricted to owners and admins. This prevents members from bypassing role-based permission checks through the API.
Rotating an access key
Because each user is capped at one active key, the Connect page surfaces a primary Rotate key CTA whenever you're at the limit. Rotating revokes your oldest active key and mints a fresh one in the same database transaction, so there's never a window where you have zero keys or two keys.
When it applies. Click Rotate key when you've lost an old key, want to invalidate one without a separate revoke step, or have hit quota_exceeded on a fresh mint.
What gets revoked. Only your own oldest active key. Other users’ keys on the same account are untouched. Service-key rows on the account (e.g. CI keys minted by an admin) are also preserved unless they’re owned by you.
Confirmation. Because rotating revokes a live key, the UI prompts you with an AlertDialog explaining that any agent or automation running with the old key will need the new key. Confirm to proceed; cancel to keep the existing key intact.
Programmatic clients. CLI users running with --key directly can't rotate from the terminal — they get quota_exceeded on the second mint and need to visit Connect to revoke or rotate.
Per-account override
Platform admins can raise the per-user cap above 1 (up to 100) via the per-account plan-limits override editor. Owners and admins on Team accounts who need more than one active key per user should reach out to sales@skillrepo.dev.
GitHub Integration
Both Publisher and Team accounts can connect GitHub repositories to automatically sync skills. When you push changes to a connected repository, SkillRepo detects SKILL.md files and keeps your skill library in sync.
Admin-managed connections. Only owners and admins can create, delete, and trigger syncs for GitHub connections.
Visible sync history. All team members, including members, can view the sync history to see when skills were last updated from GitHub.
Automatic updates. GitHub-synced skills are managed by the sync process. Changes are pushed via webhooks, so your team always has the latest version without manual intervention.
To set up a GitHub connection, open the Connect page and follow the prompts to install the SkillRepo GitHub App on your repository.
Next steps
With your team set up, connect each engineer’s dev environment and start collaborating on skills.