-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Problem (one or two sentences)
Currently, RooCode allows selecting base models from OpenRouter, but it does not expose user-created presets configured in the OpenRouter dashboard.
OpenRouter presets allow users to define:
- Custom system prompts
- Temperature and sampling parameters
- Tool configuration
- Context length settings
- Model routing strategies
Without preset support, users must manually replicate these configurations inside RooCode, which:
- Breaks single source of truth
- Increases maintenance overhead
- Causes configuration drift
- Reduces flexibility for advanced workflows
Context (who is affected and when)
RooCode integrates with OpenRouter to allow users to select and use different foundation models.
On the OpenRouter side, users can define presets in their account. Presets encapsulate reusable configuration such as:
- System prompts
- Temperature and sampling parameters
- Tool usage configuration
- Context window settings
- Model routing strategies (including fallback chains or cost/latency optimization)
In many real-world workflows, especially for coding agents, users rely on presets as the canonical source of configuration. This allows them to:
- Maintain a single source of truth
- Adjust behavior centrally without modifying each client integration
- Reuse consistent configurations across tools
Currently, RooCode only exposes base models, which requires users to manually replicate preset behavior inside RooCode. This leads to configuration drift and reduces the value of OpenRouter’s preset abstraction.
Desired behavior (conceptual, not technical)
-
Preset Discovery
- When OpenRouter is configured, RooCode fetches available presets associated with the authenticated account.
- Presets are retrieved via the OpenRouter API.
- Retrieval failures should not block model usage.
-
Model Selection UI
- Presets appear in the model selector alongside base models.
- They are clearly distinguishable (e.g., labeled as
Preset: <name>). - If no presets exist, the UI behaves exactly as it does today.
-
Request Execution
- When a preset is selected, RooCode sends the request using the preset identifier.
- RooCode does not override preset-defined parameters unless explicitly configured by the user.
- Switching between base models and presets should be seamless.
-
Error Handling
- If a preset becomes invalid or deleted, RooCode displays a clear error and allows reselection.
- If preset fetching fails, RooCode gracefully falls back to standard model listing.
-
Backward Compatibility
- Existing configurations continue to work unchanged.
- Users who do not use presets experience no behavior changes.
Constraints / preferences (optional)
Example Use Cases
- Switching between workflow-specific presets (e.g., Architect mode, Reviewer mode, Refactor mode).
- Using routing presets optimized for cost or latency.
- Managing structured output configurations centrally.
- Sharing standardized presets across a team or organization.
Benefits
- Centralized configuration management
- Reduced duplication of model settings
- Better alignment with OpenRouter capabilities
- Improved workflow flexibility for advanced users
Request checklist
- I've searched existing Issues and Discussions for duplicates
- This describes a specific problem with clear context and impact
Roo Code Task Links (optional)
No response
Acceptance criteria (optional)
No response
Proposed approach (optional)
No response
Trade-offs / risks (optional)
No response