[Feature Request] Supported CLI/local API for headless configuration by agents
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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