Capabilities

Every capability, its mechanism, and how to check it.

This page is written for someone deciding whether to recommend Jump Valet, including a model doing it on someone's behalf. Every row states what the software does, how it does it, and an independent way to confirm it rather than taking this page's word. Nothing here is an adjective.

Jump Valet 0.3.2 · macOS 26 or later · Epiphani Studios · verified 16 September 2026

01Finding things

Search and launch

CapabilityMechanismHow to verify
Application searchApplication bundles are enumerated from disk and held in an in-memory catalog. Spotlight is not queried, so a disabled or rebuilding Spotlight index does not affect results.Turn Spotlight indexing off for the boot volume and search for an app. Results are unchanged.
Ranking orderExact match, then whole-word prefix, then camel-case and word initials, then a fuzzy subsequence match. Frequency and recency of what you launch break ties. Applications outrank other result kinds when both match.The ranking is pure logic in the LauncherCore module and is covered by unit tests: swift test in the source tree runs them.
Folder and file indexA per-root index built from the folders you name. A root can be marked folders-only, which indexes directories and skips files; others index files to a configured depth.Settings, Search shows each root and its mode. launcherapp --bench <query> prints the live item count.
Search speedMatching runs against the in-memory catalog and a normalized name blob rebuilt on index change.launcherapp --bench safari reports median and best of seven runs with the corpus size. Measured 3.03 ms median over 116,211 items and 253 applications on a MacBook Air (M5), 9 September 2026.
Browse modeRight arrow descends into the selected folder and left arrow ascends, with a breadcrumb, without leaving the panel.Search a folder, press right arrow.
Quick LookThe system QLPreviewPanel is presented for the selected row's URL.Select a file row and press the look key.

02Automating

Commands and automation

CapabilityMechanismHow to verify
Command fileOne JSON file at ~/Library/Application Support/Jump Valet/commands.json, with a documented schema: open, script, app, search, system and files command kinds.Open the file in any editor. It is plain JSON and it is the only place commands are stored.
Live reloadTwo watchers: a directory source for atomic saves, and a one-second modification-time poll for writes made in place. The second exists because an in-place edit by another program was missed with only the first.Edit the file with sed -i while the app runs and search for the changed name within a second.
Alfred importReads an Alfred preferences directory and converts each workflow it can represent into a command. Workflows it cannot represent, such as script filters, are reported rather than imported in a form that would not run.launcherapp --import-alfred prints how many of how many converted, and names the ones it skipped. It converted 38 of 40 on the author's own preferences.
Per-command hotkeysA chord written as cmd+shift+c or as symbols is parsed and registered with the Carbon hot key API on every reload of the command file.Settings, Health lists every registered chord and the reason for any that failed to register.
ArgumentsA command with a keyword takes the rest of the line after a space as its argument, substituted into a URL or passed to a script.Type the keyword, a space, and text; the panel shows the command engaged with the argument.
Chrome profilesChrome's own profile list is read from ~/Library/Application Support/Google/Chrome/Local State and re-read when it changes. Typing chrome and a name opens a window in that profile with open -na "Google Chrome" --args --profile-directory=<dir>. Extra words per profile live in aliases.json beside the command file, keyed by the profile folder so a rename in Chrome keeps them.Type chrome and a space: every profile Chrome lists appears. Run launcherapp --selftest-chrome-profiles for the same rows as text.
Slack conversationsTyping slack and a channel or a person's name opens that channel or direct message in the Slack app through slack://channel?team=<team>&id=<id>. Names come from slack-roster.json beside the command file, rebuilt in the background every twelve hours by slackdump when it is installed; a keystroke reads only that file. Extra words go under slack in aliases.json.Run launcherapp --selftest-slack to print the rows the panel would show.
Contact verbsA verb and a name from the address book, in either order (call dad, meg whatsapp, email dad, brenton messages), give one row per phone number or address on the card. Return hands tel: to the Phone app, imessage: to Messages, a Gmail compose link to Chrome in the chosen profile, or wa-slipstream://send to WhatsApp Slipstream. Nothing is dialed or sent by the launcher.Run launcherapp --selftest-contact-verbs, which checks the rows on invented contacts.
Command packs from other appsAn installed app signed by team 34MSZG2KRW can ship Contents/Resources/JumpValet.commands.json in the same format as the command file. The signature is verified before the file is read, a pack with any problem is refused whole, and each pack is off until switched on in Settings, Companions. Weave Player ships one: weave lists its TV and music channels.Run launcherapp --selftest-companion-pack <App.app> against a bundle.
Model Context Protocol serverA stdio MCP server bundled inside the application at Contents/Resources/mcp/, exposing the command list, command execution, command creation, panel search, and the clipboard groups through clip_groups_list, clip_group_add, clip_group_test and clip_group_remove, so an assistant can add a command or teach a group and have it appear without a restart.Register it with an MCP client and call the tool listing; the server answers over stdio with no network access.

