Open-source project
raycast/extensions avatar
raycast/extensions

Raycast Extensions: The Open-Source Store for macOS Launcher Tools

Everything you need to extend Raycast. Raycast Extensions Raycast lets you control your tools with a few keystrokes.

7,773 stars7,001 forksTypeScriptMIT

At a glance

What is it?
The raycast/extensions repository hosts every extension available in the Raycast Store along with the documentation and examples needed to build new ones. Extensions are built with TypeScript and React, follow community and extension guidelines enforced at submission time, and are installed directly through the Raycast macOS launcher.
Who is it for?
This repository is the right starting point for macOS developers who want to integrate their tools into Raycast or contribute to the existing extension catalog. It is the wrong place to look for Windows or Linux automation tooling: Raycast is a macOS application, so the entire extension ecosystem is macOS-exclusive.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What This Repository Contains and Who It Is For

raycast/extensions is not an SDK. It is the monorepo that stores the source code for every extension published in the Raycast Store. When a developer submits an extension through the standard contribution process, a pull request to this repository is the mechanism. The result is a catalog of thousands of community-built integrations alongside the official documentation and reference examples.

The README frames the audience as two groups: extension developers who want to build new integrations, and users who want to discover and install extensions from the Store. For developers, the repository is the submission target and the reference for how existing extensions are structured. For users, the Store at raycast.com/store is the consumer interface; browsing the extensions/ directory directly is the developer-facing view of the same catalog.

The README links to the developer API documentation at developers.raycast.com and to example templates for common patterns. Building an extension requires familiarity with TypeScript and React, since all extensions are TypeScript packages that render React components into Raycast's UI primitives.

How Raycast Extensions Work: React Components in a Launcher

Raycast is a macOS launcher that replaces Spotlight with a keyboard-driven command palette. Extensions extend the command palette by adding new commands. From a developer perspective, a command is a React component that renders one of Raycast's built-in UI elements: a list, a form, a detail view, or an action panel.

The extension API, documented at developers.raycast.com, provides components like List, Detail, Form, and ActionPanel, along with utilities for showing toasts, writing to the clipboard, opening URLs, and accessing system APIs. The developer writes standard React code against these components, and Raycast's extension runtime renders it inside the launcher.

This approach means that web developers already familiar with React can build Raycast extensions without learning a new UI paradigm. The TypeScript API provides type safety for Raycast-specific components and actions. The repository uses .nvmrc to pin a Node version for consistent builds across contributors.

Repository Layout and the Example Extensions

The top-level directories serve distinct purposes. The extensions/ directory is the extension catalog itself and contains subdirectories for each published extension. The docs/ directory holds the developer documentation source. The examples/ directory contains reference implementations maintained by the Raycast team.

The examples in the repository include hacker-news (a Hacker News browser), spotify-controls (media controls for Spotify), todo-list (a local task manager), doppler-share-secrets (a secrets sharing integration), and api-examples (a collection of API usage patterns). These serve as annotated references showing how to use specific parts of the API.

The templates/ directory provides starter templates for new extensions. The scripts/ directory contains tooling for repository maintenance, such as migration scripts. The migrations/ directory tracks schema changes applied to extension manifests over time, which gives a picture of how the extension API has evolved.

Submitting an Extension: Contribution Requirements

The README requires that every submission comply with the Community Guidelines at manual.raycast.com/community-guidelines and the Extension Guidelines at manual.raycast.com/extensions, as well as the Acceptable Use Policy at raycast.com/aup. These documents govern content, security expectations, and coding standards. A pull request that violates them is rejected by the Raycast team during review.

The contribution guide is in CONTRIBUTING.md. The README directs API-related feedback, bug reports, and developer experience improvements to GitHub issues and provides issue templates to help structure them. Community discussion happens in the Slack workspace at raycast.com/community.

The SECURITY.md file covers security vulnerability reporting. Because extensions run inside Raycast with access to the system, the security guidelines matter: an extension that requests unnecessary permissions or handles credentials insecurely will not pass review.

What Raycast Extensions Cannot Do

Raycast is a macOS application. The entire extension ecosystem therefore runs only on macOS. A developer who needs a cross-platform command-line launcher or a Windows automation tool will find nothing applicable here.

Extensions are sandboxed within Raycast's runtime. The API surface is what developers.raycast.com documents: a set of React components and utility functions. System-level operations that the API does not expose require workarounds such as spawning a subprocess, which introduces complexity and potential security review issues during submission.

The repository has no GitHub releases. Extension versioning is managed inside each extension's package.json, and updates are delivered through pull requests to this repository rather than through a conventional release cycle. Developers who need to pin a specific version of an extension for reproducibility must manage that outside the store.

Alfred as an Alternative macOS Automation Platform

Alfred is another macOS launcher that supports third-party workflows through its Powerpack feature. Like Raycast, Alfred provides a keyboard-invoked command palette and allows integrations with external services. The key difference in the developer model is that Alfred workflows are built using a visual node editor and scripts in shell, Python, Ruby, or other scripting languages rather than TypeScript and React components.

For developers comfortable with shell scripting, Alfred's workflow editor requires less framework knowledge. For teams building data-rich UI integrations with lists, forms, and dynamic content, Raycast's React-based API provides more structured UI composition.

Both platforms are macOS-only, so the constraint is the same. Alfred requires the Powerpack for workflow functionality; Raycast does not charge for individual developers using the extension API.

License and Maintenance

The repository is licensed under MIT, which permits commercial use, modification, and redistribution without restriction. Individual extensions may carry their own licenses; contributors should check the extension subdirectory for any additional license files.

The last push was on 2026-09-27, consistent with an active project receiving daily contributions from the community. There are no GitHub releases for this repository; it operates as a rolling monorepo where extensions are added and updated through pull requests. For following the state of the extension API itself, developers.raycast.com is the primary reference and is updated alongside the store.

Editorial conclusion

This repository is the right starting point for macOS developers who want to integrate their tools into Raycast or contribute to the existing extension catalog. It is the wrong place to look for Windows or Linux automation tooling: Raycast is a macOS application, so the entire extension ecosystem is macOS-exclusive. Before building a new extension, read both the Community Guidelines and the Extension Guidelines referenced in the README; submissions that violate either are rejected. The MIT license covers the repository content, and the last push was on 2026-09-27.

Frequently asked questions

What is Raycast Extensions?

raycast/extensions is the open-source monorepo that stores the source code for every extension in the Raycast Store. Developers submit new extensions as pull requests to this repository. The extensions themselves are TypeScript and React packages that run inside the Raycast macOS launcher.

Where do I find the developer documentation for building a Raycast extension?

The README points to developers.raycast.com as the main API reference. The repository also contains reference examples in the examples/ directory and starter templates in the templates/ directory.

Do Raycast Extensions work on Windows or Linux?

No. Raycast is a macOS launcher and the extension ecosystem is macOS-exclusive. The README does not mention cross-platform support.

What technology do I need to know to build a Raycast extension?

Raycast extensions are TypeScript packages that render React components against Raycast's built-in UI primitives. Familiarity with TypeScript and React is the main prerequisite; the API documentation at developers.raycast.com covers the Raycast-specific components.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/raycast-extensions.svg)](https://hysenlabs.com/projects/raycast-extensions)