Atlas / Skills / jeremylongshore / Gamma Install Auth

Gamma Install AuthSAFE

skills/jeremylongshore/gamma-install-auth

Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
1.13.0
Hosts
1 documented
License
MIT
Stars
2,823
01

Overview

Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.

Read from source at commit 4f83675ca38aOBSERVED · 2026-10-08
02

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
03

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: gamma-install-auth
description: 'Set up Gamma API v1.0 authentication and first request.

  Use when configuring API keys, setting up X-API-KEY header,

  or initializing Gamma REST API access in a project.

  Trigger: "install gamma", "setup gamma API", "gamma auth",

  "gamma API key", "configure gamma".

  '
allowed-tools: Read, Write, Edit, Bash(curl:*), Bash(npm:*), Bash(pip:*)
version: 1.13.0
license: MIT
author: Jeremy Longshore <[email protected]>
tags:
- saas
- gamma
- api
- authentication
compatibility: Designed for Claude Code
---
# Gamma Install & Auth

## Output

Record the authentication method, minimum scope, secret-manager reference, validation time, owner, and rotation/revocation procedure—never a token, presentation, or viewer record.

## Examples

Use a scoped staging credential for a read-only fictional workspace check, record the redacted result, and verify the credential is denied after revocation.

## 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](https://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

```bash
# 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

```bash
# 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)

```typescript
// 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)

```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

- [Gamma Developer Docs](https://developers.gamma.app/)
- [Getting Started Guide](https://developers.gamma.app/docs/getting-started)
- [Access and Pricing](https://developers.gamma.app/docs/get-access)
- [API Key Management](https://gamma.app/settings)

## Next Steps

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

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 4f83675ca38afull audit observations/trust-audit/skill/jeremylongshore__gamma-install-auth.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-084f83675ca38aSAFEB89first audit
06

Questions

What does the Gamma Install Auth skill do?

Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.

Is Gamma Install Auth safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can Gamma Install Auth access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

Which assistants does Gamma Install Auth work with?

Its documentation mentions claude-code. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (4f83675ca38a), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement