Fast, local-first text expansion for macOS — open source code with paid, signed builds.
Salsa turns short triggers (like ;addr) into longer text anywhere you type. It’s built in Rust + GPUI and designed to be fast, reliable, and respectful of privacy.
- Works everywhere: native apps, browsers, Electron — wherever standard text input exists.
- Local-first: no accounts, no required sync, no telemetry by default.
- Deterministic engine: consistent expansions with low latency.
- Open source code: auditability and community contributions.
- Paid official builds: signed + notarised macOS apps with auto-updates.
- System-wide expansion with predictable matching.
- Test Kitchen: live playground with match reasoning and undo preview.
- Context-aware snippets: scope by app and window title.
- Sauce Variables:
{{date}},{{time}},{{clipboard}},{{choice:A|B|C}},{{fill:Name}},{{calc:...}}. - Salsa Bar: fast command palette for search and insert.
- Safe by default: never expands in secure fields.
rustup toolchain install nightly
rustup run nightly cargo build --release
rustup run nightly cargo run -p salsa-appYou will need Accessibility (and possibly Input Monitoring) permissions for system-wide expansion.
- GPUI shell UI is wired with a snippet list and search field (placeholder interactions).
- CLI supports add/list/delete/lint for local snippets.
- Agent scaffolding exists; event capture/injection is not wired yet.
rustup run nightly cargo run -p salsa-app -- add --trigger ";addr" --label "Address" --content "123 Main St"
rustup run nightly cargo run -p salsa-app -- list
rustup run nightly cargo run -p salsa-app -- lintOfficial builds are signed + notarised and include one-click install, auto-updates, and priority support. These are paid to fund development.
- Official Build (one-time): A$39 / US$29
- Supporter (one-time): A$79 / US$59
Community builds are welcome, but they are not signed/notarised and should not be represented as official.
core: deterministic matching engine + templatingagent: background service for event capture + injectionapp: GPUI UI for settings, Salsa Bar, and Test Kitchenstore: SQLite persistence + migrationsmacos: platform bindings and permission helpers
Salsa listens only for short triggers. It does not log raw typing, snippet content, or expanded output. Typed streams are never persisted.
We accept contributions under the DCO (Developer Certificate of Origin). See spec.md for the working agreement and design constraints. If you’re shipping a build, please respect the Salsa trademarks and do not imply official status.
Apache-2.0. See LICENSE.