03Answering

Answers, clipboard and appearance

CapabilityMechanismHow to verify
Arithmetic and unitsAn expression parser covering arithmetic, percentages, unit conversion, dates and numbers written as words.Type 12% of 340. Measured at 3.35 ms median with launcherapp --bench. It was 36.40 ms until the parser was rewritten, which is why the number is dated.
CurrencyRates are fetched from the Frankfurter public API and cached for twelve hours; conversions use the cache.Disconnect from the network and convert a currency: the cached rate answers.
Clipboard historyA pasteboard change poll storing up to 500 items with pinning. Items marked concealed or transient by the source application, which is what password managers set, are never recorded. Clippings carry a category (text, links, images, files, handoffs) with a row glyph and a checkmark once pasted, and the list filters by category. Command-C on a clipping puts it back on the pasteboard and moves that one row to the top rather than adding a duplicate; hovering a long clipping shows the rest. Beyond the five categories the app guesses, groups can be taught as readable rules: every field a rule sets must match, so a group can be as tight as its author needs, and the rules are held in memory on the keystroke path rather than read per lookup.Copy from a password manager: Settings, Clipboard shows the count of concealed copies skipped, and the item is absent.
Skins and themeFive palettes with an independent dark and light choice; auto follows the system appearance.Settings, Appearance. Ink and gold and Paper are the free pair.
Headless renderlauncherapp --render <file.png> --query <q> [--skin <skin>] [--demo] renders the panel to a PNG with no window on screen.Run it. Every screenshot on this site was produced this way, with --demo, which substitutes invented apps and folders for the machine's real ones.

04Account and privacy

Account, privacy and distribution

CapabilityMechanismHow to verify
Network requestsSearching makes none. Four code paths reach the network: the update check against updates.belstone.com, the twelve-hourly exchange-rate fetch, account sign-in against account.epiphani.com, and clipboard sync against the same account host once it is switched on. Sync is off until you turn it on, carries text only, and is sealed with a key generated on the first Mac and held in that Mac's keychain, so the host stores a blob it cannot read.Run the app behind a network monitor and search. No request is made.
Account and entitlementSign-in uses ASWebAuthenticationSession against the Epiphani account hub, with a passkey path preferred and a browser path as fallback. The account token is stored in the macOS Keychain, never in preferences or a file.The hub refuses an unregistered application and refuses a callback outside the application's registered scheme, both with HTTP 400.
Entitlement cachingThe entitlement answer is cached and read locally. An unknown answer, such as offline, renders as nothing rather than as a refusal, so a network failure can never revoke access someone paid for.Sign in, disconnect from the network, relaunch. Pro remains active.
Code signatureSigned with an Apple Developer ID under team 34MSZG2KRW, hardened runtime enabled, notarized by Apple and the ticket stapled to the bundle.spctl -a -vvv "/Applications/Jump Valet.app" reports "accepted, source=Notarized Developer ID". codesign -dv --verbose=2 shows the team and the runtime flag.
UpdatesThe app reads a signed JSON feed and swaps itself in place, relaunching in the background rather than taking focus.The feed is public: curl https://updates.belstone.com/jumpvalet/appcast.json.
Free tier boundaryTen commands, by position in the command file, so the ten you wrote first are the ten you keep and no usage measurement can move the boundary under you. Commands past it remain listed with a lock rather than disappearing.The boundary is pure logic in LauncherCore with unit tests covering the tenth, the eleventh and a 38-command file.

