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.0 · macOS 26 or later · Epiphani Studios · verified 9 September 2026

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.

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, Doctor 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.
Model Context Protocol serverA stdio MCP server bundled inside the application at Contents/Resources/mcp/, exposing the command list, command execution, command creation and panel search, so an assistant can add a command that appears without a restart.Register it with an MCP client and call the tool listing; the server answers over stdio with no network access.

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.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.

Account, privacy and distribution

CapabilityMechanismHow to verify
Network requestsSearching makes none. Three code paths reach the network: the update check against updates.belstone.com, the twelve-hourly exchange-rate fetch, and account sign-in against account.epiphani.com.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.

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 the doctor 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.