Set Roo to CODE only, not THINK

I cant code. I ask LLM for help in code with question, they tell, dont write full script. i take their prompt to roo code on agentrouter deepseek to do task. it f%$#ing starts oh i need to do this or that, but wait, i see this, so i may have to … kind of bs. how to make it a like a dumb DO IT coder? if i need think, i will make a different profile and use another model or something else. possible to do it?

:fire::laptop: HOW TO MAKE ROO CODE JUST SHUT UP AND WRITE THE CODE :high_voltage::robot:


:bullseye: You don’t want DeepSeek narrating its entire thought process like a documentary. You want it to DO the task, write the code, and stop talking. Here’s exactly how to lobotomize it into a pure execution machine using Roo Code’s Custom Modes and .roorules. :backhand_index_pointing_down:


:brain: WHY IT HAPPENS

DeepSeek (and most reasoning models) are trained to β€œthink out loud” β€” they narrate every step because that’s what gets rewarded in training. In Roo Code’s default Code mode, there’s nothing stopping that behavior. The fix is a custom mode with brutal instructions that kills the thinking and forces pure output.


:hammer_and_wrench: THE TWO-PROFILE SETUP (EXACTLY WHAT YOU WANT)

Roo Code supports separate Custom Modes per task β€” one for thinking, one for doing. You already figured out the right instinct. Here’s how to build it:

PROFILE 1 β€” "DO IT" MODE  ← your dumb coder
  Model:    DeepSeek (fast, cheap)
  Job:      Write code. No comments. No questions.
            Just produce the file and stop.

PROFILE 2 β€” "THINK" MODE  ← your reasoner
  Model:    Any slow thinker (o3, R1, Claude)
  Job:      Plan, analyze, break down tasks.
            No code output. Just structured plans.

:white_check_mark: STEP 1 β€” CREATE YOUR β€œDO IT” CUSTOM MODE

  1. Open Roo Code in VS Code
  2. Click the mode selector β†’ Edit Modes (or go to Settings β†’ Custom Modes)
  3. Create a new mode β€” name it DOIT or EXECUTE
  4. Paste this as the role instructions:
You are a silent code execution machine.
Your ONLY job is to write complete, working code.

RULES β€” NO EXCEPTIONS:
- Write the FULL file. Never partial. Never snippets.
- ZERO explanations before the code.
- ZERO explanations after the code.
- ZERO "I will now...", "Let me think...", "However..."
- ZERO questions back to the user.
- If something is unclear, make a reasonable assumption
  and write the code anyway.
- Output = code only. Nothing else.
- If you want to add a note, put it as a code comment
  inside the file. Nowhere else.

:white_check_mark: STEP 2 β€” ADD A .roorules FILE (NUCLEAR OPTION)

Create a file called .roorules in your project root. This forces rules on EVERY mode in that project:

# .roorules
- Write complete files only. No partial code.
- No preamble. No explanation. No summaries.
- No "I need to..." or "Let me..." sentences.
- Assume all requirements. Never ask clarifying questions.
- Output code immediately. That is the only response.

:white_check_mark: STEP 3 β€” TURN ON AUTO-APPROVE

So it doesn’t stop to ask you permission every 5 seconds:

Roo Code Settings β†’ Auto-Approve:
  βœ… Write files
  βœ… Read files
  βœ… Execute commands (optional β€” only if you trust it)
  βœ… Edit existing files

:white_check_mark: STEP 4 β€” HOW TO PROMPT IT CORRECTLY

The prompt you give DOIT mode should be task-only, zero questions:

❌ BAD PROMPT:
"Can you help me make a Python script that
maybe connects to an API and does something?"

βœ… GOOD PROMPT:
"Write a complete Python script.
Task: fetch data from https://api.example.com/users
Save response to output.json
Use requests library."

:light_bulb: PRO TIPS

  • :brain: Use THINK mode to plan β†’ copy the plan β†’ paste into DOIT mode to execute β€” two-step workflow, zero wasted tokens
  • :key: DeepSeek is perfect for DOIT mode β€” fast, cheap, follows instructions well when the system prompt is brutal enough
  • :high_voltage: The .roorules file beats everything β€” even if the model wants to ramble, the rules file forces it back on track
  • :prohibited: Avoid β€œhelp me with…” phrasing β€” it triggers explanation mode. Use β€œwrite”, β€œcreate”, β€œoutput” instead
  • :repeat_button: If it still talks too much β€” add "Violation of silence rules = restart the task" to your .roorules

