Skip to content
TopInsight .co
Three nearly-identical floating IDE editor panels arranged in staggered cascade, dimming from brightest to dimmest with slight colour cast differences — fork-of-fork lineage.

Cline vs Roo vs Kilo Code: the open-source coding-agent fork tree, untangled

Three forks, three philosophies, one underlying engine. After running all three across real projects, here is what each fork actually optimises for and which one belongs in your stack.

C Charles Lin ·

Our verdict

Best for: Engineers who want a transparent OSS coding agent inside VS Code with full BYOK and who don’t mind picking between three near-identical forks.

Not for: Anyone wanting one canonical product. The fork tree is real and choosing between Cline, Roo, and Kilo is its own minor research project.

7.5 / 10

In the open-source AI coding world, Cline (originally Claude Dev) became the de facto standard VS Code extension for agentic coding through 2024. By early 2025 the project had spawned two notable forks — Roo Code (more autonomous, more aggressive) and Kilo Code (yet another fork, billionaire-funded as the r/ChatGPTCoding community calls it). All three are alive and shipping. All three look similar at first glance. They optimise differently in practice.

This review is from two months of running all three side by side on the same projects.

What all three share

A VS Code extension that:

  • Talks to an LLM via your own API key (Anthropic, OpenAI, OpenRouter, local)
  • Reads and edits files in your workspace
  • Runs shell commands (with permission)
  • Manages a multi-turn conversation alongside your edits
  • Has a “plan first, then execute” mode
  • Is GPL/Apache/permissive licensed — fully open source

The shared core is meaningful. They’re not just rebrands; they share substantial code lineage but have diverged enough that they’re no longer just renames of each other.

The three diverged philosophies

Cline — the canonical implementation

Cline is the original. It is the most conservative of the three: more “ask before doing” defaults, less aggressive auto-iteration, the philosophy of “the human is always one step away from the next action.”

For engineers who want OSS but don’t want a fully autonomous agent, Cline is the safest choice. The maintainers are slower / more deliberate about feature changes.

Roo Code — the autonomous one

Roo Code forked Cline to make it more autonomous. Less permission-prompting, more aggressive multi-step execution, custom modes, slash commands for common workflows.

A good r/ChatGPTCoding thread frames the difference: Cline is “AI pair programmer,” Roo is closer to “autonomous developer.” Whether that’s a feature or a bug depends on what you want.

Roo also moves faster on feature work — Claude Max integration, Anthropic Computer Use support, MCP server integration. If you want OSS that keeps pace with frontier capabilities, Roo is usually first.

Kilo Code — the experimental edge

Kilo Code is the fork-of-the-fork. It tries things even Roo doesn’t — more aggressive tool use, more flexible model routing, experiments with various agent loop patterns.

Kilo’s niche: engineers who want to push what an OSS agent can do, accept that the experimental edge sometimes means breakage, and value the right-now-ness of seeing new agentic ideas land before the upstream forks adopt them.

How they compare on the dimensions that matter

Choosing between Cline, Roo, Kilo

Pros

  • You want OSS transparency + you want it stable → Cline
  • You want OSS + you want feature pace + you accept some friction → Roo Code
  • You want OSS + bleeding-edge agent experiments + you’ll tolerate breakage → Kilo Code
  • All three: free, no vendor lock-in, full BYOK
  • All three: work in JetBrains via the JetBrains plugin variant (worse, but exists)
  • All three: shared MCP server compatibility for the most part

Cons

  • None match Cursor’s tab completion experience — these are agent tools, not autocomplete tools
  • Documentation across the three is uneven — Cline is best documented, Kilo is worst
  • The fork tree itself is confusing to newcomers — three nearly-identical UIs in your extension marketplace
  • Switching between them mid-project loses your context / history
  • Bring-your-own-model is great but the BYOK setup is the activation energy that puts off casuals
  • Community is fragmented across three Discord servers and GitHub orgs

What the community is saying

The r/ChatGPTCoding signal in 2025 on this fork tree:

The honest read: the community respects Cline, Roo, and Kilo for being OSS in a space dominated by closed-source. But the recurring complaint is that the fork tree itself dilutes the ecosystem — three near-identical products competing for the same niche means each has less momentum than the unified project would have.

This is a real cost. It also reflects what happens when you have OSS that works — people fork.

Where each fits in a real coding stack

For most engineers in 2025, the answer is none of them as primary:

  • Cursor for tab completion + IDE-native AI
  • Claude Code for terminal-based agent work
  • Cline/Roo/Kilo as a backup OSS option, for engineers who specifically want OSS

The legitimate use cases for picking one of the three as primary:

  1. You are in JetBrains, not VS Code → none of Cursor / Windsurf are there, Cline’s JetBrains plugin is a viable option
  2. You need OSS for compliance / audit / supply-chain reasons → these are the only credible choice
  3. You work on a fully air-gapped / local-only setup → these support Ollama / LM Studio cleanly
  4. You want maximum BYOK flexibility → all three are best-in-class here

For our money, Roo Code is the best default among the three. Pace of feature work matches what Cursor / Claude Code are doing, OSS guarantees are real, the autonomous mode is genuinely useful.

If Roo feels too aggressive, fall back to Cline. If you want to experiment, try Kilo for a weekend.

The trajectory

The interesting open question for the rest of 2025: do these three forks reconverge, or does the tree keep branching?

Reconvergence is possible if Anthropic / Microsoft / someone steps in and provides a “blessed” OSS extension. Continued fragmentation is more likely if the current trajectory holds — each fork serves a slightly different audience and has a reason to exist independently.

The community signal in May 2025 leans toward continued fragmentation, with periodic “we should unify” discussions that never quite happen.

For the broader OSS-AI-coding context, see our Aider review and Continue.dev piece. For the closed-source alternatives, Cursor vs Copilot and our Claude Code review.

Sources

Every reference behind this piece. If we make a claim, it's because at least one of these said so — or we lived it ourselves.

  1. Firsthand Two months running all three forks side by side on the same projects
  2. Docs Cline GitHub documentation — Cline
  3. Docs Roo Code documentation — Roo Code
  4. Blog r/ChatGPTCoding — Cline is not open-source Cursor/Windsurf thread — r/ChatGPTCoding
  5. Blog r/ChatGPTCoding — Roasting Every Coding Agent thread — r/ChatGPTCoding
  6. Blog r/ChatGPTCoding — overwhelmed with coding tools thread — r/ChatGPTCoding
  7. YouTube IndyDevDan, AI Jason, and others on Cline / Roo workflows — Various