Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,15 @@
"no-throw-literal": "warn",
"semi": "off"
},
"ignorePatterns": ["out", "dist", "**/*.d.ts", "!roo-code.d.ts"]
"ignorePatterns": ["out", "dist", "**/*.d.ts"],
"overrides": [
{
"files": ["**/*.d.ts"],
"rules": {
"@typescript-eslint/naming-convention": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "off"
}
}
]
}
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ blank_issues_enabled: false
contact_links:
- name: Feature Request
url: https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests
about: Share and vote on feature requests for Roo Code
about: Share and vote on feature requests for Seawolf
- name: Leave a Review
url: https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline&ssr=false#review-details
about: Enjoying Roo Code? Leave a review here!
url: https://marketplace.visualstudio.com/items?itemName=seawolf.roo-cline&ssr=false#review-details
about: Enjoying Seawolf? Leave a review here!
2 changes: 1 addition & 1 deletion .github/workflows/code-qa.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Code QA Roo Code
name: Code QA Seawolf

on:
workflow_dispatch:
Expand Down
663 changes: 65 additions & 598 deletions CHANGELOG.md

Large diffs are not rendered by default.

193 changes: 46 additions & 147 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,179 +1,78 @@
<div align="center">
<h2>Join the Roo Code Community</h2>
<p>Connect with developers, contribute ideas, and stay ahead with the latest AI-powered coding tools.</p>

<a href="https://discord.gg/roocode" target="_blank"><img src="https://img.shields.io/badge/Join%20Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord"></a>
<a href="https://www.reddit.com/r/RooCode/" target="_blank"><img src="https://img.shields.io/badge/Join%20Reddit-FF4500?style=for-the-badge&logo=reddit&logoColor=white" alt="Join Reddit"></a>

<h1>🐺 Seawolf</h1>
<p>⚡ An AI-powered autonomous coding agent for your editor ⚡</p>
</div>
<br>
<br>

<div align="center">
<h1>Roo Code (prev. Roo Cline)</h1>

<a href="https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline" target="_blank"><img src="https://img.shields.io/badge/Download%20on%20VS%20Marketplace-blue?style=for-the-badge&logo=visualstudiocode&logoColor=white" alt="Download on VS Marketplace"></a>
<a href="https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop" target="_blank"><img src="https://img.shields.io/badge/Feature%20Requests-yellow?style=for-the-badge" alt="Feature Requests"></a>
<a href="https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline&ssr=false#review-details" target="_blank"><img src="https://img.shields.io/badge/Rate%20%26%20Review-green?style=for-the-badge" alt="Rate & Review"></a>
<a href="https://docs.roocode.com" target="_blank"><img src="https://img.shields.io/badge/Documentation-6B46C1?style=for-the-badge&logo=readthedocs&logoColor=white" alt="Documentation"></a>
## 🛠 What is Seawolf?

</div>
**Seawolf** is an AI-powered autonomous coding agent that seamlessly integrates with your editor to supercharge your development workflow. It can:

**Roo Code** is an AI-powered **autonomous coding agent** that lives in your editor. It can:
- 🗣 **Communicate in natural language** – Describe what you need, and Seawolf gets to work!
- 📂 **Read & write files** directly in your workspace – No more switching between windows.
- 💻 **Run terminal commands** – Automate CLI tasks effortlessly.
- 🌐 **Automate browser actions** – Web testing and automation made easy.
- 🧠 **Integrate with OpenAI-compatible or custom AI models** – Use the best AI for your needs.
- 🏗 **Adapt through Custom Modes** – Define specialized roles like a QA engineer, system architect, or security auditor.

- Communicate in natural language
- Read and write files directly in your workspace
- Run terminal commands
- Automate browser actions
- Integrate with any OpenAI-compatible or custom API/model
- Adapt its “personality” and capabilities through **Custom Modes**
Whether you need a **flexible coding assistant, a system architect, or an automation powerhouse**, Seawolf is designed to help you build software faster and smarter! ⚡🐺

Whether you’re seeking a flexible coding partner, a system architect, or specialized roles like a QA engineer or product manager, Roo Code can help you build software more efficiently.

Check out the [CHANGELOG](CHANGELOG.md) for detailed updates and fixes.
🔄 Check out the [CHANGELOG](CHANGELOG.md) for the latest updates and improvements!