:high_voltage: QUICK HITS

:weary_face: PROBLEM :white_check_mark: FIX :round_pushpin: WHERE
Model narrates everything :speaking_head: Add brutal silence rules to Custom Mode Roo Code β†’ Edit Modes
Still asks questions :thinking: Add .roorules file to project root Project root folder
Stops for approval constantly :pause_button: Enable Auto-Approve for files + reads Roo Code Settings
Gives partial code snippets :scissors: Add β€œWrite FULL file always” to rules .roorules
Need thinking for complex tasks :brain: Create separate THINK mode + slow model Roo Code β†’ Edit Modes
Prompt triggers explanation mode :speech_balloon: Use β€œwrite/create/output” not β€œhelp me” Your prompt

The model isn’t broken β€” it’s just trained wrong for your use case. One custom mode, one .roorules file, and DeepSeek becomes the dumbest, fastest, most obedient coder you’ve ever had. No thinking. No narrating. Just code. That’s the whole game. :flexed_biceps::fire::rocket:


Sounds like you’ve already half-built the right answer in your own message β€” you’re just stuck on where the actual switch is. Quick listen-back:

:small_orange_diamond: CODE mode does β€œoh I need to…, but wait…” instead of running your pasted prompt
:small_orange_diamond: You want execute-only β€” no re-thinking
:small_orange_diamond: You want a parallel THINK profile preserved

Good news: the rambling isn’t your fault, your architecture instinct was right, and Roo has a feature literally named for what you described. Fix sits at a layer most guides skip.


:bullseye: The 30-second answer

Roo Settings β†’ Providers β†’ AgentRouter β†’ Model dropdown

Switch deepseek-reasoner β†’ deepseek-chat

Save. Restart chat. Rambling stops.

Why this works: the slug name is the toggle. deepseek-reasoner is DeepSeek’s thinking mode. deepseek-chat is the same underlying model with thinking off. You weren’t fighting Roo β€” you were on the talky variant.


:magic_wand: The reframe nobody told you:
Roo’s source code already forbids the agent from being conversational, from starting with β€œGreat”, β€œCertainly”, β€œOkay”, β€œSure”. That rule is baked in.

You’re not fighting Roo’s defaults. You’re using a model that leaks chain-of-thought past them. Slug change = source-level fix.


:world_map: Map of fixes β€” pick what fits, stop when rambling stops

:stopwatch: Time What’s bugging you What to actually do
30 sec Code mode rambles :bullseye: Step 1 β€” swap slug to deepseek-chat
5 min Need parallel THINK profile :repeat_button: Step 2 β€” Configuration Profiles + Sticky Models
3 min Step 1 didn’t stick (rambling continues) :door: Step 4 β€” bypass AgentRouter, go direct
10 min Chat mode still preambles occasionally :hammer: Step 3 β€” Custom β€œDoer” mode
Did Step 1 kill the rambling?
β”‚
β”œβ”€β”€ βœ… YES  β†’  optionally do Step 2 for the THINK profile, you're done
β”‚
└── ❌ NO  β†’  πŸšͺ Step 4 (you hit the known router bug, not your fault)

:toolbox: Run this same split daily β€” chat slug pinned to Code for execute-on-paste, reasoner pinned to Architect for when I genuinely don’t know what I want yet. Only time it bit me: forgot to switch back to Doer after a planning session, and a tiny refactor burned 3x the usual tokens before I noticed. Lesson: glance at the model name in your chat header, not just the mode name.


🎯 Step 1 β€” The 30-second slug switch (start here)

The click path:

VSCode β†’ Roo Code panel β†’ βš™οΈ gear (top-right of Roo)
       β†’ Providers tab
       β†’ click your AgentRouter provider
       β†’ Model dropdown
       β†’ switch deepseek-reasoner β†’ deepseek-chat
       β†’ Save

