Skip to content

Latest commit

 

History

History
127 lines (104 loc) · 6.86 KB

COMPAT.md

File metadata and controls

127 lines (104 loc) · 6.86 KB

Raycast API compatibility

What Floe's runtime does with each part of Raycast's API. What Floe does not do yet lists the gaps, and the README has the test against real extensions.

Supported works as in Raycast. Partial works, with the difference in Notes. Not yet does nothing, or fails with a message.

Views

API Status Notes
List Partial A controlled searchText and throttle are ignored. The list's own filtering matches each typed word as text in the title, subtitle or keywords. Section subtitles are not shown.
List.Item, List.Item.Detail, List.Section Supported
List.EmptyView Partial Its icon is not shown.
List.Dropdown, Grid.Dropdown Supported
Grid Partial As List.
Detail Supported
Form Partial enableDrafts, storeValue on fields, onFocus, onBlur and a field ref's focus() do nothing. Form.LinkAccessory is not shown.
Form fields Partial Form.DatePicker ignores min and max. Form.Dropdown shows no section titles or item icons. info shows only on Form.TextField.
MenuBarExtra Partial An item's shortcut and alternate are not shown.
ActionPanel, sections and submenus Supported
Action, Action.Style Supported
Action.OpenInBrowser, Open, OpenWith, CopyToClipboard, Paste, Push, ShowInFinder, SubmitForm, ToggleQuickLook, PickDate, CreateSnippet, CreateQuicklink Supported
Action.Trash Partial As trash.
Action.InstallMCPServer Not yet Shows a toast that Floe can't install MCP servers.
useNavigation Supported

Feedback and the window

API Status Notes
showToast, Toast Supported
showHUD Partial clearRootSearch and popToRootType are ignored.
confirmAlert Partial icon is not shown.
closeMainWindow Partial clearRootSearch and popToRootType are ignored.
popToRoot Partial clearSearchBar is ignored.
clearSearchBar Partial forceScrollToTop is ignored.

System

API Status Notes
open, showInFinder Supported
trash Partial Floe moves items into ~/.Trash itself, so Finder's Put Back does not work for them.
getApplications, getDefaultApplication, getFrontmostApplication Supported
getSelectedText, getSelectedFinderItems Supported
Clipboard.copy, Clipboard.clear Supported
Clipboard.paste Partial From a menu bar or background command it only copies, and a HUD says to press ⌘V.
Clipboard.read, Clipboard.readText Partial offset reads Floe's clipboard history, so it finds nothing while that history is off.
captureException Partial The error goes to the command's log. Nothing is reported.

Storage, preferences and arguments

API Status Notes
LocalStorage Supported
Cache Supported
getPreferenceValues, every preference type Supported
openExtensionPreferences Supported
openCommandPreferences Partial Opens the extension's page in Settings, as openExtensionPreferences does.
Arguments Partial Asked for in a form before the command runs, not in the search bar.
launchType, launchContext, fallbackText Supported

Environment and commands

API Status Notes
environment Partial textSize is always medium and raycastVersion always 1.100.0. appearance is read once, when the command starts.
launchCommand Supported
updateCommandMetadata Supported
Deeplinks Partial A raycast://extensions/… link that an extension opens runs the command in Floe, with its arguments, when that command is installed and enabled (and its owner matches, when the extension names one). A menu bar command already in the menu bar is left as it is. launchContext and fallbackText in the link are ignored. Any other link, and the same link opened from a browser or another app, goes to the system.

AI, sign-in, browser and windows

API Status Notes
AI.ask Partial Needs an AI source in Settings. creativity is ignored, and model only guides which model the source uses.
AI tools (tools in the manifest) Not yet
OAuth.PKCEClient Partial Sign-in goes through Raycast's redirect service for now. GitHub and GitLab use gh and glab. providerIcon and description are not shown.
BrowserExtension Partial Read through AppleScript from Safari, Dia, Helium, Chrome, Brave, Edge and Vivaldi. Other browsers are not read. Tabs have no favicon.
WindowManagement Not yet Every call fails, and environment.canAccess says no.

Icons, images, colors and keyboard

API Status Notes
Icon Partial Drawn as SF Symbols. An icon with no close symbol shows a dashed square.
Image Partial fallback is ignored, and the only mask drawn is the circle.
Color Partial Raycast's named colors and hex values work. Dynamic colors ({ light, dark }) are ignored.
Keyboard.Shortcut, Keyboard.Shortcut.Common Supported
API 1.x names and render() Supported

@raycast/utils

Floe runs the copy the extension installed, against the API above. A helper works as far as the API it calls does.

API Status Notes
usePromise, useCachedPromise, useFetch, useCachedState, useLocalStorage, useFrecencySorting, useStreamJSON Supported
useExec, runAppleScript, useSQL, executeSQL Supported
showFailureToast, getFavicon, getAvatarIcon Supported
useForm Partial Errors show, but the first invalid field is not focused.
useAI Partial As AI.ask.
withAccessToken, OAuthService Partial As OAuth.PKCEClient.
createDeeplink Partial As deeplinks.

Command modes

API Status Notes
view Supported
no-view Supported
menu-bar Partial You add each one by hand. None starts at launch.
interval Supported

Node and npm

API Status Notes
node-fetch, undici, ws Supported
.wasm imports Supported
react-dom Partial Only unstable_batchedUpdates and flushSync do anything. createPortal throws.
react-dom/server Not yet
better-sqlite3 Partial Runs on Bun's SQLite. Encrypted databases do not open.
Other V8 native addons Not yet Bun cannot load them.
Install scripts Not yet Floe installs extensions with scripts off.
swift: helpers Partial Built on the first call, which takes a few minutes and needs Apple's Swift tools.
rust: helpers Not yet Every call fails, as in Raycast on macOS.