---

## 🎉 Roo Code 3.8 Released
## 🚀 What Can Seawolf Do?

Roo Code 3.8 is out with performance boosts, new features, and bug fixes.
Seawolf isn't just another AI assistant—it’s an **autonomous agent** designed to make software development effortless. Here’s what it can do:

- Faster asynchronous checkpoints
- Support for .rooignore files
- Fixed terminal & gray screen issues
- Roo Code can run in multiple windows
- Experimental multi-diff editing strategy
- Subtask to parent task communication
- Updated DeepSeek provider
- New "Human Relay" provider
- ✨ **Generate Code** – Write complete functions, classes, or entire apps from natural language descriptions.
- 🔧 **Refactor & Debug** – Identify issues, optimize your code, and fix bugs autonomously.
- 📖 **Write & Update Documentation** – Keep your codebase well-documented with minimal effort.
- ❓ **Answer Questions** – Get insights into your codebase, API documentation, or best practices.
- 🔄 **Automate Repetitive Tasks** – Reduce tedious manual work with smart automation.
- 🏗 **Create New Files & Projects** – Kickstart your next big idea in seconds.

---

## What Can Roo Code Do?

- 🚀 **Generate Code** from natural language descriptions
- 🔧 **Refactor & Debug** existing code
- 📝 **Write & Update** documentation
- 🤔 **Answer Questions** about your codebase
- 🔄 **Automate** repetitive tasks
- 🏗️ **Create** new files and projects

## Quick Start