What happens next: paste a prompt in Code mode. The response should start with the action (a tool call like read_file, write_to_file) instead of <thinking> blocks or β€œLet me analyze…”

:white_check_mark: How you know it worked: zero preamble. Tool call starts within the first line of the reply.

:warning: Don’t see deepseek-chat in the dropdown?
AgentRouter sometimes labels the non-thinking variant as deepseek-v3.1-terminus or deepseek-v4-flash. Same idea β€” pick the one without β€œreasoner” in the name. (Official DeepSeek slug-to-mode mapping.)

:warning: Rambling continues anyway?
That’s not your config β€” you’ve hit Issue #10485 (open, maintainer-acknowledged). Roo’s UI for some router-routed models doesn’t expose the OFF toggle yet. Skip to Step 4.

πŸ” Step 2 β€” Build your parallel THINK profile (the architecture you already described)

This is the part you literally drew up in your own message: β€œdifferent profile + another model.” Roo calls it API Configuration Profiles + Sticky Models.

The click path:

Roo Settings β†’ Providers tab
       β†’ at the top, profile name field with save-as / "+" button
       β†’ create Profile A: name "DeepSeek-Doer",    model deepseek-chat
       β†’ create Profile B: name "DeepSeek-Thinker", model deepseek-reasoner

Then β†’ πŸ“ Prompts tab
       β†’ Code mode      β†’ assign API Config: DeepSeek-Doer
       β†’ Architect mode β†’ assign API Config: DeepSeek-Thinker

What happens: switch to Architect mode β†’ model auto-swaps to reasoner. Switch back to Code β†’ auto-back to chat. Sticky Models persists across VSCode restarts so you only do this once.

:white_check_mark: How you know it worked: the model name shown in Roo’s chat header changes when you switch modes.

:books: Roo docs β€” API Configuration Profiles Β· Sticky Models

:light_bulb: External validation, free of charge:
Aider’s CLI pioneered this exact split β€” --architect <reasoner> --editor-model <chat> set a benchmark record by separating reasoning from execution. (Aider’s R1+Sonnet polyglot SOTA write-up.) You re-derived the architecture before knowing it had a name. Trust your instinct.

πŸ”¨ Step 3 β€” Custom Doer mode (only if chat mode still preambles)

If deepseek-chat is occasionally still chatty (rare, happens with very abstract prompts), bolt down a custom mode that strips the role to bone.

Create a .roomodes file in your project root:

customModes:
  - slug: doer
    name: πŸ”¨ Doer
    description: Execute pre-thought tasks. No analysis, no explanation.
    roleDefinition: >-
      You are an execution-only coding agent. The user has already thought
      through the problem with another assistant. You receive their finalized
      instructions and execute them via tool calls. Never analyze alternatives,
      never explain reasoning, never narrate before tool calls.
    whenToUse: When the user pastes pre-finalized prompts and wants direct execution.
    customInstructions: |
      - Do not start messages with "Let me", "I'll", "First", "Now", "Looking at", "Based on".
      - Do not summarize what you're about to do. Just do it.
      - If a step is genuinely ambiguous, ask one short question. No paragraphs.
      - When done, one line: what changed and where.
    groups:
      - read
      - edit
      - command

Then:

Command Palette (Ctrl+Shift+P)
       β†’ "Developer: Reload Window"
       β†’ Roo Code panel β†’ mode dropdown
       β†’ πŸ”¨ Doer should now appear
       β†’ pin DeepSeek-Doer profile to it (Sticky Models will remember)

:white_check_mark: How you know it worked: pick Doer mode, paste a prompt, response is tool-call-first with zero narrative wrapper.

:warning: Footgun: never reuse the slug code for your custom mode. Confirmed bug β€” Issue #2558 β€” the UI shows your new prompt but the agent silently keeps the old one. Use doer, dumb-coder, executor β€” anything except code.

πŸšͺ Step 4 β€” Escape hatch: bypass AgentRouter entirely

