Add OAuth Provider
superdesigndev/treg
Add a provider to treg's OAuth registry (the ones treg holds its own approved app for).
Official agent skill
Decides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service.
$ npx skills add makenotion/workers-template --skill auth-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install makenotion/workers-template auth-guide --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/auth-guide .claude/skills/auth-guide && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .claude/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guideType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add makenotion/workers-template --skill auth-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install makenotion/workers-template auth-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/auth-guide .agents/skills/auth-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .agents/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makenotion/workers-template --skill auth-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install makenotion/workers-template auth-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/auth-guide .cursor/skills/auth-guide && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .cursor/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/makenotion/workers-template.git --path .agents/skills/auth-guide--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add makenotion/workers-template --skill auth-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install makenotion/workers-template auth-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/auth-guide .gemini/skills/auth-guide && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .gemini/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install makenotion/workers-template auth-guideInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add makenotion/workers-template --skill auth-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/auth-guide .github/skills/auth-guide && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .github/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add makenotion/workers-template --skill auth-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install makenotion/workers-template auth-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/makenotion/workers-template.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/auth-guide .opencode/skills/auth-guide && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "auth-guide" agent skill from https://github.com/makenotion/workers-template/tree/main/.agents/skills/auth-guide into .opencode/skills/auth-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "auth-guide", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
auth-guideDecides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service.
Covers authentication against whatever outside service a worker actually integrates with, not Notion's own API tokens or login, and insists that the provider's current developer documentation be checked on the web before advising the user, rather than trusting memory for what auth methods it offers. Secret values are never requested or shown in chat: the user is told which environment variables are needed and enters them into `.env` directly, and the file is never opened or printed afterward.
The choice is mechanical once the provider's options are known: a personal API key or access token used only in outbound request headers to known domains gets a brokered credential first, since that is usually the simplest fit for an individual-scoped worker; a key the worker code must read as plaintext becomes an environment secret instead; a provider that only offers OAuth gets OAuth; and a case where the worker shouldn't depend on one person's credential, or should be easy to re-authenticate if that person leaves, also gets OAuth even if a personal key exists.
A brokered credential is declared with the Workers service's own `worker.credential()` call, which has the platform inject the value into outbound request headers from outside the worker's own runtime, so the plaintext secret never passes through the worker's code at all.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 681d89d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_API_TOKENLINEAR_API_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Notion Worker Third-Party Auth Guide loads about 3.5k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 1,728 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
have them enter the values directly in `.env` themselves. Do not open or print `.env` after they add them.Pattern: store the credential in `.env` (or directly in the deployed worker's secrets), read it from `process.env` insid2. **Have the user add the token to `.env` themselves** (create the file if it doesn't exist), or tell them the equivale`.env` is automatically loaded for local execution (`--local`).worker.** Once the token is already in `.env`, run:e user prefers not to keep the token in `.env`, they can use the direct-set form instead:the service, generate a new one, update `.env` (or `ntn workers env set` directly), and re-push if needed.3. **Have the user add credentials to `.env` themselves**, or tell them the equivalent `ntn workers env set` commands. Tworkers env push # push .env to remotevalues directly without putting them in .env:Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from makenotion/workers-template at commit 681d89d, republished under its MIT licence (© makenotion). 1,728 words, ~3,487 tokens.
.claude/skills/auth-guide/SKILL.md (or your agent's skills folder).This guide is for authentication against the third-party service your worker integrates with — the place data is coming from or going to (GitHub, Stripe, Salesforce, Google, Slack, etc.).
Use it when the worker needs credentials for a non-Notion API. Do not use it for Notion API tokens, ntn login, or general Notion workspace setup.
Never ask the user to send secret or environment-variable values in chat. For environment secrets, tell the user which variables are needed and have them enter the values directly in .env themselves. Do not open or print .env after they add them.
Most workers will use one of two auth patterns from the upstream service:
For a personal API key / PAT, use a brokered credential unless worker code must read the plaintext value.
Before recommending anything, check the provider's current developer docs. Confirm whether it offers:
Always research the provider's current auth docs on the web before advising the user. Do not rely on memory for auth availability, setup steps, or settings locations.
Then choose mechanically:
State the recommendation in one sentence with the reason. Example: "Linear offers personal API keys, so use a brokered credential; it's the simplest fit and keeps the token out of the worker runtime."
Pattern: declare where the credential may be injected with worker.credential(). The Workers service injects it into outbound request headers outside the worker runtime.
import { CREDENTIAL_VALUE } from "@notionhq/workers";
worker.credential("LINEAR_API_TOKEN", {
network: [{
domain: "api.linear.app",
transform: [{ headers: { Authorization: CREDENTIAL_VALUE } }],
}],
});Do not read a brokered credential from process.env or add its header in fetch. Deploy the declaration, then have the user set its value themselves with ntn workers env set LINEAR_API_TOKEN=<paste token>. Use the narrowest exact domains that work.
Use this fallback only when worker code must read the plaintext value, such as for webhook verification, signing or encryption, a request body or query parameter, or a non-HTTP client.
Pattern: store the credential in .env (or directly in the deployed worker's secrets), read it from process.env inside the capability's execute, push .env to the deployed worker before going live.
Look up the provider's current docs for creating a token. Link the user to the exact settings page when possible.
Have the user add the token to .env themselves (create the file if it doesn't exist), or tell them the equivalent ntn workers env set command. Tell them the variable name to use:
GITHUB_API_TOKEN=<paste your token here>.env is automatically loaded for local execution (--local).
Read the token inside execute (this is the part you write):
const token = process.env.GITHUB_API_TOKEN ?? "";
const res = await fetch("https://api.github.com/user", {
headers: { Authorization: `Bearer ${token}` },
});If auth seems broken, test the token outside the worker first against a simple authenticated endpoint from the provider docs. Example for GitHub:
curl -H "Authorization: Bearer $GITHUB_API_TOKEN" https://api.github.com/userTest locally with ntn workers exec <capability> --local. Confirm auth works before deploying.
Push the secret to the deployed worker. Once the token is already in .env, run:
ntn workers env pushIf the user prefers not to keep the token in .env, they can use the direct-set form instead:
ntn workers env set GITHUB_API_TOKEN=<paste token>Tell the user how to rotate: revoke the old token at the service, generate a new one, update .env (or ntn workers env set directly), and re-push if needed.
worker.oauth() declares an OAuth capability. The runtime handles the authorization redirect, token exchange, and refresh — you call accessToken() inside execute to get a fresh token.
The user has to register an OAuth app with the provider, then plug the credentials in:
const myAuth = worker.oauth("myAuth", {
name: "my-provider",
authorizationEndpoint: "https://provider.example.com/oauth/authorize",
tokenEndpoint: "https://provider.example.com/oauth/token",
scope: "read write",
clientId: process.env.MY_OAUTH_CLIENT_ID ?? "",
clientSecret: process.env.MY_OAUTH_CLIENT_SECRET ?? "",
});If the provider requires extra authorization parameters, add a concrete
string-valued object, for example
authorizationParams: { access_type: "offline" }.
Setup steps:
Check the provider's current OAuth docs. Confirm the authorization endpoint, token endpoint, scopes, any extra authorization params, and how the provider wants redirect URLs configured.
Register an OAuth app with the provider. If the provider asks for a redirect URL up front and you do not have it yet, create the app shell first and come back to fill in the redirect URL after the first deploy.
Have the user add credentials to .env themselves, or tell them the equivalent ntn workers env set commands. Tell them which variable names to use:
MY_OAUTH_CLIENT_ID=<paste client id>
MY_OAUTH_CLIENT_SECRET=<paste client secret>Add the worker.oauth() declaration to src/index.ts. Read clientId/clientSecret from process.env.
Create the worker (if not already created), push secrets, and deploy. The deployed worker reads clientSecret from environment variables during capability registration, so the secret must be present remotely before deploy. Have the user run these themselves:
ntn workers create --name <name> # if not already created
ntn workers env push # push .env to remote
# or, to set values directly without putting them in .env:
# ntn workers env set MY_OAUTH_CLIENT_SECRET=<paste secret>
ntn workers deployImportant: any time the client ID or client secret changes, you must redeploy (ntn workers deploy) — the OAuth capability binds these values at registration time, so updating env vars alone won't take effect.
Get the redirect URL and have the user add it to the provider's app settings. The redirect URL comes from the deployed worker. Get it with:
ntn workers oauth show-redirect-urlThe user must paste this exact value into their OAuth app's "redirect URI" (or "authorized redirect URL", or "callback URL") setting before starting the OAuth flow. Always remind the user of this step — OAuth will fail with a redirect mismatch error if it's missing or wrong.
Start the OAuth flow:
ntn workers oauth start <oauthCapabilityKey>This opens the user's browser, walks them through the provider's consent screen, and stores the resulting tokens.
Use the token inside execute:
const token = await myAuth.accessToken();
const res = await fetch("https://provider.example.com/v1/things", {
headers: { Authorization: `Bearer ${token}` },
});accessToken() returns a valid, refreshed access token. The runtime handles refresh automatically — you don't need to track expiry yourself.
OAuth capabilities can be tested locally, but only after a one-time bootstrap — the access token has to exist somewhere before accessToken() can read it. The flow:
Deploy the worker, configure the redirect URL, and complete the OAuth flow once (steps 5–7 above).
Pull the deployed worker's env vars (which now include the OAuth access token) into local .env:
ntn workers env pullNow ntn workers exec <key> --local works — accessToken() reads the token from local .env.
Caveats:
.env does not. When the local token goes stale, run ntn workers env pull again (or, if the refresh token has also expired, redo ntn workers oauth start <key> then env pull).--local. Run npm run check for type validation, or mock accessToken() in a test file if you need to exercise the rest of the logic.Hardcoded credentials in source. Use a brokered credential, or process.env when worker code needs the plaintext value — never inline secrets in src/index.ts. Even in personal repos, committed secrets get scraped.
Forgetting ntn workers env push. Local works, deploy fails with auth errors. Always push secrets after changing .env. The deployed worker doesn't see local .env.
Debugging worker code before testing the raw token. If API key auth is failing, hit a simple authenticated endpoint with curl first so you can separate bad credentials from worker bugs.
Pushing secrets after ntn workers deploy for OAuth. OAuth clientId is read from process.env during capability registration — push secrets before deploy, or use the create → env push → deploy sequence.
Wrong redirect URL for OAuth. redirect_uri_mismatch is the #1 OAuth failure mode. Always run ntn workers oauth show-redirect-url and verify the user has set the exact URL at the provider.
Asking for too many OAuth scopes. Request the narrowest set that works. Scope creep makes the consent screen scary and slows OAuth review for production apps.
Not telling the user about manual rotation. API keys don't refresh themselves. Tell the user up front that they'll need to rotate, and how.
# Push .env secrets to the deployed worker (run after any .env change)
ntn workers env push
# Pull remote env vars into local .env (useful for OAuth: brings access tokens
# down so `ntn workers exec --local` can read them)
ntn workers env pull
# List remote env vars (without values)
ntn workers env list
# Set a single env var
ntn workers env set KEY=value
# OAuth: get the redirect URL to configure at the provider
ntn workers oauth show-redirect-url
# OAuth: start the authorization flow (opens browser)
ntn workers oauth start <oauthCapabilityKey>
# OAuth: inspect token state
ntn workers oauth token <oauthCapabilityKey>If the service offers neither an API key nor an OAuth flow, the honest first answer is often that the integration isn't viable on that service.
Before giving up, there are a few indirect paths worth considering.
OAuth into a related service that already has the data. Sometimes the data flows downstream into a place you can reach with proper auth — a calendar provider, file storage, a shared workspace. Following the data to a sanctioned interface is preferable to forcing a connection at the original source.
Have the user export and upload. If the service offers a manual data export (CSV/JSON), the user can drop files somewhere the worker can read (S3, Drive, etc.) and the worker syncs from there. Higher-friction but unambiguously sanctioned.
Pull data out of the user's own email. If the service sends the user emails containing the data (digests, notifications, exports, receipts), OAuth into the user's own email account (Gmail, etc.) and parse those messages. The user owns the inbox, the service is sending them the data on purpose, and the email provider has a real OAuth API. Indirect but stable.
Use the service's own internal/frontend endpoints (the JSON routes its web app calls). Sometimes the only thing the service exposes is the API its own UI talks to — you can authenticate as the logged-in user (session cookie, captured bearer token) and call those routes from the worker. Honest caveats: it's often flaky (the routes can change with any frontend release), it relies on credentials that probably weren't intended for programmatic use, and the user needs to confirm this doesn't violate the service's terms of service before doing it. Reasonable for a personal tool or hobby integration; not something to lean on for serious production use. Don't recommend it as a first choice — but if the user goes this way knowingly, help them do it carefully (sane pacers, descriptive User-Agent, manual credential rotation, no rate-limit evasion).
Tip for discovery: ask the user to export a .har file from their browser's devtools (Network tab → right-click → "Save all as HAR with content"). HAR files capture every request/response the page made — URLs, methods, headers, bodies — which lets you see the exact endpoint shape without the user having to describe it.
© makenotion, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/auth-guide of makenotion/workers-template.
Open the folder on GitHubat commit 681d89d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in makenotion/workers-template, which our catalogue first saw on October 7, 2026.
Notion Worker Third-Party Auth Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Notion Worker Third-Party Auth Guide this skillmakenotion/workers-template | 439 | 1 repos | ~3.5k | Automated safety check: Notes | MIT | |
| Add OAuth Providersuperdesigndev/treg | 4.9k | — | ~2.5k | Automated safety check: Pass | Custom licence | |
| OneCLI Gatewaynanocoai/nanoclaw | 31k | — | ~856 | Automated safety check: Pass | MIT | |
| Quarkus Securityaffaan-m/ECC | 276k | 1 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Security PatternsCloudAI-X/claude-workflow-v2 | 1.4k | — | ~3.6k | Automated safety check: Notes | MIT | |
| Entra App Registrationmicrosoft/GitHub-Copilot-for-Azure | 255 | 2 repos | ~2.1k | Automated safety check: Pass | MIT |
superdesigndev/treg
Add a provider to treg's OAuth registry (the ones treg holds its own approved app for).
nanocoai/nanoclaw
Explains how to call external APIs through the OneCLI proxy, which injects stored credentials into outgoing HTTPS requests so the agent never handles keys.
affaan-m/ECC
Quarkus security implementation patterns: JWT and OIDC authentication, @RolesAllowed RBAC and SecurityIdentity checks, Bean Validation and custom validators, parameterized Panache queries, BCrypt…
CloudAI-X/claude-workflow-v2
Implements authentication, authorization, encryption, secrets management, and security hardening patterns.
microsoft/GitHub-Copilot-for-Azure
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration.
CraftOS-dev/CraftBot
Connect to 100+ APIs (Google Workspace, Microsoft 365, Notion, Slack, Airtable, HubSpot, etc.) with managed OAuth.
makenotion/workers-template
Walks you through designing a new sync for a Notion Worker, covering data source, mode, pagination and cursors, and then generates working code.
makenotion/workers-template
Works out why a Workers sync is failing or returning wrong data by reading run logs through the ntn CLI, matching errors to the sync code and proposing fixes.
makenotion/workers-template
Guides the design of Notion Workers syncs, from choosing a simple replace sync or a backfill plus delta pair to pagination, consistency buffers, pacing and deletion handling.
makenotion/workers-template
Checks a Workers sync capability against a list of common bugs, such as stuck cursors, endless pagination and lost deletions, and reports by severity.
Works with
Categories
Decides whether a Notion Worker should use a brokered credential, a plaintext environment secret, or OAuth to authenticate against a non-Notion service. Covers authentication against whatever outside service a worker actually integrates with, not Notion's own API tokens or login, and insists that the provider's current developer documentation be checked on the web before advising the user, rather than trusting memory for what auth methods it offers.env` directly, and the file is never opened or printed afterward.
Notion Worker Third-Party Auth Guide fits situations like: deciding how a Notion Worker should authenticate to a third-party API; choosing between a brokered credential, an environment secret, and OAuth; setting up outbound authentication headers for a worker integration; avoiding plaintext secrets in chat when configuring a worker's credentials.
Run `npx skills add makenotion/workers-template --skill auth-guide -a claude-code`. Or copy the skill folder (.agents/skills/auth-guide in makenotion/workers-template) into .claude/skills/auth-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add makenotion/workers-template --skill auth-guide -a codex`. Or copy the skill folder (.agents/skills/auth-guide in makenotion/workers-template) into .agents/skills/auth-guide in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add makenotion/workers-template --skill auth-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/auth-guide, .gemini/skills/auth-guide, .github/skills/auth-guide and .opencode/skills/auth-guide in your project.
Going by SKILL.md and its folder, Notion Worker Third-Party Auth Guide needs the command-line tools its instructions call (curl and npm) and credentials named GITHUB_API_TOKEN and LINEAR_API_TOKEN.
SKILL.md names 1 domain. In commands or code: api.github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Notion Worker Third-Party Auth Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Notion Worker Third-Party Auth Guide: Add OAuth Provider (superdesigndev/treg, 4.9k stars), OneCLI Gateway (nanocoai/nanoclaw, 31k stars), Quarkus Security (affaan-m/ECC, 276k stars) and Security Patterns (CloudAI-X/claude-workflow-v2, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
makenotion (a GitHub organization, an official publisher) maintains it in makenotion/workers-template, which has 439 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 11, 2026.
Source: makenotion/workers-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.