1. [Install Roo Code](https://docs.roocode.com/getting-started/installing)
2. [Connect Your AI Provider](https://docs.roocode.com/getting-started/connecting-api-provider)
3. [Try Your First Task](https://docs.roocode.com/getting-started/your-first-task)

## Key Features

### Multiple Modes

Roo Code adapts to your needs with specialized [modes](https://docs.roocode.com/basic-usage/modes):

- **Code Mode:** For general-purpose coding tasks
- **Architect Mode:** For planning and technical leadership
- **Ask Mode:** For answering questions and providing information
- **Debug Mode:** For systematic problem diagnosis
- **[Custom Modes](https://docs.roocode.com/advanced-usage/custom-modes):** Create unlimited specialized personas for security auditing, performance optimization, documentation, or any other task

### Smart Tools

Roo Code comes with powerful [tools](https://docs.roocode.com/basic-usage/using-tools) that can:

- Read and write files in your project
- Execute commands in your VS Code terminal
- Control a web browser
- Use external tools via [MCP (Model Context Protocol)](https://docs.roocode.com/advanced-usage/mcp)

MCP extends Roo Code's capabilities by allowing you to add unlimited custom tools. Integrate with external APIs, connect to databases, or create specialized development tools - MCP provides the framework to expand Roo Code's functionality to meet your specific needs.

### Customization

Make Roo Code work your way with:

- [Custom Instructions](https://docs.roocode.com/advanced-usage/custom-instructions) for personalized behavior
- [Custom Modes](https://docs.roocode.com/advanced-usage/custom-modes) for specialized tasks
- [Local Models](https://docs.roocode.com/advanced-usage/local-models) for offline use
- [Auto-Approval Settings](https://docs.roocode.com/advanced-usage/auto-approving-actions) for faster workflows

## Resources
## ⚡ Quick Start

### Documentation
Getting started with Seawolf is as easy as 1-2-3:

- [Basic Usage Guide](https://docs.roocode.com/basic-usage/the-chat-interface)
- [Advanced Features](https://docs.roocode.com/advanced-usage/auto-approving-actions)
- [Frequently Asked Questions](https://docs.roocode.com/faq)

### Community

- **Discord:** [Join our Discord server](https://discord.gg/roocode) for real-time help and discussions
- **Reddit:** [Visit our subreddit](https://www.reddit.com/r/RooCode) to share experiences and tips
- **GitHub:** Report [issues](https://github.com/RooVetGit/Roo-Code/issues) or request [features](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop)
1️⃣ **Install Seawolf** from the **VS Code Marketplace**
2️⃣ **Connect your preferred AI provider** (OpenAI, local models, or custom API)
3️⃣ **Start your first task** – Just type your request and let Seawolf do the magic! 🪄

---

## Local Setup & Development

1. **Clone** the repo:

```sh
git clone https://github.com/RooVetGit/Roo-Code.git
```

2. **Install dependencies**:
## 🔑 Key Features

```sh
npm run install:all
```
### 🎭 Multiple Modes

3. **Start the webview (Vite/React app with HMR)**:
Seawolf adapts to your workflow with specialized modes:

```sh
npm run dev
```
- 🏗 **Code Mode** – Write, edit, and optimize code.
- 🎯 **Architect Mode** – Plan and analyze software designs.
- 🤖 **Ask Mode** – Answer coding questions and provide explanations.
- 🐞 **Debug Mode** – Troubleshoot errors and suggest fixes.
- 🛠 **Custom Modes** – Define unlimited specialized personas for security audits, performance tuning, or documentation.

4. **Debug**:
Press `F5` (or **Run** → **Start Debugging**) in VSCode to open a new session with Roo Code loaded.
### 🛠 Smart Tools

Changes to the webview will appear immediately. Changes to the core extension will require a restart of the extension host.
Seawolf is **more than just an AI chatbot**—it comes equipped with powerful automation tools:

Alternatively you can build a .vsix and install it directly in VSCode:
- 📂 **Read & modify files** in your project workspace.
- 🔄 **Execute terminal commands** inside VS Code.
- 🌍 **Control a web browser** for automation tasks.
- 🔌 **Use external tools via MCP (Model Context Protocol)** to integrate APIs, databases, or custom development tools.

```sh
npm run build
```
> 🔗 **MCP allows Seawolf to grow with you!** Extend its capabilities by integrating third-party APIs, database queries, and more.

A `.vsix` file will appear in the `bin/` directory which can be installed with:
### 🎨 Customization

```sh
code --install-extension bin/roo-cline-<version>.vsix
```
Make Seawolf work **your way** with:

We use [changesets](https://github.com/changesets/changesets) for versioning and publishing. Check our `CHANGELOG.md` for release notes.
- 📝 **Custom Instructions** – Tailor responses to match your workflow.
- 🎭 **Custom Modes** – Create AI agents for specific roles.
- 🏠 **Local Models** – Run AI offline for privacy and security.
- ✅ **Auto-Approval Settings** – Speed up repetitive workflows.

---

## Disclaimer

**Please note** that Roo Veterinary, 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! Here’s how to get involved:

1. **Check Issues & Requests**: See [open issues](https://github.com/RooVetGit/Roo-Code/issues) or [feature requests](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests).
2. **Fork & branch** off `main`.
3. **Submit a Pull Request** once your feature or fix is ready.
4. **Join** our [Reddit community](https://www.reddit.com/r/RooCode/) and [Discord](https://roocode.com/discord) for feedback, tips, and announcements.

---

## License

[Apache 2.0 © 2025 Roo Veterinary, Inc.](./LICENSE)

---

**Enjoy Roo Code!** Whether you keep it on a short leash or let it roam autonomously, we can’t wait to see what you build. If you have questions or feature ideas, drop by our [Reddit community](https://www.reddit.com/r/RooCode/) or [Discord](https://roocode.com/discord). Happy coding!
Binary file added assets/icons/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions assets/icons/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion e2e/.vscode-test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export default defineConfig({
timeout: 60000,
},
launchArgs: [
'--enable-proposed-api=RooVeterinaryInc.roo-cline',
'--enable-proposed-api=seawolf.opensourceful',
'--disable-extensions'
]
});
20 changes: 10 additions & 10 deletions e2e/src/suite/extension.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as assert from "assert"
import * as vscode from "vscode"

suite("Roo Code Extension", () => {
suite("Seawolf Extension", () => {
test("OPENROUTER_API_KEY environment variable is set", () => {
if (!process.env.OPENROUTER_API_KEY) {
assert.fail("OPENROUTER_API_KEY environment variable is not set")
Expand All @@ -10,15 +10,15 @@ suite("Roo Code Extension", () => {

test("Commands should be registered", async () => {
const expectedCommands = [
"roo-cline.plusButtonClicked",
"roo-cline.mcpButtonClicked",
"roo-cline.historyButtonClicked",
"roo-cline.popoutButtonClicked",
"roo-cline.settingsButtonClicked",
"roo-cline.openInNewTab",
"roo-cline.explainCode",
"roo-cline.fixCode",
"roo-cline.improveCode",
"seawolf.plusButtonClicked",
"seawolf.mcpButtonClicked",
"seawolf.historyButtonClicked",
"seawolf.popoutButtonClicked",
"seawolf.settingsButtonClicked",
"seawolf.openInNewTab",
"seawolf.explainCode",
"seawolf.fixCode",
"seawolf.improveCode",
]

const commands = await vscode.commands.getCommands(true)
Expand Down
4 changes: 2 additions & 2 deletions e2e/src/suite/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Mocha from "mocha"
import { glob } from "glob"
import * as vscode from "vscode"

import { RooCodeAPI } from "../../../src/exports/roo-code"
import { RooCodeAPI } from "../../../src/exports/seawolf-code"

import { waitUntilReady } from "./utils"

Expand All @@ -12,7 +12,7 @@ declare global {
}

export async function run() {
const extension = vscode.extensions.getExtension<RooCodeAPI>("RooVeterinaryInc.roo-cline")
const extension = vscode.extensions.getExtension<RooCodeAPI>("seawolf.extension")

if (!extension) {
throw new Error("Extension not found")
Expand Down
2 changes: 1 addition & 1 deletion e2e/src/suite/modes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as assert from "assert"

import { getCompletion, getMessage, sleep, waitForCompletion, waitUntilAborted } from "./utils"

suite("Roo Code Modes", () => {
suite("Seawolf Modes", () => {
test("Should handle switching modes correctly", async function () {
const api = globalThis.api

Expand Down
2 changes: 1 addition & 1 deletion e2e/src/suite/subtasks.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as assert from "assert"

import { sleep, waitFor, getMessage, waitForCompletion } from "./utils"

suite("Roo Code Subtasks", () => {
suite("Seawolf Subtasks", () => {
test("Should handle subtask cancellation and resumption correctly", async function () {
const api = globalThis.api

Expand Down
4 changes: 2 additions & 2 deletions e2e/src/suite/task.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { waitForMessage } from "./utils"

suite("Roo Code Task", () => {
suite("Seawolf Code Task", () => {
test("Should handle prompt and response correctly", async function () {
const api = globalThis.api
await api.setConfiguration({ mode: "Ask", alwaysAllowModeSwitch: true, autoApprovalEnabled: true })
const taskId = await api.startNewTask("Hello world, what is your name? Respond with 'My name is ...'")
await waitForMessage({ api, taskId, include: "My name is Roo" })
await waitForMessage({ api, taskId, include: "My name is Seawolf" })
})
})
11 changes: 7 additions & 4 deletions e2e/src/suite/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as vscode from "vscode"

import { RooCodeAPI } from "../../../src/exports/roo-code"
import type { ClineMessage } from "../../../src/exports/seawolf-code"
import { RooCodeAPI } from "../../../src/exports/seawolf-code"

type WaitForOptions = {
timeout?: number
Expand Down Expand Up @@ -46,7 +47,7 @@ type WaitUntilReadyOptions = WaitForOptions & {
}

export const waitUntilReady = async ({ api, ...options }: WaitUntilReadyOptions) => {
await vscode.commands.executeCommand("roo-cline.SidebarProvider.focus")
await vscode.commands.executeCommand("seawolf.SidebarProvider.focus")
await waitFor(() => api.isReady(), options)
}

Expand All @@ -57,7 +58,7 @@ type WaitUntilAbortedOptions = WaitForOptions & {

export const waitUntilAborted = async ({ api, taskId, ...options }: WaitUntilAbortedOptions) => {
const set = new Set<string>()
api.on("taskAborted", (taskId) => set.add(taskId))
api.on("taskAborted", (taskId: string) => set.add(taskId))
await waitFor(() => set.has(taskId), options)
}

Expand All @@ -70,7 +71,9 @@ export const waitForCompletion = async ({
}) => waitFor(() => !!getCompletion({ api, taskId }), options)

export const getCompletion = ({ api, taskId }: { api: RooCodeAPI; taskId: string }) =>
api.getMessages(taskId).find(({ say, partial }) => say === "completion_result" && partial === false)
api
.getMessages(taskId)
.find((message: ClineMessage) => message.say === "completion_result" && message.partial === false)

type WaitForMessageOptions = WaitUntilReadyOptions & {
taskId: string
Expand Down
Loading