Claude-skill-registry 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.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/api-credentials" ~/.claude/skills/majiayu000-claude-skill-registry-api-credentials && rm -rf "$T"
skills/data/api-credentials/SKILL.md- references API keys
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
(recommended)GITHUB_API_KEY.txt- Or
(combined file)API_CREDENTIALS.json
See updated skill documentation:
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)
- Copy the example config:
cp /home/user/claude-skills/api-credentials/assets/config.json.example \ /home/user/claude-skills/api-credentials/config.json
- Edit
and add your API keys:config.json
{ "anthropic_api_key": "sk-ant-api03-...", "google_api_key": "AIzaSy...", "github_api_key": "ghp_..." }
- Ensure the config file is in
(already configured).gitignore
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:
in the skill directory (highest priority)config.json- Environment variable (ANTHROPIC_API_KEY or GOOGLE_API_KEY)
- 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:
- Add field to
assets/config.json.example - Add getter function to
:scripts/credentials.pydef get_provider_api_key() -> str: # Follow existing pattern with config file + env var pass - Add to
mappingverify_credential() - 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.