Convert Figma logo to code with AI

raycast logoextensions

Everything you need to extend Raycast.

5,308
2,997
5,308
407

Top Related Projects

Sample code illustrating the VS Code extension API.

VS Code in the browser

19,976

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.

60,150

:atom: The hackable text editor

12,811

The developer platform for on-demand cloud development environments to create software faster and more securely.

83,441

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

Quick Overview

The raycast/extensions repository is a collection of community-contributed extensions for the Raycast application, a powerful and customizable macOS launcher and productivity tool. These extensions provide a wide range of functionality, from task management and note-taking to system utilities and integrations with various web services.

Pros

  • Extensive Functionality: The repository offers a diverse range of extensions, catering to a wide variety of user needs and preferences.
  • Community-Driven: The project benefits from the contributions and feedback of the Raycast user community, ensuring a constantly evolving and improving set of extensions.
  • Customization: Users can easily discover, install, and configure extensions to tailor their Raycast experience to their specific requirements.
  • Productivity Boost: The extensions can significantly enhance user productivity by streamlining common tasks and providing quick access to frequently used tools and services.

Cons

  • Varying Quality: As a community-driven project, the quality and maintenance of individual extensions may vary, requiring users to carefully evaluate and select the most reliable and well-supported options.
  • Potential Compatibility Issues: With the rapid development of both Raycast and the extensions, there may be occasional compatibility issues that require users to stay up-to-date with the latest versions.
  • Learning Curve: The sheer number of available extensions can be overwhelming for new users, who may need to invest time in exploring and understanding the different options.
  • Limited Discoverability: The repository's organization and search functionality could be improved to help users more easily find the extensions that best suit their needs.

Code Examples

This repository does not contain a code library, but rather a collection of extensions for the Raycast application. As such, there are no code examples to provide.

Getting Started

To get started with the raycast/extensions repository, follow these steps:

  1. Install the Raycast application on your macOS device, if you haven't already done so.
  2. Open the Raycast app and navigate to the "Extensions" section.
  3. Browse the available extensions or use the search functionality to find the ones that interest you.
  4. Click on the extension you want to install and follow the on-screen instructions to complete the installation process.
  5. Once installed, you can configure the extension's settings and customize its behavior to suit your needs.
  6. Explore the various extensions and discover how they can enhance your productivity and workflow on macOS.

Remember, the raycast/extensions repository is a community-driven project, so the available extensions and their functionality may change over time. It's recommended to regularly check the repository for updates and new additions.

Competitor Comparisons

Sample code illustrating the VS Code extension API.

Pros of vscode-extension-samples

  • Comprehensive collection of sample extensions for VS Code
  • Well-documented examples covering various VS Code API features
  • Maintained by Microsoft, ensuring high-quality and up-to-date samples

Cons of vscode-extension-samples

  • Focused solely on VS Code, limiting its applicability to other platforms
  • May be overwhelming for beginners due to the large number of samples
  • Less community-driven compared to extensions

Code Comparison

vscode-extension-samples:

const vscode = require('vscode');

function activate(context) {
    console.log('Extension activated');
    // Extension logic here
}

extensions:

import { showHUD } from "@raycast/api";

export default async function command() {
  await showHUD("Hello World!");
}

The vscode-extension-samples code demonstrates the basic structure of a VS Code extension, while the extensions code shows a simple Raycast command implementation. The VS Code example uses CommonJS modules and the vscode API, whereas the Raycast example uses ES modules and the Raycast API.

VS Code in the browser

Pros of code-server

  • Provides a full VS Code environment in the browser, enabling remote development
  • Supports a wide range of programming languages and extensions
  • Can be self-hosted for enhanced security and customization

Cons of code-server

  • Requires more resources to run compared to lightweight extensions
  • May have higher latency due to running in a browser environment
  • Setup and maintenance can be more complex for individual users

Code Comparison

code-server (server setup):

const express = require('express');
const code = require('@coder/code-server');

const app = express();
code.init(app);
app.listen(8080);

extensions (Raycast extension):

import { List } from "@raycast/api";

export default function Command() {
  return <List>...</List>;
}

Summary

code-server offers a full-fledged VS Code experience in the browser, making it ideal for remote development and team collaboration. It supports a wide range of programming languages and can be self-hosted for enhanced security.

On the other hand, extensions focuses on providing quick access to various tools and services through Raycast, offering a more lightweight and native experience on macOS. It's easier to set up and use for individual developers but has a more limited scope compared to code-server's full IDE capabilities.

The code comparison shows the difference in complexity, with code-server requiring server setup, while extensions uses a simpler React-like component structure for creating Raycast commands.

19,976

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.

Pros of Theia

  • More comprehensive IDE-like environment with broader functionality
  • Highly extensible platform for building cloud & desktop IDEs
  • Supports multiple programming languages and development workflows

Cons of Theia

  • Heavier and more resource-intensive than Raycast extensions
  • Steeper learning curve for developers to contribute or customize
  • Less focused on quick, productivity-enhancing actions

