Skip to content
Skill Authoring
Skill

/api-credentials

Securely manages API credentials for multiple providers (Anthropic Claude, Google Gemini, GitHub). Use when skills need to access stored API keys for external service invocations.

BOOST
From plugin
claude-skills
15498 skills1 agent
Install
$ npx -y skills add oaustegard/claude-skills --skill api-credentials --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/api-credentials

Context preview

The summary Claude sees to decide when to auto-load this skill.

Securely manages API credentials for multiple providers (Anthropic Claude, Google Gemini, GitHub). Use when skills need to access stored API keys for external service invocations.

SKILL.md

api-credentials.SKILL.md
name: api-credentials
description: Securely manages API credentials for multiple providers (Anthropic Claude, Google Gemini, GitHub). Use when skills need to access stored API keys for external service invocations.
metadata:
  version: 0.0.4

API Credentials Management

**🚨 DEPRECATED: This skill is no longer needed for hosted skills environments.**

**New approach:** Skills now read credentials directly from project knowledge files:

  • `ANTHROPIC_API_KEY.txt`, `GOOGLE_API_KEY.txt`, `GITHUB_API_KEY.txt` (recommended)
  • Or `API_CREDENTIALS.json` (combined file)

See updated skill documentation:

  • [orchestrating-chat-agents](../orchestrating-chat-agents/SKILL.md#setup)
  • [invoking-gemini](../invoking-gemini/SKILL.md#setup)
  • [invoking-github](../invoking-github/SKILL.md#quick-start)

**Legacy use only:** This skill may still be useful for local development environments or backward compatibility.

---

**⚠️ WARNING: This is a PERSONAL skill - DO NOT share or commit with actual credentials!**

This skill provides secure storage and retrieval of API credentials for multiple providers. It serves as a dependency for other skills that need to invoke external APIs programmatically.

Supported Providers

  • **Anthropic** (Claude API)
  • **Google** (Gemini API, Vertex AI, etc.)
  • **GitHub** (GitHub API, Personal Access Tokens)
  • Extensible for additional providers

Purpose

  • Centralized credential storage for multiple API providers
  • Secure retrieval methods for dependent skills
  • Clear error messages when credentials are missing
  • Support for multiple credential sources (config file, environment variables)

Usage by Other Skills

Skills that need to invoke APIs should reference this skill:

Anthropic Claude API

import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_anthropic_api_key

try:
    api_key = get_anthropic_api_key()
    # Use api_key for Claude API calls
except ValueError as e:
    print(f"Error: {e}")

Google Gemini API

import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_google_api_key

try:
    api_key = get_google_api_key()
    # Use api_key for Gemini API calls
except ValueError as e:
    print(f"Error: {e}")

GitHub API

import sys
sys.path.append('/home/user/claude-skills/api-credentials/scripts')
from credentials import get_github_api_key

try:
    api_key = get_github_api_key()
    # Use api_key for GitHub API calls
except ValueError as e:
    print(f"Error: {e}")

Setup Instructions

Option 1: Configuration File (Recommended)

1. Copy the example config:

cp /home/user/claude-skills/api-credentials/assets/config.json.example \
   /home/user/claude-skills/api-credentials/config.json

2. Edit `config.json` and add your API keys:

{
  "anthropic_api_key": "sk-ant-api03-...",
  "google_api_key": "AIzaSy...",
  "github_api_key": "ghp_..."
}

3. Ensure the config file is in `.gitignore` (already configured)

Option 2: Environment Variables

Set environment variables for the providers you need:

# Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-api03-..."

# Google Gemini
export GOOGLE_API_KEY="AIzaSy..."

# GitHub
export GITHUB_TOKEN="ghp_..."
# or
export GITHUB_API_KEY="ghp_..."

Add to your shell profile (~/.bashrc, ~/.zshrc) to persist.

Priority

Credential retrieval follows this priority for each provider: 1. `config.json` in the skill directory (highest priority) 2. Environment variable (ANTHROPIC_API_KEY or GOOGLE_API_KEY) 3. ValueError raised if neither is available

Security Notes

  • **Never commit config.json with real credentials**
  • The config.json file should be in .gitignore
  • Only config.json.example should be version controlled
  • Consider using environment variables in shared/production environments
  • Rotate API keys regularly
  • Skills should never log or display full API keys

File Structure

api-credentials/
├── SKILL.md              # This file
├── config.json           # YOUR credentials (gitignored)
├── scripts/
│   └── credentials.py    # Credential retrieval module
└── assets/
    └── config.json.example  # Template for users

Error Handling

When credentials are not found, the module raises `ValueError` with clear guidance:

  • Where to place config.json
  • How to set environment variables
  • Links to provider consoles for key generation

Skills should catch `ValueError` exceptions and handle appropriately.

Available Functions

**get_anthropic_api_key()** → str

  • Returns Anthropic API key
  • Raises ValueError if not configured

**get_google_api_key()** → str

  • Returns Google API key
  • Raises ValueError if not configured

**get_github_api_key()** → str

  • Returns GitHub API token (Personal Access Token)
  • Raises ValueError if not configured

**get_api_key_masked(api_key)** → str

  • Returns masked version for safe logging
  • Example: "sk-ant-...xyz"

**verify_credential(provider)** → bool

  • Checks if provider is configured
  • Returns True/False without raising exceptions
  • Providers: 'anthropic', 'google', 'github'

Adding New Providers

To support additional providers:

1. Add field to `assets/config.json.example` 2. Add getter function to `scripts/credentials.py`:

   def get_provider_api_key() -> str:
       # Follow existing pattern with config file + env var
       pass

3. Add to `verify_credential()` mapping 4. Update this documentation

Token Efficiency

This skill uses ~300 tokens when loaded but saves repeated credential management code across multiple skills that invoke external APIs. It provides a single, consistent pattern for all credential handling.

Read more
Ships withclaude-skills

A collection of Claude skills distributed as a Claude Code plugin marketplace. Skills are primarily designed for the Claude.ai PaaS skill compute environment; mileage will vary if used as Claude Code Agent Skills.

Get the whole plugin

Other skills on claude-skills.