repo scope connected to JoyStream. This guide walks through connecting it and running your first private sync.
1
Create a GitHub personal access token
In GitHub, create a personal access token that includes the
repo scope. That scope grants read access to your private repositories.The standard “Connect with GitHub” sign-in grants only public access. A personal access token with
repo scope is the supported way to read private repositories today.2
Connect it in JoyStream
Open Settings → Connections, choose Connect a Service, and connect GitHub using your
repo-scoped token.You can also reach this page from the Connect GitHub call to action that appears on a skill source or MCP repository card when a sync reports that a credential is required.3
Add the repository
In the UI, use the skill sources or MCP repositories card and paste the repository URL.From the CLI:Only GitHub URLs are accepted. A non-GitHub URL is rejected at this step.
4
Sync it
In the UI, click the per-row Sync control on the card.From the CLI:On success you see how many servers or skills were imported.
If you see “GitHub credential required”
The sync couldn’t read the repository and no usable GitHub credential was found for you. This is the expected message before you’ve connected arepo-scoped token.
In the UI, click Connect GitHub on the card to reach /settings/connections.
From the CLI you see:
--json:
repo-scoped GitHub token, then re-run the sync.
If a sync still fails after connecting
If you have a credential connected but the sync reports the repository wasn’t found, either the repository path is wrong or your token does not haverepo access to it. Check the token’s scope and confirm it can see that repository.
For organization repositories protected by SSO, authorize the token for that organization’s SSO and retry.
Notes
- Public repositories need no credential at all.
- The CLI has no
--tokenflag by design. It always uses the credential you connected in Settings, so your token never ends up in your shell history. - Your token is used only for the sync request and is then discarded.
See also
- Importing private GitHub repositories — how it works.
- Credential problems