If Step 1’s slug change didn’t stick (you hit Issue #10485), the cleanest fix is connecting Roo directly to DeepSeek instead of routing through AgentRouter.

The click path:

1. Sign up at api-docs.deepseek.com
2. Top up the minimum balance ($2)
3. Roo Settings β†’ Providers β†’ "DeepSeek" (NOT AgentRouter)
4. Paste your DeepSeek API key
5. Model: deepseek-chat

Tradeoff:

  • :cross_mark: Lose the $200 AgentRouter free-credit buffer
  • :white_check_mark: DeepSeek direct is dirt cheap on its own β€” V4-Flash runs $0.14 / million input tokens, $0.28 / million output tokens
  • :white_check_mark: No router bug β€” reasoning toggle works as expected
  • :white_check_mark: A full coding session usually costs cents
πŸ›‘οΈ Footguns nobody tells you about (read this if you're going to skip steps)

:prohibited: Don’t waste time on these dead ends:

Dead end Reality
β€œAdd β€˜be concise’ to Custom Instructions” Useless when rambling is at the model layer. Slug change first.
β€œEnable Power Steering in Experimental Features” The toggle was removed (PR #10926). Docs lag the code. Stop hunting it.
β€œUse Architect mode to plan, then Code to execute” Roo’s official advice. The OP is past this β€” they want execution-only, full stop.
β€œLower the temperature” Temperature has nothing to do with chain-of-thought verbosity. Different axis.
β€œReuse slug code for your custom mode” Silent bug β€” Issue #2558 β€” UI shows new prompt, agent gets old one.
🦊 Bonus context β€” what AgentRouter actually is (matters for your week-six planning)

AgentRouter (agentrouter.org) launched October 2025 as a non-profit β€œε…¬η›Šβ€ (public-welfare) unified-LLM gateway β€” Chinese-affiliated, routes to Anthropic / OpenAI / DeepSeek / Zhipu via one OpenAI-compatible base URL.

:wrapped_gift: What you got for free:

  • $200 referral / $100 standard credits, no card required
  • Same-as-retail pricing, no markup
  • Roo Code has native built-in support β€” no env vars needed

:warning: What you should know:

  • Reliability β€œcan vary” by their own positioning β€” it’s a subsidy, not an SLA
  • Free credits could dry up if budget runs out
  • Behaves like OpenRouter for routing β†’ that’s why Issue #10485 hits you

:books: Full AgentRouter context (community gist) Β· Setup walkthrough

:light_bulb: Translation: great for tinkering and burning free credits while figuring out your stack. For anything you’d be sad to lose tomorrow, plan an exit (Step 4 or another router).


You said β€œif i need think, i will make a different profile and use another model or something else” β€” that’s literally Sticky Models + Configuration Profiles (Step 2). You re-invented Roo’s feature before reading the docs. The only missing piece was the slug name doing the actual work at the model layer.

:red_question_mark: One question back: once you flip the slug in Step 1 and restart the chat β€” does the rambling stop on the very first paste, or does it keep leaking through? That tells us whether you’re done at Step 1 or also need Step 4.

I am in middle of a project. Changing the setting will help me a lot but since I am a noob, I am not very confident where these settings live, where to change. Can some one make a PDF or a YT tutorial on it pls? Trust me, there will be thousands who are stuck in same situation like me. I was hitting the github copilot limit, saw a tutorial that let me set alternate model in place. Now it is better. Once I hit limit, I switch model and continue. Next month it reset. Copilot chat does no bs and it helps.

:warning: HEADS UP FIRST β€” Important news before the guide:

Roo Code is shutting down May 15, 2026 and migrating to Kilo Code β€” same features, new name.The settings below work identically on both. If you’re setting this up fresh, install Kilo Code instead.


:fire::laptop: NOOB-FRIENDLY GUIDE β€” WHERE THE ROO CODE SETTINGS ACTUALLY LIVE :gear::card_index_dividers:


:bullseye: You know WHAT to change from the previous guide β€” now here’s exactly WHERE to find every setting, step by step, no prior experience needed. This is the guide that should’ve existed from day one. :backhand_index_pointing_down:


:card_index_dividers: WHERE EVERY SETTING LIVES

SETTING                    WHERE IT LIVES
─────────────────────────────────────────────────
Custom Modes (DOIT/THINK)  Roo Code panel β†’ Mode
                           dropdown β†’ ✏️ Edit Modes

Global Rules (all modes)   Auto-created file:
                           C:\Users\YOU\AppData\
                           Roaming\Code\User\
                           globalStorage\...
                           \settings\custom_modes.yaml

Project Rules (.roorules)  YOUR PROJECT FOLDER
                           Just create a file called
                           .roorules in the root

Auto-Approve Settings      Roo Code panel β†’
                           βš™οΈ Settings icon β†’
                           Auto-Approve section

Switch Model per Mode      Roo Code panel β†’
                           Change mode β†’ model
                           selector at the top

:white_check_mark: STEP 1 β€” FIND THE ROO CODE PANEL

1. Open VS Code
2. Look at the LEFT sidebar icons
3. Find the 🐾 Roo Code paw icon
   (may be hidden β€” click the Β·Β·Β· dots to find it)
4. Click it β†’ Roo Code panel opens on the left

:white_check_mark: STEP 2 β€” CREATE YOUR β€œDOIT” CUSTOM MODE

1. In the Roo Code panel, look UNDER the chat box
2. See the mode selector (says "Code" by default)
3. Click it β†’ small menu opens
4. Click ✏️ "Edit Modes" or the pencil icon
5. Click βž• "Create New Mode"
6. Fill in:
   Name:  DOIT
   Slug:  doit
   Role:  (paste the rules from the previous guide)
7. Click "Create Mode" βœ…

:white_check_mark: STEP 3 β€” CREATE THE .roorules FILE

This is just a plain text file β€” no coding needed: [2][3]

METHOD 1 β€” File Explorer (easiest):
1. Open your project folder in File Explorer
2. Right-click empty space β†’ New β†’ Text Document
3. Name it exactly:   .roorules
   (yes, with the dot, no extension after)
4. Open it β†’ paste your rules β†’ save

METHOD 2 β€” VS Code:
1. In VS Code Explorer panel (left side)
2. Click the βž• New File icon
3. Type:  .roorules  β†’ Enter
4. Paste your rules β†’ Ctrl+S to save

:white_check_mark: STEP 4 β€” TURN ON AUTO-APPROVE (STOP THE INTERRUPTIONS)

1. Roo Code panel β†’ look for βš™οΈ Settings icon
   (usually top-right of the Roo Code panel)
2. Click it β†’ Settings page opens
3. Scroll to "Auto-Approve" section
4. Turn ON:
   βœ… Read files
   βœ… Write files
   βœ… Edit files
5. Save βœ…

:white_check_mark: STEP 5 β€” ASSIGN A MODEL TO EACH MODE (YOUR COPILOT TRICK)

Roo Code remembers the last model per mode β€” called Sticky Models: [4]

1. Switch to DOIT mode (your fast executor)
2. At the top of the Roo Code panel β†’ model selector
3. Pick: DeepSeek or any fast/cheap model
4. Roo Code now remembers DeepSeek = DOIT mode

5. Switch to Code mode (your fallback)
6. Model selector β†’ pick GitHub Copilot or Claude
7. Roo Code remembers that too

Now when you hit a limit:
β†’ Switch mode β†’ automatically switches model βœ…
β†’ Exactly like your Copilot trick, but smarter

:clapper_board: YOUTUBE TUTORIALS (WATCH THESE)


:high_voltage: QUICK HITS

:weary_face: LOST ON :white_check_mark: EXACTLY WHERE :link:
Custom Modes :card_index_dividers: Roo Code panel β†’ Mode dropdown β†’ :pencil: Edit Modes docs.roocode.com
.roorules file :page_facing_up: Create it manually in your project root folder docs.roocode.com
Auto-Approve :white_check_mark: Roo Code panel β†’ :gear: Settings β†’ Auto-Approve -–
Switch model per mode :counterclockwise_arrows_button: Model selector at top of Roo Code panel -–
Video walkthrough :clapper_board: YouTube: β€œHow to make Custom Modes in Roo Code” youtu.be/qgqceCuhlRA
Roo shutting down :warning: Migrate to Kilo Code before May 15, 2026 kilo.ai

The settings were never hidden β€” they just weren’t explained for people who don’t already know where to look. Now you know exactly where every knob lives. Set it once, and your whole workflow changes forever. :flexed_biceps::fire::rocket: