Overview
Raycast is a macOS productivity application that replaces Spotlight as the primary launcher. It provides a command palette interface for launching apps, searching files, managing windows, running scripts, controlling system settings, and integrating with developer tools. Raycast is extensible through a store of community-built extensions and supports custom scripts in multiple languages.
Raycast includes built-in features for clipboard history, snippet expansion, window management, floating notes, and AI-powered chat. Its extension API lets developers build custom commands using React and TypeScript. The free tier covers most functionality, while Raycast Pro adds AI features, cloud sync, and custom themes.
Installation
# Install via Homebrew
brew install --cask raycast
# Or download from https://raycast.com
First Launch
- Open Raycast (default shortcut:
Opt+Space)
- Follow the setup wizard
- Optionally disable Spotlight (
System Settings > Keyboard > Keyboard Shortcuts > Spotlight)
- Set Raycast as your primary launcher
Core Features
Essential Shortcuts
| Shortcut | Action |
|---|
Opt+Space | Open Raycast |
Enter | Execute selected command |
Cmd+K | Show actions for selected item |
Tab | Autocomplete / navigate |
Esc | Close or go back |
Cmd+, | Open Raycast Preferences |
Cmd+Shift+C | Copy selected item |
Ctrl+N / Ctrl+P | Navigate up/down in list |
Built-in Commands
| Command | Description |
|---|
| Application search | Type app name to launch |
| File search | Search files and folders |
| Calculator | Type math expressions directly |
| Define word | Look up word definitions |
| System commands | Lock screen, sleep, restart, etc. |
| Clipboard history | Access copied items |
| Snippets | Text expansion shortcuts |
| Window management | Resize and position windows |
| Floating notes | Quick scratchpad |
| Calendar | View upcoming events |
| Reminders | Create and manage reminders |
Clipboard History
# Open clipboard history
Type "Clipboard History" or set a global hotkey in Preferences
# Features:
- Stores text, images, links, colors, and files
- Pin frequently used items
- Search through history
- Paste specific item with Enter
- Preview with spacebar
Snippets
# Create a snippet in Preferences > Snippets
Name: Email Signature
Keyword: !sig
Content:
Best regards,
{name}
{cursor}
# Dynamic variables in snippets:
{clipboard} — current clipboard content
{cursor} — cursor position after expansion
{date} — current date
{time} — current time
{name} — your name from settings
{random:uuid} — random UUID
Window Management
| Shortcut | Action |
|---|
Ctrl+Opt+Enter | Maximize window |
Ctrl+Opt+Left | Left half |
Ctrl+Opt+Right | Right half |
Ctrl+Opt+Up | Top half |
Ctrl+Opt+Down | Bottom half |
Ctrl+Opt+U | Top-left quarter |
Ctrl+Opt+I | Top-right quarter |
Ctrl+Opt+J | Bottom-left quarter |
Ctrl+Opt+K | Bottom-right quarter |
Ctrl+Opt+C | Center window |
Ctrl+Opt+R | Restore previous size |
Extensions
Installing Extensions
# From Raycast:
1. Open Raycast
2. Type "Store" or browse at https://www.raycast.com/store
3. Search for extensions
4. Click Install
# Popular extensions:
- GitHub: manage PRs, issues, repos
- Jira: search and create issues
- Notion: search pages, create entries
- Slack: send messages, set status
- Docker: manage containers
- VS Code: open projects
- Spotify: control playback
- Brew: manage Homebrew packages
- npm: search and view packages
- Tailwind CSS: search documentation
- Kill Process: find and kill processes
Extension Categories
| Category | Examples |
|---|
| Developer Tools | GitHub, GitLab, Docker, AWS, Vercel |
| Communication | Slack, Discord, Teams, Linear |
| Productivity | Notion, Todoist, Google Calendar |
| Design | Figma, Color Picker, Icon Search |
| System | Kill Process, Network Info, Bluetooth |
| Utilities | QR Code, Lorem Ipsum, UUID Generator |
| Media | Spotify, YouTube, Apple Music |
| Web | Google Search, MDN Docs, Can I Use |
Configuration
Preferences
# Access: Cmd+, in Raycast
General:
- Hotkey: Set global shortcut (default: Opt+Space)
- Theme: Light, Dark, or System
Extensions:
- Configure per-extension settings
- Set custom shortcuts for any command
- Enable/disable extensions
Advanced:
- Show in Menu Bar
- Auto-update extensions
- Analytics opt-out
Custom Quicklinks
# Create quicklinks for URLs with query placeholders:
Name: Google Search
Link: https://google.com/search?q={Query}
Name: GitHub Search
Link: https://github.com/search?q={Query}
Name: npm Search
Link: https://www.npmjs.com/search?q={Query}
Name: Stack Overflow
Link: https://stackoverflow.com/search?q={Query}
# Quicklinks can also open local applications and files
Advanced Usage
Script Commands
#!/bin/bash
# ~/.config/raycast/scripts/ip-address.sh
# Required Raycast Script Command metadata:
# @raycast.title My IP Address
# @raycast.description Get your public IP address
# @raycast.mode inline
# @raycast.packageName Network
# @raycast.icon 🌐
# @raycast.schemaVersion 1
curl -s https://api.ipify.org
#!/usr/bin/env python3
# @raycast.title Generate UUID
# @raycast.description Generate a random UUID
# @raycast.mode inline
# @raycast.packageName Developer
# @raycast.icon 🔑
# @raycast.schemaVersion 1
import uuid
print(uuid.uuid4())
Building Extensions (TypeScript/React)
# Install the Raycast extension development tools
npm install -g @raycast/api
# Create a new extension
npx create-raycast-extension my-extension
cd my-extension
# Development
npm run dev # Start development server
npm run build # Build for publishing
npm run publish # Publish to store
// src/index.tsx
import { List, Action, ActionPanel, Icon } from "@raycast/api"
export default function Command() {
const items = [
{ title: "First Item", subtitle: "Description" },
{ title: "Second Item", subtitle: "Another one" },
]
return (
<List searchBarPlaceholder="Search items...">
{items.map((item, index) => (
<List.Item
key={index}
title={item.title}
subtitle={item.subtitle}
icon={Icon.Star}
actions={
<ActionPanel>
<Action.CopyToClipboard content={item.title} />
<Action.OpenInBrowser url={`https://example.com/${index}`} />
</ActionPanel>
}
/>
))}
</List>
)
}
AI Commands (Pro)
# Built-in AI capabilities:
- AI Chat: Natural language assistant
- Fix Spelling & Grammar: Select text, trigger command
- Make Shorter/Longer: Rewrite selected text
- Explain Code: Select code, get explanation
- Custom AI Commands: Create your own prompts
# Create custom AI command:
1. Preferences > Extensions > AI Commands
2. Add new command
3. Set prompt template with {selection} and {input} variables
Troubleshooting
| Issue | Solution |
|---|
| Raycast not opening | Check hotkey conflict in System Settings; reset to default Opt+Space |
| Extension not installing | Check internet connection; restart Raycast (Cmd+Shift+R to reload) |
| Clipboard history empty | Enable in Preferences > Clipboard History; check privacy permissions |
| Scripts not executing | Verify file is executable (chmod +x script.sh); check shebang line |
| Window management not working | Grant Accessibility permission in System Settings > Privacy |
| Slow search results | Rebuild search index; exclude large directories in Preferences |
| Hotkey conflicts | Change in Raycast Preferences; disable conflicting app shortcuts |
| Extensions crashing | Update to latest version; check extension logs in Developer menu |
| Spotlight still intercepting | Disable Spotlight shortcut in System Settings > Keyboard Shortcuts |