Codumentor logo Codumentor

Model Profiles Plugin

The Model Profiles plugin lets authenticated users define their own named LLM profiles (model id, base URL, API key, thinking options) and assign them to specific agent roles — overriding which model each role uses for that user's turns. Deployers control whether users may bring their own API keys and which endpoints are allowed.

Using it

On the web

Open Settings → Models. Two of its three tabs are this plugin's:

Assignments made in the Custom role map are the same per-user assignments this
plugin has always stored — they are what the
Thinking Modes plugin surfaces as the implicit Custom
mode.

Roles you can assign: main_agent, a catch-all default, subagent,
agentic_developer, agentic_memory_store, context_summarization,
explore, goal, web_retrieve, web_search, auto_title, translation
and voice_mediator.

In the terminal UI

Settings → Model Profiles shows both halves in one pane: the role map
first, then the profile list with its Add / Edit / Test / Del buttons. The map
is the web's, drawn for a terminal — a Mode dropdown at the top chooses
which mode it describes, every role gets its name in words, one line saying
what it does and the resolved connection → model-id with the same badge, and
the rows turn into dropdowns on Custom. Without the
Thinking Modes plugin there is no mode dropdown and the
map lists your own assignments, unassigned roles reading not set.

Everywhere

Deployers can define read-only admin profiles in the main models.profiles
block. Users may adopt those by supplying their own key.

Overrides apply only to authenticated users, and only while their turn is running.

Configuration

plugins:
  - module: codumentor.plugins.model_profiles
    class: ModelProfilesPlugin
    priority: 5
    args:
      enabled: true
      allow_custom_api_keys: true
      max_profiles_per_user: 20
      # allowed_base_urls: ["https://openrouter.ai/api/v1"]

Not enabled in the default shipped config; uncomment or add the snippet above to turn it on. Managing profiles requires the model_profiles:manage permission (power_user and admin have it by default) — without it, Settings → Models still shows the role map, read-only.

ParameterTypeDefaultDescription
enabledbooltrueWhether the plugin is active.
allow_custom_api_keysbooltrueAllow users to store their own API keys in profiles. When false, users can only use deployer-defined profiles.
allowed_base_urlslistunsetAllow-list of permitted endpoint base URLs. Omit or leave empty to allow any.
max_profiles_per_userint20Maximum profiles per user.
data_dirstringagent storage dir, else ./dataWhere profile data is stored.
previous_jwt_secretslistunsetOlder JWT secrets, so profiles encrypted under a rotated key can still be decrypted.

Notes