kimi-effort is a Kimi Code CLI plugin designed to automatically detect the reasoning and thinking effort capabilities of third-party provider models (such as google/gemini-3.8-flash, openai/gpt-5.6-sol, openai/gpt-6-astra, cpa-claude/claude-opus-4-8, claude-opus-4-8) and provide seamless adjustment via the /effort command.
Rather than relying purely on hardcoded rules, kimi-effort combines active live API probing with intelligent heuristics to inspect provider models, write detected capabilities into your ~/.kimi-code/config.toml, and allow real-time tuning of thinking budgets and effort levels.
- Live Capability Probing:
- Probes OpenAI-compatible endpoints with
reasoning_effort(low,medium,high) or checks model metadata (e.g. verified onopenai/gpt-5.6-solandgoogle/gemini-3.8-flash). - Probes Anthropic endpoints with
thinkingparameters (budget_tokens), mapping to standard levels (low,medium,high,max) (e.g. verified oncpa-claude/claude-opus-4-8). - Probes Google GenAI endpoints with
thinkingConfig(thinking_budget), mapping to (low,high).
- Probes OpenAI-compatible endpoints with
- Intelligent Heuristics Sniffing:
- Automatically identifies model families (e.g.
gpt-5.6-sol,gpt-6-astra,claude-opus-4-8,gemini-3.8-flash,deepseek-r1) when network probing is unavailable or inconclusive. - Correctly marks non-reasoning models (e.g.
openrouter/minimax/minimax-m3:free) as non-thinking models.
- Automatically identifies model families (e.g.
- Seamless
/effortCommands & Skill:- Run
/effortto view current model (google/gemini-3.8-flash) thinking status and valid effort levels. - Run
/effort <level>to quickly switch betweenlow,medium,high,max. - Run
/effort detector/effort probeto run capability detection on your models. - Run
/effort listto inspect all configured models at a glance.
- Run
- Preserves Configuration:
- Intelligently updates
~/.kimi-code/config.tomlwhile preserving comments, indentation, structure, and existing settings.
- Intelligently updates
- SessionStart Lifecycle Hook:
- Automatically checks if your active model has reasoning effort configuration when a session starts, sniffing and setting capabilities in the background without blocking your workflow.
kimi-effort/
├── kimi.plugin.json # Plugin manifest (name, skills, commands, hooks)
├── README.md # Plugin documentation
├── commands/
│ └── effort.md # Slash command mapping /effort -> skill
├── hooks/
│ └── session-start.mjs # Fail-open SessionStart lifecycle hook
├── scripts/
│ ├── config-manager.mjs # Safe parser and editor for config.toml
│ ├── effort-detector.mjs # Live API prober and heuristic detector
│ └── effort-cli.mjs # CLI tool for status, detect, set, and list
└── skills/
└── effort/
└── SKILL.md # Kimi Code agent skill for /effort
Run the /plugins install command inside Kimi Code CLI:
/plugins install https://github.com/WENGENG-boop/kimi-effort-pluginRun /plugins install with your local directory path:
/plugins install C:/Users/weo/plugins/kimi-effortOr copy the directory to the managed plugins path:
mkdir -p ~/.kimi-code/plugins/managed/effort
cp -r C:/Users/weo/plugins/kimi-effort/* ~/.kimi-code/plugins/managed/effort/After installation, reload your session:
/reloadType /effort or /effort status:
/effortOutputs the active model, provider, thinking status, current effort level, and supported options. If the active model has not been inspected yet, detection is triggered automatically.
Example Output:
=== Kimi Code Reasoning Effort Status ===
Config File: C:\Users\weo\.kimi-code\config.toml
Model Alias: google/gemini-3.8-flash (default_model)
Actual Model: gemini-3.8-flash
Provider: google [openai]
Thinking State: Enabled (Capability: Supported)
Current Effort: medium (model default)
Supported Levels:[ low, medium, high ]
Pass the desired effort level directly to /effort:
# Adjust effort for active model (e.g. google/gemini-3.8-flash)
/effort high
/effort low
# Or explicitly target a configured model:
/effort high openai/gpt-5.6-sol
/effort low openai/gpt-6-astra
/effort max cpa-claude/claude-opus-4-8The plugin validates the requested level against the model's supported choices, updates config.toml, and reminds you if a /reload is recommended.
Force re-detection using live API probes and heuristics:
# Probe active model:
/effort detect
# Probe a specific model:
/effort detect openai/gpt-5.6-sol
# Probe all configured models at once:
/effort detect allReal Detection Results on Configured Models:
| Model Alias | Provider | Reasoning Model | Supported Efforts | Default Effort | Detection Method |
|---|---|---|---|---|---|
google/gemini-3.8-flash |
google |
Yes | [low, medium, high] |
medium |
Live API Probe |
openai/gpt-5.6-sol |
openai |
Yes | [low, medium, high] |
medium |
Live API Probe |
openai/gpt-6-astra |
openai |
Yes | [low, medium, high] |
medium |
Heuristics |
cpa-claude/claude-opus-4-8 |
cpa-claude |
Yes | [low, medium, high, max] |
high |
Live API Probe |
claude-opus-4-8 |
custom |
Yes | [low, medium, high] |
medium |
Live API Probe |
openrouter/minimax/minimax-m3:free |
openrouter |
No | [] |
(none) | Heuristics |
View all configured models and their reasoning capabilities:
/effort listYou can also execute the standalone CLI runner directly with Node.js:
# Check status of active or specific model
node scripts/effort-cli.mjs status
node scripts/effort-cli.mjs status openai/gpt-5.6-sol
# Probe all configured models and update config.toml
node scripts/effort-cli.mjs detect all
# Set thinking effort
node scripts/effort-cli.mjs set high
node scripts/effort-cli.mjs set max cpa-claude/claude-opus-4-8
# List all models
node scripts/effort-cli.mjs list| Model Family / Example | Detected Effort Options | Default Effort | Detection Method |
|---|---|---|---|
OpenAI GPT-5.6 Sol (gpt-5.6-sol) |
low, medium, high |
medium |
Live API Probe / Heuristic |
OpenAI GPT-6 Astra (gpt-6-astra) |
low, medium, high |
medium |
Heuristic / Live API Probe |
Anthropic Claude Opus 4.8 (claude-opus-4-8) |
low, medium, high, max |
high |
Live API Probe / Heuristic |
Google Gemini 3.8 Flash (gemini-3.8-flash) |
low, medium, high |
medium |
Live API Probe / Heuristic |
DeepSeek R1 (deepseek-r1) |
default, high |
high |
Heuristic / Metadata |
Non-Reasoning Models (minimax-m3:free) |
(none / unsupported) | (none) | Catalog / Heuristic |
Q: Why doesn't /effort in the TUI show the new model's effort levels (e.g. max) after switching models?
A: This is due to how Kimi Code CLI caches configuration in memory:
- When you launch Kimi Code, it reads
config.tomlinto memory (availableModels). - When you switch models (via
/model) or when the plugin detects/updatessupport_effortsinconfig.toml, the active TUI session retains the previously loaded in-memory model specifications until refreshed. - Solution: Simply type
/reloadin Kimi Code. This tells Kimi Code to re-readconfig.tomlfrom disk, instantly updating the in-memory/effortpicker with the newly active model's full set of effort options (such asmax). - Model Alias Verification: Also check if you have multiple aliases configured for the same model. For example, if you configured both
claude-opus-4-8under an OpenAI proxy (which only supports[low, medium, high]) andcpa-claude/claude-opus-4-8under native Anthropic (which supports[low, medium, high, max]), ensure you selected the Anthropic-backed alias (cpa-claude/claude-opus-4-8).
MIT