Code Comparison

Theia (TypeScript):

import { injectable } from 'inversify';
import { MenuModelRegistry } from '@theia/core';

@injectable()
export class MyMenuContribution implements MenuContribution {
    registerMenus(menus: MenuModelRegistry): void {
        // Menu registration logic
    }
}

Raycast (JavaScript):

import { ActionPanel, Action, List } from "@raycast/api";

export default function Command() {
  return (
    <List>
      <List.Item
        title="Example Item"
        actions={
          <ActionPanel>
            <Action.CopyToClipboard content="Copied!" />
          </ActionPanel>
        }
      />
    </List>
  );
}

The code snippets highlight the different approaches: Theia uses a more traditional object-oriented structure with dependency injection, while Raycast extensions utilize a React-like declarative syntax for building user interfaces and actions.

60,150

:atom: The hackable text editor

Pros of Atom

  • More mature and established project with a larger community and ecosystem
  • Full-featured text editor with extensive customization options
  • Cross-platform support for Windows, macOS, and Linux

Cons of Atom

  • Slower performance and higher resource usage compared to lightweight editors
  • Development has been discontinued by GitHub, limiting future updates
  • Steeper learning curve for new users due to its complexity

Code Comparison

Atom (JavaScript):

atom.commands.add('atom-workspace', {
  'custom:action': () => {
    console.log('Custom action executed');
  }
});

Raycast Extensions (TypeScript):

import { showHUD } from "@raycast/api";

export default async function command() {
  await showHUD("Hello World!");
}

The Atom code snippet demonstrates adding a custom command to the workspace, while the Raycast Extensions code shows a simple command that displays a HUD message. Atom's API is more complex and tailored for text editing, whereas Raycast Extensions focus on quick actions and system integrations.

Raycast Extensions offers a more streamlined development experience for creating quick utilities and system integrations, while Atom provides a comprehensive text editing environment with extensive customization options. However, Atom's discontinued development may impact its long-term viability compared to the actively maintained Raycast Extensions.

12,811

The developer platform for on-demand cloud development environments to create software faster and more securely.

Pros of Gitpod

  • Provides a complete cloud-based development environment
  • Supports a wide range of programming languages and frameworks
  • Offers seamless integration with popular version control platforms

Cons of Gitpod

  • Requires an internet connection for development
  • May have limitations on resource usage in free tier
  • Learning curve for users new to cloud-based development environments

Code Comparison

Gitpod configuration (.gitpod.yml):

tasks:
  - init: npm install
    command: npm run dev
ports:
  - port: 3000
    onOpen: open-preview

Extensions configuration (package.json snippet):

{
  "name": "my-extension",
  "version": "1.0.0",
  "scripts": {
    "build": "ray build -e src/index.ts",
    "dev": "ray develop"
  }
}

The Gitpod configuration focuses on setting up the development environment, while the Extensions configuration is tailored for building and developing Raycast extensions. Gitpod's setup is more versatile, supporting various project types, whereas Extensions is specifically designed for Raycast extension development.

83,441

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

Pros of Tauri

  • Cross-platform desktop app development with web technologies
  • Smaller app sizes and better performance due to native system bindings
  • More flexibility in UI frameworks and design choices

Cons of Tauri

  • Steeper learning curve for developers new to Rust
  • Less extensive plugin ecosystem compared to Raycast Extensions
  • Requires more setup and configuration for complex applications

Code Comparison

Tauri (main.rs):

#![cfg_attr(
  all(not(debug_assertions), target_os = "windows"),
  windows_subsystem = "windows"
)]

fn main() {
  tauri::Builder::default()
    .run(tauri::generate_context!())
    .expect("error while running tauri application");
}

Raycast Extensions (package.json):

{
  "name": "example-extension",
  "title": "Example Extension",
  "description": "A simple Raycast extension",
  "icon": "icon.png",
  "author": "John Doe",
  "license": "MIT",
  "commands": [
    {
      "name": "index",
      "title": "Show Example",
      "description": "Shows an example"
    }
  ]
}

The code comparison highlights the different approaches: Tauri uses Rust for the main application logic, while Raycast Extensions rely on a JSON configuration file to define the extension's structure and behavior.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Raycast Extensions

Raycast lets you control your tools with a few keystrokes. This repository contains all extensions that are available in the Raycast Store. It also includes documentation and examples of how to extend Raycast using React.

Header

Getting Started

Visit https://developers.raycast.com to get started with our API. If you want to discover and install extensions, check out our Store.

Be sure to read and follow our Community and Extension guidelines when submitting your extension and interacting with other folks in this repository.

Feedback

Raycast wouldn't be where it is without the feedback from our community, so we would be happy to hear what you think of the API / DevX and how we can improve. Please use GitHub issues for everything API related (bugs, improvements suggestions, developer experience, docs, etc). We have a few templates that should help you get started.

Community

Join our Slack community to share your extension, debug nasty bugs or simply get to know like-minded folks.