tokenlab-model-picker
Pick TokenLab models for chat, coding, image, video, audio, embeddings, reranking, decisions, and translation by reading public model catalog signals before recommending concrete model IDs.
Files3
View on GitHubSKILL.mdskills/tokenlab-model-picker/SKILL.md
GitHubTokenLab Model Picker
Turn an outcome into a short list of live TokenLab model IDs. Work in three steps: outcome → operation → model. Read live catalog signals every time; never answer from memory.
What this skill delivers
- The operation the outcome needs, and the endpoint for it.
- A shortlist with exact public model IDs: a default, an alternative, and a fast or low-cost option.
- Why each model fits, from contract and catalog signals.
- One command the user can rerun to refresh the list.
- A caveat for anything volatile: price, supply, or a benchmark claim.
Inputs to collect
- The outcome in the user's words, and the inputs they already have (text, image, video, audio).
- Limits that matter: length, resolution, aspect ratio, voice, language, format.
- Priority: quality, speed, or cost, and any budget.
- For chat and coding: the client and the protocol it speaks.
Workflow
Step 1: outcome → operation
| Outcome | Operation | Outcome skill |
|---|---|---|
| New image from text | text-to-image |
tokenlab-photoreal-stills, tokenlab-product-photography, tokenlab-text-in-image, tokenlab-logos-and-vectors |
| Change an existing image | image-edit, image-to-image |
tokenlab-edit-image, tokenlab-restore-and-upscale, tokenlab-character-consistency |
| Video from text | text-to-video |
tokenlab-cinematic-video |
| Video from a still | image-to-video |
tokenlab-animate-image, tokenlab-product-ad-video, tokenlab-talking-avatar |
| Video from reference images | reference-to-video |
tokenlab-character-consistency, tokenlab-product-ad-video |
| Video between two frames | start-end-to-video |
tokenlab-keyframe-transition |
| Change or continue a video | video-to-video, video-extension |
tokenlab-edit-video, tokenlab-extend-video |
| Move a character like a reference clip | motion-control |
tokenlab-motion-control |
| Speech from text / text from speech | tts / stt |
tokenlab-voiceover, tokenlab-transcribe-and-subtitle |
| Song, instrumental, sound effect | music |
tokenlab-music |
| 3D asset / explorable world | text-to-3d, image-to-3d / world-generation |
tokenlab-image-to-3d-asset, tokenlab-world-generation |
| Typed yes/no, choice, or score | systemone |
tokenlab-decisions |
| Text translation | translation |
tokenlab-transcribe-and-subtitle |
| Chat, coding, agent loop | chat formats | tokenlab-api-integration, tokenlab-native-endpoints |
Step 2: operation → candidates
- Scene shortlist:
GET https://api.tokenlab.sh/v1/models?recommended_for=<scene>. Scenes:image,video,music,3d,tts,stt,embedding,rerank,translation,decision. If the API rejects a scene withinvalid_recommended_for, use the category filter instead. - Category filter:
GET /v1/models?category=<category>(for examplecategory=decision). - Keep only models whose
tokenlab.public_contract_summary.public_operations(orpublic_contract) includes the operation. - A scene ranks models by their measured success rate in the last 24 hours, not by output quality. Read
tokenlab.agent_preferences.<scene>:preferred_rank,success_rate_24h,sample_count_24h, andstatus.status: "insufficient_samples"means no ranking signal yet, not a bad model. - Check supply per operation:
tokenlab.deliveryAvailability.operations[<op>]shows whether Verified and Official supply exist.
Step 3: candidates → shortlist
- For each candidate, read
GET /v1/models/{model}and confirm:lifecycle.stageisactive;- the operation, its endpoint in
request_endpoint_by_operation, and the inputs the user has (image, video, audio, reference count); - the size, duration, and resolution limits the user needs, from
operation_constraints.
- Read
GET /v1/models/{model}/pricingand compare cost per output unit (image, second, character, token, or request). - Pick the default for fit and reliability, an alternative with a different strength (quality, speed, or input type), and a fast or low-cost option. Start from the outcome skill's generated Models list (refreshed daily from the live catalog), then confirm it live.
- Chat and coding: read
tokenlab.accepted_request_formatsto match the client's protocol (openai_chat_completions,openai_responses,anthropic_messages,gemini_generate_content). - Decisions: discover
category=decisionand confirm thesystemoneoperation. A decision model returns typed answers; never select it as a chat model.
MCP equivalents: list_models, get_model, get_model_pricing, compare_models (in every tool profile; the default profile is core).
Output format
- One sentence: the outcome, the operation, and your assumptions.
- A table:
Role(default / alternative / fast),Model ID,Why,Watch out. - One rerunnable command, for example
curl "https://api.tokenlab.sh/v1/models?recommended_for=video". - One line on what to confirm before a paid call (price, supply, limits).
Avoid
- Do not name a single universal best model, and do not hardcode one model as the only answer.
- Do not recommend a model that is absent from the live catalog or does not publish the operation.
- Do not infer an endpoint, field, or capability from a model name; read the contract.
- Do not invent prices, model counts, or benchmark results. A benchmark claim needs a cited source and date.
- Do not use physical route names or provider-prefixed names as model IDs.
Quality bar
- Every listed model is live, publishes the operation, and fits the user's inputs and limits.
- Each pick has a reason from catalog or contract data, not from the model name.
- The answer says when the list was checked and how to refresh it.
Edge cases
- The user asks for the cheapest: still state what the cheap model cannot do (inputs, length, resolution, audio).
- The catalog is unreachable: say so, and give the outcome skill's table as examples only, not as live truth.
- The user names a model: check that it publishes the operation; if not, say so and offer live alternatives.
Related skills
tokenlab-run: run the chosen model.tokenlab-prompting: prompt craft for the chosen family.tokenlab-cost-routing: fallback chains with live pricing.