Agent Skills: Gamma Install & Auth

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/gamma-install-auth

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/gamma-pack/skills/gamma-install-auth

Skill Files

Browse the full folder contents for gamma-install-auth.

Download Skill

Loading file tree…

plugins/saas-packs/gamma-pack/skills/gamma-install-auth/SKILL.md

Skill Metadata

Name
gamma-install-auth
Description
|

Gamma Install & Auth

Overview

Configure authentication for the Gamma Generate API v1.0 (GA since Nov 2025). Gamma uses a REST API at https://public-api.gamma.app/v1.0/ — there is no official SDK package. All requests authenticate via the X-API-KEY header.

Prerequisites

  • Gamma Pro account or higher (API access requires Pro+)
  • Node.js 18+ or Python 3.10+ for wrapper code
  • curl or HTTP client library

Instructions

Step 1: Generate API Key

  1. Log in at gamma.app
  2. Navigate to Settings and Members (dropdown, upper-left)
  3. Select the API key tab
  4. Click Create API key
  5. Copy and securely store the key — it will not be shown again

Step 2: Configure Environment

# Set environment variable (add to .env or shell profile)
export GAMMA_API_KEY="gma_your_api_key_here"

# .env file approach
echo 'GAMMA_API_KEY=gma_your_api_key_here' >> .env

Step 3: Verify Connection

# Quick verification with curl
curl -s -o /dev/null -w "%{http_code}" \
  -H "X-API-KEY: ${GAMMA_API_KEY}" \
  https://public-api.gamma.app/v1.0/themes
# 200 = authenticated, 401 = invalid key

Step 4: First API Call (Node.js)

// gamma-client.ts — thin wrapper around the REST API
const GAMMA_BASE = "https://public-api.gamma.app/v1.0";

interface GammaConfig {
  apiKey: string;
  baseUrl?: string;
}

export function createGammaClient(config: GammaConfig) {
  const headers = {
    "X-API-KEY": config.apiKey,
    "Content-Type": "application/json",
  };
  const base = config.baseUrl ?? GAMMA_BASE;

  return {
    async listThemes() {
      const res = await fetch(`${base}/themes`, { headers });
      if (!res.ok) throw new Error(`Gamma API ${res.status}: ${await res.text()}`);
      return res.json();
    },
    async listFolders() {
      const res = await fetch(`${base}/folders`, { headers });
      if (!res.ok) throw new Error(`Gamma API ${res.status}: ${await res.text()}`);
      return res.json();
    },
  };
}

// Verify connection
const gamma = createGammaClient({ apiKey: process.env.GAMMA_API_KEY! });
const themes = await gamma.listThemes();
console.log(`Connected — ${themes.length} workspace themes available`);

Step 5: First API Call (Python)

import os, requests

GAMMA_BASE = "https://public-api.gamma.app/v1.0"
HEADERS = {
    "X-API-KEY": os.environ["GAMMA_API_KEY"],
    "Content-Type": "application/json",
}

# Verify connection
resp = requests.get(f"{GAMMA_BASE}/themes", headers=HEADERS)
resp.raise_for_status()
themes = resp.json()
print(f"Connected — {len(themes)} workspace themes available")

API Key Security

| Practice | Implementation | |----------|---------------| | Never commit keys | Add GAMMA_API_KEY to .gitignore and .env | | Rotate regularly | Regenerate in Settings > API key tab | | Scope per environment | Separate keys for dev/staging/prod workspaces | | Audit usage | Monitor credit consumption at gamma.app/settings/billing |

Error Handling

| HTTP Status | Meaning | Fix | |-------------|---------|-----| | 401 Unauthorized | Invalid or missing API key | Verify X-API-KEY header value | | 403 Forbidden | Account not on Pro+ plan | Upgrade at gamma.app/pricing | | 429 Too Many Requests | Rate limit exceeded | Implement backoff; contact Gamma support for higher limits | | 5xx Server Error | Gamma service issue | Retry with exponential backoff |

Important Notes

  • No SDK: Gamma does not publish an npm/pip package. Use fetch/requests directly.
  • Header format: Use X-API-KEY, not Authorization: Bearer.
  • API v0.2 sunset: v0.2 was deprecated Jan 2026. Use v1.0 only.
  • Credit system: API calls consume credits based on image model tier (Standard 2-15, Advanced 20-33, Premium 34-75, Ultra 30-125 credits/image).

Resources

Next Steps

Proceed to gamma-hello-world for your first presentation generation.