Skip to content

Extensions Guidelines

Extensions play an important role in the Raycast ecosystem. These Extensions Guidelines help ensure we can continue providing quality extensions for all Raycast users. The Community Guidelines also apply when you interact with users, fellow developers, and Raycast staff.

A Raycast Extension is code written by Raycast or third-party developers that extends Raycast's functionality. They typically integrate external services into Raycast, though extensions can also perform local actions, provide utilities, and more.

  1. Create your extension

    Fork an existing extension or start from scratch. Setup instructions are available in the Developers Getting Started guide.

  2. Submit your extension

    Submit your extension to be reviewed by opening a PR in the Raycast Extensions repository.

  3. Wait for review

    The Community Managers review extensions first-in, first-out. You can expect first contact within a week, subject to Community Manager availability.

  4. Respond to feedback

    Answer the reviewer's comments promptly to ensure there's no delays in your submission review. Unanswered PRs will go stale and, eventually, be closed without approval.

    To keep the backlog focused on extensions under active development, Pull Requests follow this lifecycle:

    • Marked as stale after 14 days of inactivity since the last comment.
    • Closed after 21 days of inactivity since the last comment.
    • Stale or closed PRs can be re-opened whenever you're ready to pick them back up.
  5. Published!

    After your extension has been reviewed and approved by the Community Managers, your extension will be available on the Raycast Store for anyone to download.

  • Make sure your extension is bringing value to Raycast users;
    • We want your extension to bring something that Raycast or other extensions don't provide yet.
    • At the same time, we prefer to keep services grouped in one extension and would rather increment an existing extension than create a new one.
    • Your extension should do more than Raycast's native features (Quicklinks, Snippets, Clipboard History, Calculator, etc.) already provide.
    • Fun is a great value for Raycast! Just make sure that it is non-violent and respectful.
  • Make sure the extension works and that users have all the information they need to set it up and use it;
    • This information should be in the extension's README file.
    • State codes, APIs, credentials, and any other relevant information that the user might need to connect your extension and the service.
    • All information collected from the user should not be used for any purpose other than connecting to the service and improving the extension's response.
  • You are responsible for your extension and any issues or feature requests that come up.
  • In case of a major bug in a popular extension (more than 1k downloads), Raycast has the right to step in to fix the issue as soon as possible.
    • Normally, this is done in conjunction with the Author or the developers from the service provided by the extension.
  • In case of abandonment, Raycast has the right to write and approve fixes without the extension Author's consent.
    • Abandonment is defined as: the extension no longer functions, OR the Author hasn't responded to Raycast team contact (3+ attempts).
    • Stalled PRs are also considered abandoned by the extension's Author.
  • Raycast reserves the right to build extensions with the same functionality as an existing one.
    • In that case, the Author will be informed in advance.
    • The existing extension does not need to be removed from the Store.
  • Violates our Terms of Service and/or Privacy Policy. This includes, but is not limited to the following;
    • Providing access to content not intentionally made available or provided for through the Service.
    • Impersonation.
    • Promoting criminal activity.
  • Violates the Terms of Service of the service provided. Example: scraping a website without permission.
  • There is already a feature to accomplish this directly in Raycast, which offers comparable value.
  • There is an active extension on our Store providing very similar value.
    • We encourage the Author to iterate on existing extensions, add new functionality, fix bugs, or even re-write it.
  • There is an open PR for an extension providing very similar value.
  • The extension does not follow our technical guidelines.
  • The extension's name uses restricted words. Currently, we are restricting the use of the word "Assistant".

Every month, our Community Managers choose 3 extensions to feature on the Raycast Store. Featured extensions receive prominent visibility for one month, both online and in the app. We select based on:

  • Innovation and creativity.
  • Popularity and demand.
  • Extensions that haven't been featured before.

Official extensions from our partners may receive priority consideration.

Raycast may make breaking changes to our API in the future. Here's what this means for extension developers:

  • A plan will be published beforehand.
  • A guideline will be provided by Raycast's engineers on how to proceed, the changes made, and the consequences.
  • Raycast engineers will be available to help with migration.
  • Authors will be responsible for migrating their extensions.