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