Claude-code-plugins-plus-skills abridge-install-auth
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/abridge-pack/skills/abridge-install-auth" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-abridge-install-auth && rm -rf "$T"
manifest:
plugins/saas-packs/abridge-pack/skills/abridge-install-auth/SKILL.mdsource content
Abridge Install & Auth
Overview
Configure Abridge ambient AI platform credentials and EHR integration tokens. Abridge is an enterprise clinical documentation platform — it does not have a public npm/pip SDK. Integration happens through EHR-embedded workflows (Epic Pal, Athena, eClinicalWorks) and partner API access.
Prerequisites
- Healthcare organization with Abridge contract
- EHR system access (Epic, Athena, eClinicalWorks, Cerner, or AllScripts)
- Abridge Partner Portal credentials from your sales engineer
- HIPAA-compliant infrastructure (required for PHI handling)
Instructions
Step 1: Obtain Abridge Partner Credentials
# Abridge uses partner-issued credentials, not self-service API keys # Contact your Abridge sales engineer for: # 1. Partner API client_id and client_secret # 2. Organization ID (org_id) # 3. Sandbox environment URL # Store credentials securely (never in source control) cat > .env.local << 'EOF' ABRIDGE_CLIENT_ID=partner_xxxxxxxxxxxx ABRIDGE_CLIENT_SECRET=secret_xxxxxxxxxxxx ABRIDGE_ORG_ID=org_xxxxxxxxxxxx ABRIDGE_BASE_URL=https://api.abridge.com/v1 ABRIDGE_SANDBOX_URL=https://sandbox.api.abridge.com/v1 EOF chmod 600 .env.local echo ".env.local" >> .gitignore
Step 2: Configure Epic EHR Integration (Most Common Path)
// src/config/abridge-ehr.ts // Abridge is Epic's first "Pal" — integration uses Epic's FHIR R4 APIs interface AbridgeEpicConfig { epicClientId: string; // From Epic App Orchard registration epicFhirBaseUrl: string; // e.g., https://fhir.epic.com/interconnect-fhir-oauth abridgeOrgId: string; // From Abridge partner portal abridgeApiBaseUrl: string; // Partner API endpoint smartLaunchUrl: string; // SMART on FHIR launch URL } const config: AbridgeEpicConfig = { epicClientId: process.env.EPIC_CLIENT_ID!, epicFhirBaseUrl: process.env.EPIC_FHIR_BASE_URL!, abridgeOrgId: process.env.ABRIDGE_ORG_ID!, abridgeApiBaseUrl: process.env.ABRIDGE_BASE_URL!, smartLaunchUrl: `${process.env.EPIC_FHIR_BASE_URL}/oauth2/authorize`, }; export default config;
Step 3: Authenticate via OAuth 2.0 (SMART on FHIR)
// src/auth/smart-fhir-auth.ts import axios from 'axios'; interface SmartTokenResponse { access_token: string; token_type: 'Bearer'; expires_in: number; scope: string; patient?: string; // Patient context from EHR launch encounter?: string; // Encounter context from EHR launch } async function getAbridgeToken( authCode: string, redirectUri: string ): Promise<SmartTokenResponse> { const tokenUrl = `${process.env.EPIC_FHIR_BASE_URL}/oauth2/token`; const response = await axios.post(tokenUrl, new URLSearchParams({ grant_type: 'authorization_code', code: authCode, redirect_uri: redirectUri, client_id: process.env.EPIC_CLIENT_ID!, client_secret: process.env.EPIC_CLIENT_SECRET!, }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, }); return response.data; } export { getAbridgeToken, SmartTokenResponse };
Step 4: Verify Connection
// src/auth/verify-connection.ts import axios from 'axios'; async function verifyAbridgeConnection(): Promise<boolean> { try { // Verify partner API access const response = await axios.get( `${process.env.ABRIDGE_BASE_URL}/health`, { headers: { 'Authorization': `Bearer ${process.env.ABRIDGE_CLIENT_SECRET}`, 'X-Org-Id': process.env.ABRIDGE_ORG_ID!, }, timeout: 5000, } ); console.log('Abridge connection verified:', response.data.status); return response.status === 200; } catch (error) { console.error('Abridge connection failed:', error); return false; } }
Output
with partner credentials (chmod 600, gitignored).env.local- EHR integration config pointing to correct FHIR endpoints
- SMART on FHIR OAuth flow for clinician authentication
- Verified connectivity to Abridge partner API
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Invalid partner credentials | Contact Abridge sales engineer for new credentials |
| Org not provisioned | Verify org_id matches your Abridge contract |
| SMART launch failure | Epic App Orchard not configured | Register app in Epic App Orchard first |
| CORS errors | Wrong redirect URI | Update allowed redirect URIs in Epic portal |
| Certificate error | Self-signed cert in sandbox | Use Abridge-provided sandbox CA certificate |
Security Checklist
- Credentials stored in environment variables, never in code
-
is gitignored and chmod 600.env.local - OAuth tokens stored in encrypted session store
- PHI data encrypted at rest and in transit (HIPAA requirement)
- Audit logging enabled for all Abridge API calls
- BAA (Business Associate Agreement) signed with Abridge
Resources
- Abridge Platform Overview
- Epic App Orchard Registration
- SMART on FHIR Authorization
- Abridge Partner Portal
Next Steps
After authentication is configured, proceed to
abridge-hello-world for your first ambient session test.