Find a file
Hannes Rudolph d748de6fae
feat(condense v2.1): add smart code folding (#10942)
* feat(condense): add smart code folding with tree-sitter signatures

At context condensation time, use tree-sitter to generate folded code
signatures (function definitions, class declarations) for files read
during the conversation. Each file is included as its own <system-reminder>
block in the condensed summary, preserving structural awareness without
consuming excessive tokens.

- Add getFilesReadByRoo() method to FileContextTracker
- Create generateFoldedFileContext() using tree-sitter parsing
- Update summarizeConversation() to accept array of file sections
- Each file gets its own content block in the summary message
- Add comprehensive test coverage (12 tests)

* fix: skip tree-sitter error strings in folded file context

- Add isTreeSitterErrorString helper to detect error messages
- Skip files that return error strings instead of embedding them
- Add test for error string handling

* refactor: move generateFoldedFileContext() inside summarizeConversation()

- Update summarizeConversation() to accept filesReadByRoo, cwd, rooIgnoreController instead of pre-generated sections
- Move folded file context generation inside summarizeConversation() (lines 319-339)
- Update ContextManagementOptions type and manageContext() to pass new parameters
- Remove generateFoldedFileContext from Task.ts imports - folding now handled internally
- Update all tests to use new parameter signature
- Reduces Task.ts complexity by moving folding logic to summarization module

* fix: prioritize most recently read files in folded context

Files are now sorted by roo_read_date descending before folded context
generation, so if the character budget runs out, the most relevant
(recently read) files are included and older files are skipped.

* refactor: improve code quality in condense module

- Convert summarizeConversation to use options object instead of 11 positional params
- Extract duplicated getFilesReadByRoo error handling into helper method
- Remove unnecessary re-export of generateFoldedFileContext
- Update all test files to use new options object pattern

* fix: address roomote feedback - batch error logging and early budget exit

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-27 18:47:24 -05:00
.changeset Changeset version bump (#11027) 2026-01-27 15:52:37 -05:00
.github Add quality checks to marketing site deployment workflows (#10959) 2026-01-27 00:56:30 -08:00
.husky fix: prevent shell injection in pre-push hook environment loading (#9059) 2025-11-06 16:40:03 -05:00
.roo Use a redirect instead of a fetch for cli auth (#10799) 2026-01-16 23:26:04 -08:00
.vscode Rate limit when starting a subtask (#4453) 2025-06-18 12:45:36 -04:00
apps feat: remove MCP SERVERS section from system prompt (#10895) 2026-01-24 01:16:26 -05:00
locales Update and improve zh-TW Traditional Chinese locale and docs (#10953) 2026-01-25 07:07:23 -05:00
packages Add temperature=0.9 and top_p=0.95 to zai-glm-4.7 model (#10945) 2026-01-27 09:57:21 -05:00
releases chore: add changeset for v3.44.0 (#10987) 2026-01-26 23:19:13 -05:00
scripts feat: add pnpm install:vsix:nightly command (#10912) 2026-01-23 10:35:32 -07:00
src feat(condense v2.1): add smart code folding (#10942) 2026-01-27 18:47:24 -05:00
webview-ui Fix local model validation error for Ollama models (#10893) 2026-01-27 16:50:05 +00:00
.dockerignore Add an option to use our cli for evals (#10456) 2026-01-05 11:33:19 -08:00
.env.sample Expose thinking tokens for roo/sonic (#7212) 2025-08-19 07:01:01 -07:00
.git-blame-ignore-revs Moved repo to new org (#3756) 2025-05-20 16:42:18 -04:00
.gitattributes feat: mark non-English package.nls.*.json files as linguist-generated (#7271) 2025-08-21 02:56:55 -07:00
.gitconfig Set up ignoring revisions for git blame 2025-01-17 11:21:25 -08:00
.gitignore Allow the cli release script to install locally for testing (#10597) 2026-01-09 20:40:46 -08:00
.nvmrc Upgrade Node.js to v20.19.2 for security enhancements (#4212) 2025-06-01 17:02:44 -04:00
.prettierrc.json Fix Posthog by correctly copying .env in the build process (#4049) 2025-05-27 11:19:21 -07:00
.rooignore Add telemetry and privacy policy 2025-03-07 03:03:44 -05:00
.roomodes Normalize docs-extractor audience tags; remove admin/stakeholder; strip tool invocations (#8717) 2025-10-17 19:17:38 -04:00
.tool-versions chore(deps): update node.js to v20.19.2 (#4159) 2025-05-30 22:48:46 -04:00
AGENTS.md fix: resolve race condition in context condensing prompt input (#10876) 2026-01-21 15:11:39 -07:00
CHANGELOG.md Changeset version bump (#11027) 2026-01-27 15:52:37 -05:00
CODE_OF_CONDUCT.md Fix inconsistencies in markdown file i18n (#4681) 2025-06-13 23:05:25 -04:00
CONTRIBUTING.md CONTRIBUTING.md tweaks and issue template rewrite (#8014) 2025-09-16 00:29:45 -04:00
ellipsis.yaml Revert "Turn off ellipsis quiet mode" 2025-03-07 02:26:25 -05:00
knip.json Browser Use 2.0 (#8941) 2025-11-21 17:26:15 -05:00
LICENSE Update LICENSE (#2275) 2025-04-03 23:54:26 -04:00
package.json feat: add pnpm install:vsix:nightly command (#10912) 2026-01-23 10:35:32 -07:00
pnpm-lock.yaml fix: use json-stream-stringify for pretty-printing MCP config files (#9864) 2026-01-23 19:19:35 -08:00
pnpm-workspace.yaml Remove the "test" custom tools (#10255) 2025-12-21 14:19:25 -08:00
PRIVACY.md Make Posthog telemetry the default (#7909) 2025-09-11 15:50:40 -04:00
README.md docs: Replace Todo Lists video with Context Management video (#10375) 2025-12-29 20:34:06 -08:00
renovate.json Ignore @vscode/vsce in renovate (#4170) 2025-05-31 00:22:14 -04:00
SECURITY.md Create SECURITY.md 2025-06-05 10:22:15 -04:00
tsconfig.json Task metadata (#7092) 2025-08-14 03:14:17 -07:00
turbo.json Improve turbo task dependency declarations (#4323) 2025-06-04 09:32:27 -07:00

VS Code Marketplace X YouTube Join Discord Join r/RooCode

Get help fast → Join Discord • Prefer async? → Join r/RooCode

Roo Code

Your AI-Powered Dev Team, Right in Your Editor

🌐 Available languages

What Can Roo Code Do For YOU?

  • Generate Code from natural language descriptions and specs
  • Adapt with Modes: Code, Architect, Ask, Debug, and Custom Modes
  • Refactor & Debug existing code
  • Write & Update documentation
  • Answer Questions about your codebase
  • Automate repetitive tasks
  • Utilize MCP Servers

Modes

Roo Code adapts to how you work:

  • Code Mode: everyday coding, edits, and file ops
  • Architect Mode: plan systems, specs, and migrations
  • Ask Mode: fast answers, explanations, and docs
  • Debug Mode: trace issues, add logs, isolate root causes
  • Custom Modes: build specialized modes for your team or workflow
  • Roomote Control: Roomote Control lets you remotely control tasks running in your local VS Code instance.

Learn more: Using ModesCustom ModesRoomote Control

Tutorial & Feature Videos


Installing Roo Code

Configuring Profiles

Codebase Indexing

Custom Modes

Checkpoints

Context Management

More quick tutorial and feature videos...

Resources


Local Setup & Development

  1. Clone the repo:
git clone https://github.com/RooCodeInc/Roo-Code.git
  1. Install dependencies:
pnpm install
  1. Run the extension:

There are several ways to run the Roo Code extension:

Development Mode (F5)

For active development, use VSCode's built-in debugging:

Press F5 (or go to RunStart Debugging) in VSCode. This will open a new VSCode window with the Roo Code extension running.

  • Changes to the webview will appear immediately.
  • Changes to the core extension will also hot reload automatically.

Automated VSIX Installation

To build and install the extension as a VSIX package directly into VSCode:

pnpm install:vsix [-y] [--editor=<command>]

This command will:

  • Ask which editor command to use (code/cursor/code-insiders) - defaults to 'code'
  • Uninstall any existing version of the extension.
  • Build the latest VSIX package.
  • Install the newly built VSIX.
  • Prompt you to restart VS Code for changes to take effect.

Options:

  • -y: Skip all confirmation prompts and use defaults
  • --editor=<command>: Specify the editor command (e.g., --editor=cursor or --editor=code-insiders)

Manual VSIX Installation

If you prefer to install the VSIX package manually:

  1. First, build the VSIX package:
    pnpm vsix
    
  2. A .vsix file will be generated in the bin/ directory (e.g., bin/roo-cline-<version>.vsix).
  3. Install it manually using the VSCode CLI:
    code --install-extension bin/roo-cline-<version>.vsix
    

We use changesets for versioning and publishing. Check our CHANGELOG.md for release notes.


Disclaimer

Please note that Roo Code, Inc does not make any representations or warranties regarding any code, models, or other tools provided or made available in connection with Roo Code, any associated third-party tools, or any resulting outputs. You assume all risks associated with the use of any such tools or outputs; such tools are provided on an "AS IS" and "AS AVAILABLE" basis. Such risks may include, without limitation, intellectual property infringement, cyber vulnerabilities or attacks, bias, inaccuracies, errors, defects, viruses, downtime, property loss or damage, and/or personal injury. You are solely responsible for your use of any such tools or outputs (including, without limitation, the legality, appropriateness, and results thereof).


Contributing

We love community contributions! Get started by reading our CONTRIBUTING.md.


License

Apache 2.0 © 2025 Roo Code, Inc.


Enjoy Roo Code! Whether you keep it on a short leash or let it roam autonomously, we cant wait to see what you build. If you have questions or feature ideas, drop by our Reddit community or Discord. Happy coding!