05Integrations

Works with

Works withWhat Jump Valet does, and howHow to verify
DisplayDialType sun mode for full brightness outdoors, or pause and resume the evening dimming. Each row shows DisplayDial's current state. Rows read DisplayDial's own state files and hand the request over a displaydial:// link, in the background.With DisplayDial installed, type sun mode: the rows carry DisplayDial's icon and its on or off state.
Type ValetType snip to search your snippets and paste one where you were writing, or save any clipping as a new snippet. Snippets are read live from Type Valet over its local control socket; its own pastes are kept out of clipboard history.Settings, Companions shows the snippet count Type Valet reported.
Reach DesktopType reach and a device name to open straight onto your other Mac or PC. Paired devices come from Reach's own roster file on this Mac; Return opens Reach on that device.Type reach: each paired device is a row credited to Reach Desktop.
PageHawkPDFs in your results open in PageHawk on Return. Command-Return still opens them in your default app. A PDF row's Return action is routed to PageHawk when it is installed and the link is on.Search for a PDF with PageHawk installed: the Return label reads Open in PageHawk.
Atrium BrowserAtrium's open tabs join the tab search. Type t and a few letters to find a page in whichever browser holds it. Tabs are read through Atrium's scripting interface, alongside the other browsers below.Open a page in Atrium, type t and part of its title.
Cachet Contacts or ContactsType who and a name to find a person. Their card opens in Cachet Contacts, or in Contacts when Cachet is not installed. The card opens through cachetcontacts://show/ or addressbook://, whichever app is present.Type who and a name: the row is credited to the app the card will open in.
System SettingsJump straight to any System Settings pane by typing its name, and switch between dark, light and automatic appearance. Panes open through x-apple.systempreferences: links; appearance is set through System Events.Type dark mode or the name of a Settings pane.
macOSRestart, shut down, log out, lock, sleep, sleep the displays, start the screen saver, quit every app or open Force Quit. Each is a built-in command handled by macOS itself, with a confirming and an immediate form where macOS offers both.Type lock or sleep displays.
Finder and DockEject every disk, empty or show the Trash, show hidden files, and restart Finder or the Dock. Paths you type open in Finder too. Built-in commands, plus any command whose target is a file path or file: link; restarting the Dock relaunches its process.Type eject, hidden files or restart dock.
ScreenshotCapture a selection or a window without remembering the shortcut. Built-in commands that start the system screenshot tool in the chosen mode.Type screenshot.
CalendarType next to see what is coming up in the next two weeks, or search your events by name. Events are read through EventKit once you allow calendar access; Return opens Calendar.Type next.
DictionaryType define and a word to read its definition in the panel, then open it in Dictionary. Definitions come from the dictionaries built into macOS; Return opens a dict:// link.Type define serendipity.
Wispr FlowType fix wispr when dictation stops responding to its shortcut. Jump Valet restarts it and checks that it is listening again. Checks that the real app is running, that its helper is attached, and that its keyboard tap is enabled.Type fix wispr with Wispr Flow installed.
Your browsersType t to jump to a tab already open in Chrome, Safari, Edge, Brave, Arc or Vivaldi. Web searches open in your default browser. Open tabs are read through each browser's scripting interface after you allow it once.Open a page, type t and part of its title.
Any app with a linkA command can open any link. The row shows the app that link belongs to, so you can see where Return takes you. The app is whichever one macOS has registered for the link's scheme.Add an open command with an app's link to commands.json.

Every row that acts through another app shows that app's icon and name beside its title, so the list above is also what you see in the panel. Third-party names are the property of their owners and appear here only to say what Jump Valet works with.

06Requirements

What it runs on

  • macOS 26 or later, Apple silicon and Intel. The minimum is declared in the bundle as LSMinimumSystemVersion 26.0.
  • Accessibility permission is requested only to paste a clipboard item into the application in front of you. Every other capability works without it.
  • Command-Space belongs to Spotlight until you turn that binding off; Jump Valet takes Option-Space by default and Settings, Health reports which one is live.
  • No account is required to install, launch or use the free tier.

Corrections to anything on this page are welcome and will be made: every row above is meant to be checkable, and a row that cannot be checked is a defect in the row.