一键导入
Integrate a new external API provider (research, wrapper, test script, docs)
npx skills add https://github.com/glowingkitty/OpenMates --skill add-api复制此命令并粘贴到 Claude Code 中以安装该技能
Integrate a new external API provider (research, wrapper, test script, docs)
npx skills add https://github.com/glowingkitty/OpenMates --skill add-api复制此命令并粘贴到 Claude Code 中以安装该技能
Create OpenMates marketing videos from script notes using the external Remotion workspace, product-accurate UI rebuilds, optional Playwright recordings, renders, and review uploads.
Scaffold a new skill in an existing app (BaseSkill, schemas, app.yml, i18n)
Scaffold and register a new embed type (components, theme, icons, i18n, renderer)
Create a new hardcoded example chat from a shared chat URL with encryption key
Run a structured 5-round Q&A to fully understand a bug or feature request before writing any code. Outputs a Task Brief with user flow, acceptance criteria, scope, edge cases, affected areas, and open questions. Use at the start of any non-trivial session.
Create a pull request from dev to main with proper formatting and draft release
| name | add-api |
| description | Integrate a new external API provider (research, wrapper, test script, docs) |
| user-invocable | true |
| argument-hint | <provider-name> |
Parse $ARGUMENTS as the provider name (e.g., openweathermap, spotify, yelp).
If missing, ask the user what API they want to integrate.
You are integrating a new external API provider. This is a research-first workflow — never rely on training data for API details.
python3 scripts/sessions.py context --doc api
Read the guide output carefully — it contains the test script template, documentation template, and reverse-engineering workflow.
Before writing any code:
Search for official API docs — use web search, never assume from training data
Check existing work — look in docs/architecture/, docs/apis/, and backend/shared/providers/
Identify key details:
Present findings to the user and wait for confirmation before proceeding to code.
Read an existing provider as template:
backend/shared/providers/brave/brave_search.py
Key patterns to follow:
async/await with httpxCreate backend/shared/providers/{provider_name}/:
| File | Purpose |
|---|---|
__init__.py | Export main functions/classes |
client.py | Pure API wrapper — NO skill-specific logic |
models.py | Pydantic request/response schemas |
client.py must include:
SECRET__{PROVIDER}__{KEY_NAME})logger = logging.getLogger(__name__)Create scripts/api_tests/test_{provider_name}_api.py:
Required features:
--api-key flag for manual key override--test <name> to run a specific test--list to list available tests{"status": "pass"|"fail", "duration": float, "error": str}Use the template from the guide (loaded in Step 0).
Create docs/apis/{provider_name}.md with:
Read .claude/rules/privacy.md and check if updates are needed:
shared/docs/privacy_policy.ymli18n/sources/legal/privacy.ymllegal/buildLegalContent.tsconfig/links.tslastUpdated in privacy-policy.tsAsk the user if privacy policy updates are needed for this provider.
If using web scraping instead of an official API:
firecrawl_map + firecrawl_scrape)robots.txt and ToS — implement rate limiting, cache aggressivelybackend/shared/providers/ — no imports from backend/apps/httpx (async), never requests<PLACEHOLDER> values