- Cloud Agents are a version of Roo running in the cloud without depending on your IDE.
- You can run as many as you want, and bring your own inference provider key.
+ Roo Code Cloud credits can be used in two ways:
+
+
To pay for Cloud Agents running time (${PRICE_CREDITS}/hour)
- No models found matching your search criteria.
+
+
+
No models match your search.
+
+ Keep in mind we don't have every model under the sun – only the ones we think
+ are worth using.
+
+ You can always use a third-party provider to access a wider selection.
- )
-}
diff --git a/apps/web-roo-code/src/app/provider/pricing/page.tsx b/apps/web-roo-code/src/app/provider/pricing/page.tsx
index f38dc8241a..92bfea7199 100644
--- a/apps/web-roo-code/src/app/provider/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/page.tsx
@@ -1,7 +1,6 @@
"use client"
import { useEffect, useMemo, useState } from "react"
-import { AnimatedBackground } from "@/components/homepage"
import { ModelCard } from "./components/model-card"
import { Model, ModelWithTotalPrice, ModelsResponse, SortOption } from "@/lib/types/models"
import Link from "next/link"
@@ -34,6 +33,17 @@ const faqs = [
>
),
},
+ {
+ question: "But how much does the Roo Code Cloud service cost?",
+ answer: (
+ <>
+ Our{" "}
+
+ service pricing is here.
+
+ >
+ ),
+ },
]
function calculateTotalPrice(model: Model): number {
@@ -116,26 +126,25 @@ export default function ProviderPricingPage() {
return (
<>
-
-
- {/* Hero Section */}
-
+
Roo Code Cloud Provider Pricing
- See pricing and features for all models we support.
+ See pricing and features for all models we offer in our selection.
-
- Looking for general Roo Code Cloud pricing?
+ You can always bring your own key (
+
+ FAQ
+ ).
- {/* Search and Sort Controls */}
-
+
+
@@ -174,11 +183,8 @@ export default function ProviderPricingPage() {
Cache Write
@@ -105,12 +158,13 @@ export function ModelCard({ model }: ModelCardProps) {
>
)}
-
+
+
Features
-
+
{usefulTags.map((tag) => (
@@ -119,6 +173,19 @@ export function ModelCard({ model }: ModelCardProps) {
))}
+
+ {/* Mobile-only toggle row */}
+
+
+
+
+
From 3a7e29bce0cb1ca8303f5b70f67cfeb68e878de0 Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 14:54:23 +0000
Subject: [PATCH 08/18] Inference credits in general pricing
---
apps/web-roo-code/src/app/pricing/page.tsx | 100 +++++++++++-------
.../src/app/provider/pricing/page.tsx | 52 ++++++++-
2 files changed, 112 insertions(+), 40 deletions(-)
diff --git a/apps/web-roo-code/src/app/pricing/page.tsx b/apps/web-roo-code/src/app/pricing/page.tsx
index 40f5d434e8..12fe00bec4 100644
--- a/apps/web-roo-code/src/app/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/pricing/page.tsx
@@ -1,4 +1,4 @@
-import { Users, Building2, ArrowRight, Star, LucideIcon, Check, Cloud } from "lucide-react"
+import { Users, Building2, ArrowRight, Star, LucideIcon, Check, Cloud, PlugZap } from "lucide-react"
import type { Metadata } from "next"
import Link from "next/link"
@@ -64,7 +64,6 @@ interface PricingTier {
period?: string
creditPrice?: string
trial?: string
- cancellation?: string
description: string
featuresIntro?: string
features: string[]
@@ -80,13 +79,12 @@ const pricingTiers: PricingTier[] = [
name: "Cloud Free",
icon: Cloud,
price: "$0",
- cancellation: "Cancel anytime",
description: "For folks just getting started",
features: [
"Token usage analytics",
+ "Access to the Roo Code Cloud Provider, including early access to free stealth models",
"Follow your tasks from anywhere",
"Share tasks with friends and co-workers",
- "Early access to free AI Models",
"Community support",
],
cta: {
@@ -95,18 +93,18 @@ const pricingTiers: PricingTier[] = [
},
},
{
- name: "Pro",
+ name: "Cloud Pro",
icon: Star,
price: "$20",
period: "/mo",
- trial: "Free 14-day trial · ",
+ trial: "Free for 14 days, then",
creditPrice: `$${PRICE_CREDITS}`,
- cancellation: "Cancel anytime",
description: "For pro Roo coders",
featuresIntro: "Everything in Free +",
features: [
- "Cloud Agents: PR Reviewer and more",
- "Roomote Control: Start, stop and control tasks from anywhere",
+ "Cloud Agents: Coder, Explainer, Planner, Reviewer, Fixer and more",
+ "Start tasks from Slack",
+ "Roomote Control: Start, stop and control extension tasks from anywhere",
"Paid support",
],
cta: {
@@ -115,12 +113,12 @@ const pricingTiers: PricingTier[] = [
},
},
{
- name: "Team",
+ name: "Cloud Team",
icon: Users,
price: "$99",
period: "/mo",
creditPrice: `$${PRICE_CREDITS}`,
- trial: "Free 14-day trial · ",
+ trial: "Free for 14 days, then",
cancellation: "Cancel anytime",
description: "For AI-forward teams",
featuresIntro: "Everything in Pro +",
@@ -151,12 +149,30 @@ export default function PricingPage() {
- {/* Free Extension Notice */}
-
-
+
+
- The Roo Code extension is free!
- Roo Code Cloud is an optional service which takes it to the next level.
+ The Roo Code extension is totally free!
+ But Cloud takes you so much further.
+
+
+
+
+
+
+ Roo Code Provider
+
+
+
+
+ On any plan, you can bring your own provider key or use the built-in Roo Code Cloud provider.
+
+
+ We offer a select mix of tested state of the art closed and open weight LLMs for you to choose,
+ with no markup.
+
+ See detailed pricing
+
@@ -183,7 +199,7 @@ export default function PricingPage() {
{tier.featuresIntro}
-
+
{tier.features.map((feature) => (
@@ -193,20 +209,28 @@ export default function PricingPage() {
Yes! The Roo Code VS Code extension is open source and free forever. The extension acts
@@ -257,7 +281,7 @@ export default function PricingPage() {
Code Cloud.
-
+
Is there a free trial?
Yes, all paid plans come with a 14-day free trial to try out functionality.
@@ -266,7 +290,7 @@ export default function PricingPage() {
To use Cloud Agents, you can buy credits.
-
+
How do credits work?
Roo Code Cloud credits can be used in two ways:
@@ -293,25 +317,25 @@ export default function PricingPage() {
There are no markups, no tiers, no dumbing-down of models to increase our profit.
-
+
Do I need a credit card for the free trial?
Yes, but you won't be charged until your trial ends, except for credit purchases.
You can cancel anytime with one click.
-
+
What payment methods do you accept?
We accept all major credit cards, debit cards, and can arrange invoice billing for
Enterprise customers.
-
-
Can I change plans anytime?
+
+
Can I cancel or change plans?
- Yes, you can upgrade or downgrade your plan at any time. Changes will be reflected in
- your next billing cycle.
+ Yes, you can upgrade, downgrade or cancel your plan at any time. Changes will be
+ reflected in your next billing cycle.
diff --git a/apps/web-roo-code/src/app/provider/pricing/page.tsx b/apps/web-roo-code/src/app/provider/pricing/page.tsx
index 9eca52f371..75d9a5bb57 100644
--- a/apps/web-roo-code/src/app/provider/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/page.tsx
@@ -5,9 +5,57 @@ import { ModelCard } from "./components/model-card"
import { Model, ModelWithTotalPrice, ModelsResponse, SortOption } from "@/lib/types/models"
import Link from "next/link"
import { ChevronDown, CircleX, Loader, LoaderCircle, Search } from "lucide-react"
+import { ogImageUrl } from "@/lib/og"
+import { SEO } from "@/lib/seo"
+import { Metadata } from "next"
const API_URL = "https://api.roocode.com/proxy/v1/models"
+const TITLE = "Roo Code Cloud Provider Pricing"
+const DESCRIPTION = "See pricing and features for all models we offer in our selection."
+const OG_DESCRIPTION = "Pricing for all of models we host"
+const PATH = "/provider/pricing"
+
+export const metadata: Metadata = {
+ title: TITLE,
+ description: DESCRIPTION,
+ alternates: {
+ canonical: `${SEO.url}${PATH}`,
+ },
+ openGraph: {
+ title: TITLE,
+ description: DESCRIPTION,
+ url: `${SEO.url}${PATH}`,
+ siteName: SEO.name,
+ images: [
+ {
+ url: ogImageUrl(TITLE, OG_DESCRIPTION),
+ width: 1200,
+ height: 630,
+ alt: TITLE,
+ },
+ ],
+ locale: SEO.locale,
+ type: "website",
+ },
+ twitter: {
+ card: SEO.twitterCard,
+ title: TITLE,
+ description: DESCRIPTION,
+ images: [ogImageUrl(TITLE, OG_DESCRIPTION)],
+ },
+ keywords: [
+ ...SEO.keywords,
+ "pricing",
+ "plans",
+ "subscription",
+ "cloud pricing",
+ "AI development pricing",
+ "team pricing",
+ "enterprise pricing",
+ ],
+}
+
const faqs = [
{
question: "What are AI model providers?",
@@ -15,10 +63,10 @@ const faqs = [
},
{
question: "How is pricing calculated?",
- answer: "Pricing is based on token usage for input and output, measured per million tokens.",
+ answer: "Pricing is based on token usage for input and output, measured per million tokens, like pretty much any other provider out there.",
},
{
- question: "Wehat is the Roo Code Cloud Provider?",
+ question: "What is the Roo Code Cloud Provider?",
answer: (
<>
This is our very own model provider, optimized to work seamlessly with Roo Code Cloud.
From a84b68a309d57fc9a7c91f1e76a771170b3ef34e Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 14:54:55 +0000
Subject: [PATCH 09/18] Inference credits in general pricing
---
apps/web-roo-code/src/app/pricing/page.tsx | 1 -
1 file changed, 1 deletion(-)
diff --git a/apps/web-roo-code/src/app/pricing/page.tsx b/apps/web-roo-code/src/app/pricing/page.tsx
index 12fe00bec4..664f0ea904 100644
--- a/apps/web-roo-code/src/app/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/pricing/page.tsx
@@ -119,7 +119,6 @@ const pricingTiers: PricingTier[] = [
period: "/mo",
creditPrice: `$${PRICE_CREDITS}`,
trial: "Free for 14 days, then",
- cancellation: "Cancel anytime",
description: "For AI-forward teams",
featuresIntro: "Everything in Pro +",
features: ["Unlimited users (no per-seat cost)", "Shared configuration & policies", "Centralized billing"],
From 57d07c5af307beb31082cb50b8a884acdf4e757b Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 15:44:40 +0000
Subject: [PATCH 10/18] Screw makign this work on the server side for now
---
.../src/app/provider/pricing/page.tsx | 48 -------------------
1 file changed, 48 deletions(-)
diff --git a/apps/web-roo-code/src/app/provider/pricing/page.tsx b/apps/web-roo-code/src/app/provider/pricing/page.tsx
index 75d9a5bb57..0eac791a27 100644
--- a/apps/web-roo-code/src/app/provider/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/page.tsx
@@ -5,57 +5,9 @@ import { ModelCard } from "./components/model-card"
import { Model, ModelWithTotalPrice, ModelsResponse, SortOption } from "@/lib/types/models"
import Link from "next/link"
import { ChevronDown, CircleX, Loader, LoaderCircle, Search } from "lucide-react"
-import { ogImageUrl } from "@/lib/og"
-import { SEO } from "@/lib/seo"
-import { Metadata } from "next"
const API_URL = "https://api.roocode.com/proxy/v1/models"
-const TITLE = "Roo Code Cloud Provider Pricing"
-const DESCRIPTION = "See pricing and features for all models we offer in our selection."
-const OG_DESCRIPTION = "Pricing for all of models we host"
-const PATH = "/provider/pricing"
-
-export const metadata: Metadata = {
- title: TITLE,
- description: DESCRIPTION,
- alternates: {
- canonical: `${SEO.url}${PATH}`,
- },
- openGraph: {
- title: TITLE,
- description: DESCRIPTION,
- url: `${SEO.url}${PATH}`,
- siteName: SEO.name,
- images: [
- {
- url: ogImageUrl(TITLE, OG_DESCRIPTION),
- width: 1200,
- height: 630,
- alt: TITLE,
- },
- ],
- locale: SEO.locale,
- type: "website",
- },
- twitter: {
- card: SEO.twitterCard,
- title: TITLE,
- description: DESCRIPTION,
- images: [ogImageUrl(TITLE, OG_DESCRIPTION)],
- },
- keywords: [
- ...SEO.keywords,
- "pricing",
- "plans",
- "subscription",
- "cloud pricing",
- "AI development pricing",
- "team pricing",
- "enterprise pricing",
- ],
-}
-
const faqs = [
{
question: "What are AI model providers?",
From 213c8d572114e17f69485cab010f7caea91d23a6 Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 15:49:39 +0000
Subject: [PATCH 11/18] Update
apps/web-roo-code/src/app/provider/pricing/page.tsx
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
---
apps/web-roo-code/src/app/provider/pricing/page.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/web-roo-code/src/app/provider/pricing/page.tsx b/apps/web-roo-code/src/app/provider/pricing/page.tsx
index 0eac791a27..b6ebe9617f 100644
--- a/apps/web-roo-code/src/app/provider/pricing/page.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/page.tsx
@@ -95,7 +95,7 @@ export default function ProviderPricingPage() {
filtered = models.filter((model) => {
return (
model.name.toLowerCase().includes(query) ||
- model.owned_by.toLowerCase().includes(query) ||
+model.owned_by?.toLowerCase().includes(query) ||
model.description.toLowerCase().includes(query)
)
})
From 25c5bea5e783fb3cba8407b78b8a2d5856afcfe1 Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 15:49:50 +0000
Subject: [PATCH 12/18] Update
apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
---
.../src/app/provider/pricing/components/model-card.tsx | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx b/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
index 9dc0261896..5d4f74325b 100644
--- a/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
@@ -87,12 +87,10 @@ export function ModelCard({ model }: ModelCardProps) {
{/* Output Price: always visible */}
-
+ className={[
+ "border-b border-border",
+ // Add subtle separation from toggle on mobile
+ ].join(" ")}
Output Price
From 1e0c25b7bf1008780b5d35cb6e5fc1f38a16b362 Mon Sep 17 00:00:00 2001
From: Bruno Bergher
Date: Wed, 12 Nov 2025 15:50:06 +0000
Subject: [PATCH 13/18] Update
apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
---
.../src/app/provider/pricing/components/model-card.tsx | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx b/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
index 5d4f74325b..116b7b3a22 100644
--- a/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
+++ b/apps/web-roo-code/src/app/provider/pricing/components/model-card.tsx
@@ -102,12 +102,10 @@ export function ModelCard({ model }: ModelCardProps) {
{/* Extra details: only visible on mobile when expanded, always visible on >=sm */}
{model.owned_by && (
-