Compile-time checked OpenRouter model ids.
model_supports!
validates a model id and its required capabilities against a vendored OpenRouter index, then expands to the model id string.
use openrouter_toolkit::model_supports;
const MODEL: &str = model_supports!(
"openai/gpt-5.4",
param::tools,
input::image,
output::text,
);
Dynamic variants work too:
const MODEL: &str = model_supports!("moonshotai/kimi-k2-0905:exacto", param::tools);
param::*
— request parameters (e.g.param::tools
)input::*
— input modalities (e.g.input::image
)output::*
— output modalities (e.g.output::text
)
Unknown capability:
const MODEL: &str = model_supports!("qwen/qwen3.7-max", param::toolz);
error: unknown OpenRouter capability `param::toolz`; did you mean `param::tools`?
Capability not supported by the model:
const MODEL: &str = model_supports!("qwen/qwen3.7-max", input::image);
error: OpenRouter model `qwen/qwen3.7-max` does not support required capability(s): input::image