Integration Connectivity Connected App Configure
forcedotcom/sf-skills
Salesforce Connected Apps and External Client Apps OAuth configuration with 120-point scoring.
Salesforce Connected Apps and OAuth configuration with 120-point scoring.
$ npx skills add Jaganpro/sf-skills --skill sf-connected-apps -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Jaganpro/sf-skills sf-connected-apps --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/Jaganpro/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sf-connected-apps .claude/skills/sf-connected-apps && 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 "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .claude/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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/Jaganpro/sf-skills/tree/main/skills/sf-connected-appsType 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 Jaganpro/sf-skills --skill sf-connected-apps -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Jaganpro/sf-skills sf-connected-apps --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jaganpro/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/sf-connected-apps .agents/skills/sf-connected-apps && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .agents/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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 Jaganpro/sf-skills --skill sf-connected-apps -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Jaganpro/sf-skills sf-connected-apps --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jaganpro/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/sf-connected-apps .cursor/skills/sf-connected-apps && 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 "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .cursor/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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/Jaganpro/sf-skills.git --path skills/sf-connected-apps--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 Jaganpro/sf-skills --skill sf-connected-apps -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Jaganpro/sf-skills sf-connected-apps --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jaganpro/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/sf-connected-apps .gemini/skills/sf-connected-apps && 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 "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .gemini/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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 Jaganpro/sf-skills sf-connected-appsInstalls 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 Jaganpro/sf-skills --skill sf-connected-apps -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Jaganpro/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/sf-connected-apps .github/skills/sf-connected-apps && 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 "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .github/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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 Jaganpro/sf-skills --skill sf-connected-apps -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Jaganpro/sf-skills sf-connected-apps --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Jaganpro/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/sf-connected-apps .opencode/skills/sf-connected-apps && 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 "sf-connected-apps" agent skill from https://github.com/Jaganpro/sf-skills/tree/main/skills/sf-connected-apps into .opencode/skills/sf-connected-apps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sf-connected-apps", 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.
sf-connected-appsSalesforce Connected Apps and OAuth configuration with 120-point scoring.
Sf Connected Apps is an agent skill from Jaganpro/sf-skills. Salesforce Connected Apps and OAuth configuration with 120-point scoring. TRIGGER when: user configures OAuth flows, JWT bearer auth, Connected Apps, or touches .connectedApp-meta.xml / .eca-meta.xml files. DO NOT TRIGGER when: Named Credentials for callouts (use sf-integration), permission policies (use sf-permissions), or API endpoint code (use sf-apex).
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files and assets (for example `CREDITS.md`, `README.md` and `references/example-usage.md`).
It sits in Backend & APIs, covering OAuth and OpenID Connect, CRM management and Authentication. It works with Salesforce. The repository describes itself as: [ARCHIVED — migrated to forcedotcom/afv-library] Salesforce Skills for Agentic Coding Tools — Apex, Flow, LWC, SOQL, Agentforce, Data Cloud, OmniStudio. Read-only archive; active… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 53c9956. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepWebFetchAskUserQuestionTodoWriteFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
sfFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sf Connected Apps loads about 1.9k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 94 tokens; SKILL.md has 672 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.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, WebFetch, AskUserQuestion, TodoWriteAutomated 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 Jaganpro/sf-skills at commit 53c9956, republished under its MIT licence (© Jaganpro). 672 words, ~1,901 tokens.
.claude/skills/sf-connected-apps/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Use this skill when the user needs OAuth app configuration in Salesforce: Connected Apps, External Client Apps (ECAs), JWT bearer setup, PKCE decisions, scope design, or migration from older Connected App patterns to newer ECA patterns.
Use sf-connected-apps when the work involves:
.connectedApp-meta.xml or .eca-meta.xml filesDelegate elsewhere when the user is:
| If the need is... | Prefer |
|---|---|
| simple single-org OAuth app | Connected App |
| new development with better secret handling | External Client App |
| multi-org / packaging / stronger operational controls | External Client App |
| straightforward legacy compatibility | Connected App |
Default guidance:
Ask for or infer:
Decide whether a Connected App or ECA is the better long-term fit.
| Use case | Default flow |
|---|---|
| backend web app | Authorization Code |
| SPA / mobile / public client | Authorization Code + PKCE |
| server-to-server / CI/CD | JWT Bearer |
| device / CLI auth | Device Flow |
| service account style app | Client Credentials (typically ECA) |
Use the provided assets instead of building from scratch:
assets/connected-app-basic.xmlassets/connected-app-oauth.xmlassets/connected-app-jwt.xmlassets/external-client-app.xmlassets/eca-global-oauth.xmlassets/eca-oauth-settings.xmlassets/eca-policies.xmlIf you need source-controlled ECA OAuth security metadata, retrieve it from an org first and treat the retrieved file as the schema source of truth:
sf project retrieve start --metadata ExtlClntAppOauthSecuritySettings:<AppName> --target-org <alias>Favor:
Before handoff, confirm:
Avoid these anti-patterns:
| Anti-pattern | Why it fails |
|---|---|
| wildcard / overly broad callback URLs | token interception risk |
Full scope by default | unnecessary privilege |
| PKCE disabled for public clients | code interception risk |
| consumer secret committed to source | credential exposure |
| no rotation / cert strategy for automation | brittle long-term ops |
Default fix direction:
Usually lives under:
force-app/main/default/connectedApps/Current source-supported ECA metadata uses multiple top-level source directories, not a single externalClientApps/ folder:
force-app/main/default/externalClientApps/ → ExternalClientApplication (.eca-meta.xml)force-app/main/default/extlClntAppGlobalOauthSets/ → ExtlClntAppGlobalOauthSettings (.ecaGlblOauth-meta.xml)force-app/main/default/extlClntAppOauthSettings/ → ExtlClntAppOauthSettings (.ecaOauth-meta.xml)force-app/main/default/extlClntAppOauthSecuritySettings/ → ExtlClntAppOauthSecuritySettings (.ecaOauthSecurity-meta.xml)force-app/main/default/extlClntAppOauthPolicies/ → ExtlClntAppOauthConfigurablePolicies (.ecaOauthPlcy-meta.xml)force-app/main/default/extlClntAppPolicies/ → ExtlClntAppConfigurablePolicies (.ecaPlcy-meta.xml)Important file-name gotchas:
.ecaGlblOauth, not .ecaGlobalOauth.ecaPlcy, not .ecaPolicy.ecaOauthSecurity for ExtlClntAppOauthSecuritySettingsWhen finishing, report in this order:
Suggested shape:
App: <name>
Type: Connected App | External Client App
Flow: <oauth flow>
Files: <paths>
Security: <scopes, PKCE, certs, secrets, IP policy>
Next step: <deploy, retrieve consumer key, or test auth flow>| Need | Delegate to | Reason |
|---|---|---|
| Named Credential / callout runtime config | sf-integration | runtime integration setup |
| deploy app metadata | sf-deploy | org validation and deployment |
| Apex token or refresh handling | sf-apex | implementation logic |
| permission review after deployment | sf-permissions | access governance |
| Score | Meaning |
|---|---|
| 80+ | production-ready OAuth app config |
| 54–79 | workable but needs hardening review |
| < 54 | block deployment until fixed |
© Jaganpro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files (references, assets) in skills/sf-connected-apps of Jaganpro/sf-skills.
Open the folder on GitHubat commit 53c9956
Sf Connected Apps 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 |
|---|---|---|---|---|---|---|
| Sf Connected Apps this skillJaganpro/sf-skills | 424 | — | ~1.9k | Automated safety check: Notes | MIT | |
| Integration Connectivity Connected App Configureforcedotcom/sf-skills | 1.1k | — | ~2.7k | Automated safety check: Notes | Apache-2.0 | |
| Frappe Core APIImpertio-Studio/Frappe_Claude_Skill_Package | 187 | 1 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Soundcloud API Integrationsoundcloud/api | 258 | — | ~787 | Automated safety check: Pass | None | |
| Frappe Errors APIImpertio-Studio/Frappe_Claude_Skill_Package | 187 | 1 repos | ~4k | Automated safety check: Pass | MIT | |
| Discover APIrand/cc-polymath | 181 | 1 repos | ~1.5k | Automated safety check: Pass | MIT |
forcedotcom/sf-skills
Salesforce Connected Apps and External Client Apps OAuth configuration with 120-point scoring.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.
soundcloud/api
Integrates applications with the SoundCloud HTTP API using OAuth 2.1, OpenAPI, and developer docs.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when debugging or handling API errors in Frappe/ERPNext v14/v15/v16.
rand/cc-polymath
Automatically discover API design skills when working with REST APIs, GraphQL schemas, API authentication, OAuth, JWT, rate limiting, API versioning, error handling, or endpoint design.
gjovanovicst/golang-auth-api
Complete module inventory of the Auth API project with file paths, dependencies, and architecture overview.
Jaganpro/sf-skills
Agentforce session tracing extraction and analysis. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Agent Script DSL for deterministic Agentforce agents. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows.
Jaganpro/sf-skills
Salesforce architecture diagrams using Mermaid with ASCII fallback.
Jaganpro/sf-skills
AI-powered image generation for Salesforce visuals via Nano Banana Pro.
Jaganpro/sf-skills
Creates and validates Salesforce Flows with 110-point scoring.
Works with
Categories
Salesforce Connected Apps and OAuth configuration with 120-point scoring. Sf Connected Apps is an agent skill from Jaganpro/sf-skills. Salesforce Connected Apps and OAuth configuration with 120-point scoring.
Sf Connected Apps fits situations like: : user configures OAuth flows; JWT bearer auth; touches .connectedApp-meta.xml / .eca-meta.xml files; : Named Credentials for callouts (use sf-integration).
Run `npx skills add Jaganpro/sf-skills --skill sf-connected-apps -a claude-code`. Or copy the skill folder (skills/sf-connected-apps in Jaganpro/sf-skills) into .claude/skills/sf-connected-apps in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Jaganpro/sf-skills --skill sf-connected-apps -a codex`. Or copy the skill folder (skills/sf-connected-apps in Jaganpro/sf-skills) into .agents/skills/sf-connected-apps 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 Jaganpro/sf-skills --skill sf-connected-apps -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sf-connected-apps, .gemini/skills/sf-connected-apps, .github/skills/sf-connected-apps and .opencode/skills/sf-connected-apps in your project.
Going by SKILL.md and its folder, Sf Connected Apps needs the command-line tools its instructions call (sf). Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep, WebFetch, AskUserQuestion, TodoWrite.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Sf Connected Apps is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sf Connected Apps: Integration Connectivity Connected App Configure (forcedotcom/sf-skills, 1.1k stars), Frappe Core API (Impertio-Studio/Frappe_Claude_Skill_Package, 187 stars), Soundcloud API Integration (soundcloud/api, 258 stars) and Frappe Errors API (Impertio-Studio/Frappe_Claude_Skill_Package, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Jaganpro (a GitHub user) maintains it in Jaganpro/sf-skills, which has 424 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on April 27, 2026.
Source: Jaganpro/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.