- Roo Code Marketplace
Roo Code Marketplace is an un-released work in progress.....
Imagine effortlessly gliding through your projects with the agility of a kangaroo on Roo mode! π¦ Picture your data flowing seamlessly and powerfully through our mighty MCP servers, like a vibrant river of information! π And get ready to craft spells of efficiency and innovation with the perfect prompts β your secret incantations for mastery!
Sharing is caring, and when you share your knowledge of Roo modes, MCP servers, and brilliant prompts, you're not just helping your team β you're spreading happiness throughout the Roo community! π Watch as collaboration soars, productivity skyrockets, and smiles bloom across faces. It's a roovolution of joy and empowerment!
So, dive in, explore the wonders of Roo modes, harness the strength of MCP servers, and play with the power of prompts. Unleash your superpowers and let the happiness flow! π You've got this! πͺ
This guide explains how to create and share Modes, MCPs, and Prompts to Roo Code users conviniently available right inside Roo.
Learn more about using Roo Code Marketplace
- Every component on the registry is an
item
. - An
item
can be of type:mcp
,mode
,prompt
,package
- Each item apart from
package
is a singular object, i.e: one mode, one mcp server. - A
package
contains multiple otheritem
s- All internal sub-items of a
package
is contained in the binary on thepackage
item metadata itself.
- All internal sub-items of a
- Each
item
requires specific metadata files and follows a consistent directory structure.
The registry
structure could be the root or placed in a registry
directory of any git
repository, a sample structure for a registry is:
registry/
βββ metadata.en.yml # Required metadata for the registry
β
βββ modes/ # `mode` items
β βββ a-mode-name/
β βββ metadata.en.yml
βββ mcps/ # `mcp` items
βββ prompts/ # `prompt` items
β
βββ packages/ # `package` items
βββ a-package-name/
βββ metadata.en.yml # Required metadata
βββ metadata.fr.yml # Optional localized metadata (French)
βββ modes/ # `a-package-name`'s internal `mode` items
β βββ my-mode/
β βββ metadata.en.yml
βββ mcps/ # `a-package-name`'s internal `mcp` items
β βββ my-server/
β βββ metadata.en.yml
βββ prompts/ # `a-package-name`'s internal `prompt` items
βββ my-prompt/
βββ metadata.en.yml
Metadata files use YAML format and must include specific fields:
name: "My Registry"
description: "A concise description for your registry"
version: "0.0.0"
author: "your name" # optional
authorUrl: "http://your.profile.url/" # optional
name: "My Package"
description: "A concise description for your package"
version: "0.0.0"
type: "package" # One of: package, mode, mcp, prompt
sourceUrl: "https://url.to/source-repository" # Optional
binaryUrl: "https://url.to/binary.zip"
binaryHash: "SHA256-of-binary"
binarySource: "https://proof.of/source" # Optional, proof-of-source for the binary (tag/hash reference, build job, etc)
tags:
- tag1
- tag2
author: "your name" # optional
authorUrl: "http://your.profile.url/" # optional
You can provide metadata in multiple languages by using locale-specific files:
Important Notes on Localization:
- Only files with the pattern
metadata.{locale}.yml
are supported - The Marketplace will display metadata in the user's locale if available
- If the user's locale is not available, it will fall back to English
- The English locale (
metadata.en.yml
) is required as a fallback - Files without a locale code (e.g., just
metadata.yml
) are not supported
Powered with Roo Rocket
, the registry supports configurable items like:
mcp
with access token inputs.mode
/prompt
with feature flags.- And further customizations that a creator can imagine.
- E.g: a
package
could prompt you for the location of its context folder.
- E.g: a
To contribute your package to the official repository, follow these steps:
- Visit the official Roo Code Packages repository: https://github.com/RooCodeInc/Roo-Code-Marketplace
- Click the "Fork" button in the top-right corner
- This creates your own copy of the repository where you can make changes
Clone your forked repository to your local machine:
git clone https://github.com/YOUR-USERNAME/Roo-Code-Marketplace.git
cd Roo-Code-Marketplace
- Create a new directory for your item with an appropriate name
- Add the required metadata files (and subitem directories for
package
) - Follow the structure and format described above
- Add
sourceUrl
that points to a repository or post with info/document for the item.
Example of creating a simple package:
mkdir -p my-package/modes/my-mode
touch my-package/metadata.en.yml
touch my-package/README.md
touch my-package/modes/my-mode/metadata.en.yml
Before submitting, test your package by adding your fork as a custom source in the Marketplace:
- In VS Code, open the Marketplace
- Go to the "Settings" tab
- Click "Add Source"
- Enter your fork's URL (e.g.,
https://github.com/YOUR-USERNAME/Roo-Code-Marketplace
) - Click "Add"
- Verify that your package appears and functions correctly
Once you're satisfied with your package:
git add .
git commit -m "Add my-package with mode component"
git push origin main
- Go to the original repository: https://github.com/RooCodeInc/Roo-Code-Marketplace
- Click "Pull Requests" and then "New Pull Request"
- Click "Compare across forks"
- Select your fork as the head repository
- Click "Create Pull Request"
- Provide a clear title and description of your package
- Submit the pull request
After submitting your pull request:
- Maintainers will review your package
- They may request changes or improvements
- Once approved, your package will be merged into the main repository
- Your package will be available to all users of the Marketplace
- Clear Documentation: Include detailed documentation in your README.md
- Descriptive Metadata: Write clear, informative descriptions
- Appropriate Tags: Use relevant tags to make your package discoverable
- Testing: Thoroughly test your package before submitting
- Localization: Consider providing metadata in multiple languages
- Semantic Versioning: Follow semantic versioning for version numbers
- Consistent Naming: Use clear, descriptive names for components
Here's an example of a data science package:
data-science-toolkit/metadata.en.yml:
name: "Data Science Toolkit"
description: "A comprehensive collection of tools for data science workflows"
version: "1.0.0"
type: "package"
tags:
- data
- science
- analysis
- visualization
- machine learning
data-science-toolkit/modes/data-scientist-mode/metadata.en.yml:
name: "Data Scientist Mode"
description: "A specialized mode for data science tasks"
version: "1.0.0"
type: "mode"
tags:
- data
- science
- analysis
data-science-toolkit/prompts/data-cleaning/metadata.en.yml:
name: "Data Cleaning Prompt"
description: "A prompt for cleaning and preprocessing datasets"
version: "1.0.0"
type: "prompt"
tags:
- data
- cleaning
- preprocessing
The Marketplace allows you to extend its functionality by adding custom sources. This guide explains how to set up and manage your own Marktplace repositories to access additional components beyond the default offerings.