Awesome-omni-skill add-model
Add a new AI model to a provider (anthropic, openai, groq, cerebras). Use when a new model is announced and needs to be supported in aico.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ai-agents/add-model" ~/.claude/skills/diegosouzapw-awesome-omni-skill-add-model && rm -rf "$T"
skills/ai-agents/add-model/SKILL.md- references API keys
Add Model Skill
Add a new AI model to the aico codebase.
Arguments
$ARGUMENTS should be in the format provider:model-id (e.g. anthropic:claude-opus-4-6).
If only a model ID is given, infer the provider from the model name prefix:
→claude-*anthropic
,gpt-*
,o1*
→o3*openai
,llama*
→mixtral*groq- Other → ask the user
Prerequisite: Gather Model Information
Before writing any code, gather the following from the user or from provided reference URLs:
- Model ID (e.g.
)claude-opus-4-6 - Description - what the model is best at
- Pricing - input/output per MTok
- Context window and max output tokens
- Notable capabilities (e.g. extended thinking, vision, tool calling)
- Predecessor model to deprecate (optional)
If the user provides a reference URL, fetch it to extract this information.
Provider Reference URLs
When the user does not provide a reference URL, consult the official documentation for the relevant provider:
Fetch the relevant page(s) to extract:
- The exact model ID string used in API calls
- Context window size and max output tokens
- Input/output pricing per million tokens
- Release date and predecessor model (if applicable)
- Special capabilities or limitations
Step-by-step Procedure
1. Create the model Go file
Create a new file at
internal/providers/<provider>/<model_file_name>.go.
The file name convention uses underscores for separators:
→claude-opus-4-6claude_opus_4_6.go
→gpt-4ogpt4o.go
→llama-3.3-70b-versatilellama3_3_70b.go
Use the existing model files in the same provider as a template. Each provider has a different pattern:
Anthropic models (internal/providers/anthropic/
)
internal/providers/anthropic/- Uses
SDKgithub.com/anthropics/anthropic-sdk-go - Struct has
andclient *anthropic.Clientopts []anthropicopt.RequestOption - Constructor takes
*anthropic.Client - Uses
helper andbuildRequestBody()
/m.client.Messages.New()m.client.Messages.NewStreaming() - Must define a
constant:ModelNameconst ModelNameXxx = "model-id"
Template reference: any existing
claude_*.go file in the same directory.
OpenAI models (internal/providers/openai/
)
internal/providers/openai/- Uses the in-house
openai.APIClient - Constructor takes
apiKey string - Uses
andBuildChatRequest()
/m.client.DoPost()m.client.DoStream()
Template reference:
gpt4o.go
Groq / Cerebras models (OpenAI-compatible)
- Uses
from the openai packageopenai.APIClient - Constructor takes
apiKey string - Delegates to
/openai.GenerateContent()
with the provider'sopenai.GenerateContentStream()Endpoint
Template reference: any model file in
internal/providers/groq/ or internal/providers/cerebras/
2. Register the model in the provider file
Edit the provider's main file (
internal/providers/<provider>/<provider>.go or anthropic.go):
- Add the new model struct to the returned sliceAvailableModels()
- Add aselectModel()
for the model IDcase
- Add aNewGenerativeModel()
for the model ID with the constructorcase
Place the new model at an appropriate position (typically at the top for the latest/best model).
3. Update the doc comment
Update the documentation comment block at the top of the provider file to include the new model's description and pricing.
4. Deprecate predecessor (if requested)
If the user requests deprecating an older model:
- Prefix its
return withDescription()[Deprecated] <Model Name> - superseded by <New Model>. - Move its entry in the doc comment to the bottom with
suffix(Deprecated) - Keep all code functional — do NOT remove the model
5. Build and test
Run:
go build ./... go test ./...
6. Verify with CLI
Run and show the user the output of:
go run ./cmd/aico models go run ./cmd/aico models describe <new-model-id>
If a predecessor was deprecated, also show:
go run ./cmd/aico models describe <deprecated-model-id>
7. Commit
Follow the Conventional Commits format defined in CLAUDE.md:
feat(api): add <Model Name> support
If a predecessor was deprecated, mention it:
feat(api): add <Model Name> support and deprecate <Old Model>