jev-model-router
v0.4.2Picks the model and the reasoning effort for each task with TypeSafe's Jev, a System One decision model reached either through TypeSafe's own API or the Vercel AI Gateway. Routes subagent models at agent.spawn and the main loop's effort and model at turn.step, in both directions, falling back to the engine's built-in classifier when no key is set.
By claude-code-templatesLicense: MIT31.6k GitHub starsUpdated 2 hours ago
Directory evidence
- Runtimes
- Claude Code
- Parsed components
- 0 skill or MCP entries
- Source updated
- Sep 24, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install jev-model-router for Claude Code
claude plugin marketplace add IchenDEV/agent-plugin-mkt
claude plugin marketplace update agent-plugin-marketplace
claude plugin install jev-model-router@agent-plugin-marketplacePaste and run these commands in a terminal with Claude Code. They add and refresh the PluginsMP catalog, then install this plugin.
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/davila7/claude-code-templatesClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is cli-tool/components/mods/productivity/jev-model-router/.
Plugin files
└── .claude-plugin/plugin.json
Plugin manifests1
{
"name": "jev-model-router",
"version": "0.4.2",
"description": "Picks the model and the reasoning effort for each task with TypeSafe's Jev, a System One decision model reached either through TypeSafe's own API or the Vercel AI Gateway. Routes subagent models at agent.spawn and the main loop's effort and model at turn.step, in both directions, falling back to the engine's built-in classifier when no key is set.",
"author": {
"name": "claude-code-templates",
"url": "https://www.aitmpl.com"
},
"repository": "https://github.com/davila7/claude-code-templates",
"license": "MIT",
"keywords": [
"mod",
"function-hooks",
"productivity",
"routing"
],
"userConfig": {
"typesafeApiKey": {
"type": "string",
"title": "TypeSafe API key",
"description": "Key for TypeSafe's own API; preferred over the Gateway, since only it reports a calibrated confidence",
"default": "",
"sensitive": true
},
"gatewayApiKey": {
"type": "string",
"title": "Vercel AI Gateway API key",
"description": "Key for the AI Gateway; with none set the engine's built-in classifier is used instead",
"default": "",
"sensitive": true
},
"provider": {
"type": "string",
"title": "Backend",
"description": "Which backend to use; \"auto\" picks TypeSafe when its key is set, then the Gateway, then the built-in classifier",
"default": "auto",
"options": [
"auto",
"typesafe",
"gateway",
"builtin"
]
},
"typesafeBaseUrl": {
"type": "string",
"title": "TypeSafe base URL",
"description": "Base URL of TypeSafe's own API; empty uses https://api.typesafe.ai",
"default": ""
},
"typesafeModel": {
"type": "string",
"title": "TypeSafe model",
"description": "Decision model on TypeSafe's own API; empty uses jev-latest",
"default": ""
},
"gatewayBaseUrl": {
"type": "string",
"title": "AI Gateway base URL",
"description": "Base URL of the AI Gateway; empty uses https://ai-gateway.vercel.sh/v4/ai",
"default": ""
},
"gatewayModel": {
"type": "string",
"title": "AI Gateway model",
"description": "Decision model on the AI Gateway; empty uses typesafe-ai/jev",
"default": ""
},
"fastModel": {
"type": "string",
"title": "Fast tier",
"description": "Model alias or id for mechanical, local tasks",
"default": "haiku"
},
"balancedModel": {
"type": "string",
"title": "Balanced tier",
"description": "Model alias or id for ordinary engineering work",
"default": "sonnet"
},
"deepModel": {
"type": "string",
"title": "Deep tier",
"description": "Model alias or id for hard or high-stakes work",
"default": "opus"
},
"minUpgradeConfidence": {
"type": "number",
"title": "Confidence to spend more",
"description": "How sure the decision must be to raise the model or the effort; being wrong here costs money, so the bar is low",
"default": 0.3
},
"minDowngradeConfidence": {
"type": "number",
"title": "Confidence to spend less",
"description": "How sure it must be to lower the model or the effort; being wrong here means a task gets too little, so the bar is high",
"default": 0.6
},
"routeSubagentModel": {
"type": "boolean",
"title": "Route subagent models",
"description": "Pick the model of each subagent at agent.spawn (the Agent tool takes no effort)",
"default": true
},
"routeMainEffort": {
"type": "boolean",
"title": "Route the main loop's effort",
"description": "Raise or lower the reasoning effort of the main conversation",
"default": true
},
"routeMainModel": {
"type": "boolean",
"title": "Route the main loop's model",
"description": "Change the model of the main conversation; off by default because switching models mid-session invalidates the prompt cache",
"default": false
},
"timeoutMs": {
"type": "number",
"title": "Latency budget (ms)",
"description": "How long to wait for a decision before letting the request through unchanged",
"default": 800
},
"logDecisions": {
"type": "boolean",
"title": "Log decisions",
"description": "Write each routing decision to the session log",
"default": true
}
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[jev-model-router on Agent Plugins Marketplace](https://pluginsmp.com/plugins/jev-model-router)