Oatda text completion
Skill devcsde/oatda-openclaw-skills/skills/oatda-text-completion
Generate text, code, or chat completions using OATDA's unified LLM API gateway — like calling ChatGPT, Claude, Gemini, GPT-5, Claude Sonnet 4.5, Grok 4, or Qwen from a single endpoint. Triggers when the user wants to generate, write, summarize, translate, or complete text via OpenAI, Anthropic, Google, Deepseek, Mistral, xAI, Alibaba/Qwen, MiniMax, ZAI/GLM, Moonshot/Kimi, or Bytedance. Also use when comparing outputs across models or using aliases like "gpt-4o", "gpt-5", "claude", "gemini", "deepseek", "grok", "qwen", "mistral", "kimi".From its SKILL.md
npx -y skills add devcsde/oatda-openclaw-skills --skill oatda-text-completionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.7 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
OATDA Text Completion
Generate text from 10+ LLM providers through OATDA's unified API.
API Key Resolution
All commands need the OATDA API key. Resolve it inline for each exec call:
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"
If the key is empty or null, tell the user to get one at https://oatda.com and configure it.
Security: Never print the full API key. Only verify existence or show first 8 chars.
Model Mapping
| User says | Provider | Model |
|---|---|---|
| gpt-4o | openai | gpt-4o |
| gpt-4o-mini | openai | gpt-4o-mini |
| gpt-5 | openai | gpt-5 |
| gpt-5-mini | openai | gpt-5-mini |
| o1 | openai | o1 |
| o3 | openai | o3 |
| claude, sonnet | anthropic | claude-sonnet-4-5-20250929 |
| haiku | anthropic | claude-haiku-4-5-20251001 |
| opus | anthropic | claude-opus-4-5-20251101 |
| gemini | gemini-3-pro-preview | |
| gemini-2.5 | gemini-2.5-pro | |
| deepseek | deepseek | deepseek-v4-pro |
| mistral | mistral | mistral-large-latest |
| grok | xai | grok-4-fast |
| grok-4 | xai | grok-4-1-fast-reasoning |
| qwen | alibaba | qwen3-max |
| kimi, moonshot | moonshot | kimi-k2.7-code |
| glm | zai | glm-5 |
Default: openai / gpt-4o if no model specified. If user provides provider/model format, split on /.
⚠️ Models update frequently. If a model ID fails, query
oatda-list-modelsfor the latest available models.
⚠️ Models update frequently. If a model ID fails, query
oatda-list-modelsfor the latest available models.
API Call
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-d '{
"provider": "<PROVIDER>",
"model": "<MODEL>",
"prompt": "<USER_PROMPT>",
"temperature": 0.7,
"maxTokens": 4096
}'
Optional Parameters
temperature: 0 (deterministic) to 2 (creative). Default: 0.7maxTokens: Max tokens to generate. Default: 4096 (max 128000 for some models)stream: Set totruefor streaming (not recommended via curl)
Response Format
{
"success": true,
"provider": "openai",
"model": "gpt-4o",
"response": "The generated text content...",
"tokenUsage": {
"prompt_tokens": 25,
"completion_tokens": 150,
"total_tokens": 175,
"cost": 0.001375
}
}
Present the response field to the user. Optionally mention token usage and cost.
Error Handling
| HTTP Status | Meaning | Action |
|---|---|---|
| 401 | Invalid API key | Tell user to check key at https://oatda.com/dashboard/api-keys |
| 402 | Insufficient credits | Tell user to check balance at https://oatda.com/dashboard/usage |
| 429 | Rate limited | Wait 5 seconds and retry once |
| 400 | Bad request / model not found | Check model format, suggest oatda-list-models |
Example
User: "Write a haiku about code using claude"
export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OATDA_API_KEY" \
-d '{
"provider": "anthropic",
"model": "claude-sonnet-4-5-20250929",
"prompt": "Write a haiku about code",
"temperature": 0.7,
"maxTokens": 256
}'
Notes
- The API expects
promptas a plain string, NOT amessagesarray - Split
provider/modelinto separate JSON fields - For long-form content, increase
maxTokens - Use
oatda-list-modelsto see all available models - Use
oatda-vision-analysisfor image analysis tasks
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.