Skills follow the open Agent Skills standard, so the same library works across every agent that implements it. For agents with a plugin system, install through the plugin so skills auto-update.
Quick start
- Claude Code
- GitHub CLI
- Cursor
- OpenCode
/plugin list.What’s in the library
Six skills, each scoped to one area of the platform and grounded in the pages linked below.What the skills prevent
Each skill carries explicit boundaries, so the agent avoids the mistakes that are easy to make against a multi-provider gateway.- Wrong tool schema. Responses function tools use top-level
nameandparameters. The nested Chat Completionsfunctionshape is rejected with a 400, and the skill keeps the agent on the correct one. - Doubled base paths. Anthropic-native clients append
/v1themselves, so they takehttps://api.concentrate.ai. Passing the/v1URL produces/v1/v1/...and 404s. - Stale model lists. The catalog changes. Skills query it live instead of recalling a model table from training data.
- Capability assumptions. Image, PDF, tool, structured-output, and ZDR support are properties of a model and provider pair, never inferable from a model family name.
- Invented endpoints. Agents are told to use only documented surfaces rather than inventing embeddings, batch, or fine-tuning routes.
Live model queries
concentrate-models ships a dependency-free Python script that reads the public catalog endpoints. It needs no API key, so an agent can explore models before you’ve configured anything.
--json when the output feeds another program.
Example usage
Ask in plain language. The agent loads the matching skill and applies it. “Set up a Concentrate call with a weather tool.”concentrate-responses loads, and the agent produces the correct Responses tool shape:
concentrate-models loads, and the agent queries the live catalog rather than answering from memory:
concentrate-data-controls loads, and the agent inspects the specific model and provider pair, accepting only providers whose zdr field is an object.
Reading the output
Responses can contain reasoning and tool-call items alongside text, so extract by itemtype rather than by array position:
model, usage, and cost. Log those when routing or spend matters; the resolved model tells you which provider actually served the request.

