raycast / raycast/extensions

[Feature Request] Supported CLI/local API for headless configuration by agents

Open
#30,724 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
7.8k
Forks
6.9k
Avg merge
2d 6h
Merged PRs (30d)
442

Description

Description

Problem

Raycast hotkeys, aliases, applications, and Quicklinks can currently only be configured through the UI. An agent can inspect installed apps and check shortcut conflicts, but applying settings requires disruptive UI automation that steals keyboard/mouse focus and needs broad Accessibility permissions.

Request

Add a supported CLI or permissioned local API that can:

  • List apps, commands, and Quicklinks using stable identifiers
  • Read, set, and remove hotkeys and aliases
  • Detect shortcut conflicts
  • Create or update Quicklinks
  • Apply declarative configuration idempotently
  • Support JSON output, dry runs, and noninteractive operation

Example

raycast shortcuts check "option+shift+c"
raycast hotkeys set --target "app:com.google.Chrome" --shortcut "option+shift+b"
raycast quicklinks upsert --name "Google Calendar" --url "https://calendar.google.com"
raycast config apply --file raycast.json --dry-run

The interface should work in the background without opening or controlling Raycast’s UI. Suggested safeguards include explicit user opt-in, scoped read/write access, refusing conflicts by default, atomic updates, audit logging, and never exposing secrets.

Who will benefit from this feature?

Coding agents, dotfile managers, workstation provisioning, extension testing, and accessibility workflows.

Anything else?

This request is broader than the partial capabilities discussed in #117, #175, #348, and #10143. It focuses on a supported, noninteractive configuration interface for both inspection and safe, idempotent changes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review related issues #117, #175, #348, and #10143, then locate the existing configuration and extension entry points; the payload names no files or tests. Done means a supported noninteractive interface covers inspection and safe, idempotent updates with JSON, dry-run, conflict handling, and scoped access.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, cli, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.