> abridge-install-auth

Set up Abridge clinical AI platform authentication and EHR integration credentials. Use when onboarding a healthcare org to Abridge, configuring Epic/Athena integration, or setting up developer sandbox access for ambient AI documentation. Trigger: "install abridge", "setup abridge", "abridge auth", "configure abridge credentials".

fetch
$curl "https://skillshub.wtf/jeremylongshore/claude-code-plugins-plus-skills/abridge-install-auth?format=md"
SKILL.mdabridge-install-auth

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

  • .env.local with partner credentials (chmod 600, gitignored)
  • EHR integration config pointing to correct FHIR endpoints
  • SMART on FHIR OAuth flow for clinician authentication
  • Verified connectivity to Abridge partner API

Error Handling

ErrorCauseSolution
401 UnauthorizedInvalid partner credentialsContact Abridge sales engineer for new credentials
403 ForbiddenOrg not provisionedVerify org_id matches your Abridge contract
SMART launch failureEpic App Orchard not configuredRegister app in Epic App Orchard first
CORS errorsWrong redirect URIUpdate allowed redirect URIs in Epic portal
Certificate errorSelf-signed cert in sandboxUse Abridge-provided sandbox CA certificate

Security Checklist

  • Credentials stored in environment variables, never in code
  • .env.local is gitignored and chmod 600
  • 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

Next Steps

After authentication is configured, proceed to abridge-hello-world for your first ambient session test.

┌ stats

installs/wk0
░░░░░░░░░░
github stars1.7K
██████████
first seenMar 23, 2026
└────────────

┌ repo

jeremylongshore/claude-code-plugins-plus-skills
by jeremylongshore
└────────────