Comment on page
Environment
The Environment APIs are useful to get context about the setup in which your command runs. You can get information about the extension and command itself as well as Raycast. Furthermore, a few paths are injected and are helpful to construct file paths that are related to the command's assets.
Contains environment values such as the Raycast version, extension info, and paths.
import { environment } from "@raycast/api";
export default async function Command() {
console.log(`Raycast version: ${environment.raycastVersion}`);
console.log(`Extension name: ${environment.extensionName}`);
console.log(`Command name: ${environment.commandName}`);
console.log(`Command mode: ${environment.commandMode}`);
console.log(`Assets path: ${environment.assetsPath}`);
console.log(`Support path: ${environment.supportPath}`);
console.log(`Is development mode: ${environment.isDevelopment}`);
console.log(`Appearance: ${environment.appearance}`);
console.log(`Text size: ${environment.textSize}`);
console.log(`LaunchType: ${environment.launchType}`);
}
Property | Description | Type |
---|---|---|
appearance* | The appearance used by the Raycast application. | "light" or "dark" |
assetsPath* | The absolute path to the assets directory of the extension. | string |
commandMode* | The mode of the launched command, as specified in package.json | "no-view" or "view" or "menu-bar" |
commandName* | The name of the launched command, as specified in package.json | string |
extensionName* | The name of the extension, as specified in package.json | string |
isDevelopment* | Indicates whether the command is a development command (vs. an installed command from the Store). | boolean |
launchType* | The type of launch for the command (user initiated or background). | |
raycastVersion* | The version of the main Raycast app | string |
supportPath* | The absolute path for the support directory of an extension. Use it to read and write files related to your extension or command. | string |
textSize* | The text size used by the Raycast application. | "medium" or "large" |
canAccess* | Returns whether the user has access to the given API. | (api: unknown) => boolean |
Checks whether the user can access a specific API or not.
function canAccess(api: any): bool;
import { AI, showHUD, environment } from "@raycast/api";
import fs from "fs";
export default async function main() {
if (environment.canAccess(AI)) {
const answer = await AI.ask("Suggest 5 jazz songs");
await Clipboard.copy(answer);
} else {
await showHUD("You don't have access :(");
}
}
A Boolean indicating whether the user running the command has access to the API.
Gets the selected items from Finder.
async function getSelectedFinderItems(): Promise<FileSystemItem[]>;
import { getSelectedFinderItems, showToast, Toast } from "@raycast/api";
export default async function Command() {
try {
const selectedItems = await getSelectedFinderItems();
console.log(selectedItems);
} catch (error) {
await showToast({
style: Toast.Style.Failure,
title: "Cannot copy file path",
message: String(error),
});
}
}
A Promise that resolves with the selected file system items. If Finder is not the frontmost application, the promise will be rejected.
Gets the selected text of the frontmost application.
async function getSelectedText(): Promise<string>;
import { getSelectedText, Clipboard, showToast, Toast } from "@raycast/api";
export default async function Command() {
try {
const selectedText = await getSelectedText();
const transformedText = selectedText.toUpperCase();
await Clipboard.paste(transformedText);
} catch (error) {
await showToast({
style: Toast.Style.Failure,
title: "Cannot transform text",
message: String(error),
});
}
}
A Promise that resolves with the selected text. If no text is selected in the frontmost application, the promise will be rejected.
Property | Description | Type |
---|---|---|
path* | The path to the item | string |
Indicates the type of command launch. Use this to detect whether the command has been launched from the background.
Name | Description |
---|---|
UserInitiated | A regular launch through user interaction |
Background | Scheduled through an interval and launched from background |
Last modified 6mo ago