Lifecycle
A command is typically launched, runs for a while, and then is unloaded.
Launch
When a command is launched in Raycast, the command code is executed right away. If the extension exports a default function, this function will automatically be called. If you return a React component in the exported default function, it will automatically be rendered as the root component. For commands that don't need a user interface (mode
property set to "no-view"
in the manifest), you can export an async function and perform API methods using async/await.
There are different ways to launch a command:
The user searches for the command in the root search and executes it.
The user registers an alias for the command and presses it.
Another command launches the command via
launchCommand
.The command was launched in the background.
A Form's Draft was saved and the user executes it.
A user registers the command as a fallback command and executes it when there are no results in the root search.
A user clicks a Deeplink
Depending on how the command was launched, different arguments will be passed to the exported default function.
LaunchProps
Property | Description | Type |
---|---|---|
arguments* | Use these values to populate the initial state for your command. | |
launchType* | The type of launch for the command (user initiated or background). | |
draftValues | When a user enters the command via a draft, this object will contain the user inputs that were saved as a draft. Use its values to populate the initial state for your Form. | |
fallbackText | When the command is launched as a fallback command, this string contains the text of the root search. |
|
launchContext | When the command is launched programmatically via |
Unloading
When the command is unloaded (typically by popping back to root search for view commands or after the script finishes for no-view commands), Raycast unloads the entire command from memory. Note that there are memory limits for commands, and if those limits are exceeded, the command gets terminated, and users will see an error message.
Last updated