For the complete documentation index, see llms.txt. This page is also available as Markdown.

Preferences

Use the Preferences API to make your extension configurable.

Preferences are configured in the manifest per command or shared in the context of an extension.

Required preferences need to be set by the user before a command opens. They are a great way to make sure that the user of your extension has everything set up properly.

Help for Required Preferences

Setup instructions from help.md beside the required preferences form

Add an optional help.md file to the root of your extension, next to package.json, to explain how to fill in required preferences. Raycast renders its Markdown beside the setup form when a command or tool needs required preferences that haven't been set. The same help file is used throughout the extension, so include any instructions needed for both shared and command-specific preferences.

For example, a help.md file for an extension that requires an API key could contain:

The filename is case-insensitive when building; help.md, Help.md, and HELP.md are all supported.

Keep this file focused on setup steps, such as obtaining credentials or enabling a setting in another application. Use README.md for the extension's general documentation. When help content is available, the setup form displays it in place of the About this Extension link to the README.

API Reference

getPreferenceValues

A function to access the preference values that have been passed to the command.

Each preference name is mapped to its value, and the defined default values are used as fallback values.

Signature

You don't need to manually set preference types as an interface since it is autogenerated in raycast-env.d.ts when you run the extension.

Example

Return

An object with the preference names as property key and the typed value as property value.

Depending on the type of the preference, the type of its value will be different.

Preference type
Value type

textfield

string

password

string

checkbox

boolean

dropdown

string

appPicker

file

string

directory

string

openExtensionPreferences

Opens the extension's preferences screen.

Signature

Example

Return

A Promise that resolves when the extensions preferences screen is opened.

openCommandPreferences

Opens the command's preferences screen.

Signature

Example

Return

A Promise that resolves when the command's preferences screen is opened.

Types

Preferences

A command receives the values of its preferences via the getPreferenceValues function. It is an object with the preferences' name as keys and their values as the property's values.

Depending on the type of the preference, the type of its value will be different.

Preference type
Value type

textfield

string

password

string

checkbox

boolean

dropdown

string

appPicker

file

string

directory

string

Raycast provides a global TypeScript namespace called Preferences which contains the types of the preferences of all the commands of the extension.

For example, if a command named show-todos has some preferences, its getPreferenceValues's return type can be specified with getPreferenceValues<Preferences.ShowTodos>(). This will make sure that the types used in the command stay in sync with the manifest.

Last updated