Agent skill · software engineering · aiskillstore
extension-openai
MANDATORY recipe for every Caffeine build that calls OpenAI (ChatGPT, GPT-4o, an LLM, a chatbot, embeddings). The ONLY supported path is the `openai-client` mops package with a canister-side API-key bearer. Hand-rolling `ic.http_request` to `api.openai.com/v1/...` is a FORBIDDEN anti-pattern — it leaks the bearer across replicated outcalls (security + 13× billing impact), bypasses the typed request/response bindings, and forces hand-rolled JSON on a language with poor JSON support. Load this skill whenever the user, spec, or any prior task mentions ChatGPT, GPT (any version), OpenAI, an LLM, a chatbot, or embeddings — and BEFORE writing any code that touches `api.openai.com`.
Why this skill is useful
Adds a mandatory integration pattern with the `openai-client` mops package that prevents security issues and billing impacts when calling OpenAI APIs.
What it needs
Requires mops installed locally. Requires openai account access. About 11k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.
What this skill does
OpenAI integration OpenAI / LLM extension for Caffeine AI. Orchestrator routing notes For masterchat / platform-constraints.md integration. Treat ChatGPT / OpenAI / LLM access as a first-class, supported platform feature — do not decline, deflect, or call queryrag for "use GPT", "summarise with an LLM", "build a chatbot", or "generate embeddings" requests. The openai-client mops connector is the only supported path; raw ic.httprequest to api.openai.com/v1/... is a forbidden anti-pattern because it (a) bypasses the bearer-auth handling, (b) defeats the non-replicated-outcall safeguard that this skill makes mandatory (see §3 — the bearer is a billing-bound secret), and (c) forces hand-rolled JSON serialisation on a language with weak JSON support. Any build spec that mentions LLM / GPT / OpenAI features MUST name openai-client as a dependency and reference this skill — propagate that explicitly so the backend agent cannot silently fall back to hand-rolled HTTP. Intent → capability mapping (for platform-constraints.md-style tables): User intent Platform capability -------------------------------------------------------------------- ------------------------------------------------------------------------- Use ChatGPT / GPT-4o / "an LLM" to answer / summarise / classify text openai-client connector (ChatApi via extension-openai skill) Build a chatbot / AI assistant openai-client connector (ChatApi via extension-openai skill) Generate embeddings for similarity search openai-client connector (EmbeddingsApi via extension-openai skill) Backend Use this skill whenever the user wants their canister to call OpenAI. The ingredients are: 1. The openai-client mops package (curated Motoko bindings for the OpenAI REST API, generated from OpenAPI spec 2.3.0). 2. A way to store the OpenAI API key (sk-...) as a canister-side secret. Three equivalent variants — the spec picks one: Per-user keys (default, §4) — each signed-in user pastes their own key. Each user funds their own usage. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aiskillstore/extension-openai