Skip to content

Xoshbin/asyar-launcher

Repository files navigation

Asyar

Local-First Cross platform open-source alternative to Raycast.

Asyar is a fast, extensible, local-first command launcher for macOS, Windows, and Linux. No account. No cloud. No subscription. Just a blazing-fast launcher that stays entirely on your machine.

Built with Tauri v2 + Rust and Svelte 5 — not Electron.

Asyar-github.mp4

Why Asyar?

Raycast is great. But when I moved to a new machine, I hit a wall: syncing my settings and installed extensions required a paid plan. And that plan was bundled with an AI subscription — for models I already pay for elsewhere.

I didn't need a new AI. I needed my snippets, my extensions, and my shortcuts to follow me between devices.

That one missing feature — free, local backup and restore — is what started this project. Asyar gives you full control over your data: export everything to a local file, carry it to any machine, and restore it instantly. No account. No subscription. No cloud you didn't ask for.


Asyar vs. The Alternatives

Asyar Raycast Alfred
Open Source
Local-First (data never leaves device)
No Account Required ❌ (Pro features)
No Cloud Required
Free Extensions Freemium Paid Powerpack
Linux Support
Built on Electron
Native Rust Backend
Reactive Svelte 5 UI
Extension Sandboxing

Tiny Footprint. Native Performance.

Asyar is built with Tauri + Rust instead of Electron. That means:

  • Significantly less RAM — no bundled Chromium, no V8 runtime sitting idle
  • Instant startup — the Rust backend initializes in milliseconds
  • Real OS integration — native APIs for app indexing, clipboard, global hotkeys, and accessibility
  • Secure by default — extensions run in isolated iframes; a broken extension can't crash the launcher

Native performance, web flexibility — Rust does the heavy lifting, Svelte 5 keeps the UI snappy.


Features

  • Application Launcher — Find and launch any installed application instantly
  • AI Chat — Built-in AI assistant with streaming responses, conversation history, and configurable provider/model settings
  • Calculator — Instant math evaluation with currency conversion, directly in the search bar
  • Clipboard History — Search and reuse anything you've copied
  • Snippets — Text snippet expansion, including background text expansion without opening the launcher
  • Shortcuts — Define and run custom keyboard-triggered commands
  • Portals — Open URLs and web tools directly from the launcher
  • Context Modes — Type prefixes (ask ai, a URL, etc.) to switch the launcher into a specialized mode; visual chips indicate the active context
  • Create Extension — Scaffold a new extension from a template without leaving the launcher
  • Themes — Customize the launcher's appearance with built-in themes or create your own
  • Backup & Restore — Export and import your data locally; optional password encryption for sensitive fields
  • Extension Store — Browse and install extensions from asyar.org
  • Live Tray Menu — Extensions can show real-time status in your system tray
  • Cross-Platform without Compromise — First-class citizen on macOS, Windows, and Linux — not a port
  • Keyboard-First — Global hotkey (Cmd+K / Ctrl+K) to summon from anywhere

Privacy Scorecard

Asyar
Data stored locally only
Works fully offline
No telemetry by default
No account or login required
No subscription to unlock features
Source code auditable ✅ (AGPLv3)
Extensions run in sandboxed iframes
Sensitive backup fields encrypted

OS Support Matrix

Feature macOS Windows Linux (X11)*
Spotlight
Applications
Application Icons
AI Chat
Calculator
Clipboard History
Context Modes
Create Extension
Portals
Shortcuts
Snippets
Store
Installed Extensions
Backup & Restore
  • Note on Linux Wayland: Global input-heavy features like Snippets do not work on Wayland (e.g., default Ubuntu 22.04+, Fedora 25+, KDE Plasma 6).

Detailed Platform Compatibility

(Asyar is fully tested and verified on macOS, Windows 11, and Debian)

  • macOS: Fully supported and tested. Global features like Snippets require Accessibility permissions.
  • Windows: Fully tested on Windows 11. Supported on Windows 10 out-of-the-box.
  • Linux (X11): Fully tested on Debian. Supported on all other X11 sessions (Mint, MATE, Xfce, Ubuntu on Xorg).
  • Linux (Wayland): ❌ Not supported for global hooks. Workaround: Log out and select an "Xorg" or "X11" session at your login screen.

Tech Stack

Layer Technology Why It Matters
Backend Rust (Tauri v2) Native OS integration, memory safety, no Electron overhead
Frontend Svelte 5 Fine-grained reactivity, minimal bundle size, instant renders
Extensions TypeScript + any web framework Build with Svelte, React, Vue, or vanilla JS — sandboxed in iframes
Extension Store asyar.org Browse, publish, and install community extensions

How Extensions Work

Asyar's power comes from its extension system. Extensions add commands to the launcher, contribute live search results, and open rich UI panels.

  • Built-in extensions run natively alongside the app for maximum speed
  • Installed extensions run in secure sandboxes — they can't crash the app or access other extensions' data
  • Build your own with the Asyar SDK using any web framework (Svelte, React, Vue, or vanilla JS)

Extension Security Model

Raycast gives every extension full Node.js access — filesystem, network, child processes — with no restrictions. Asyar takes a different approach: extensions only get the permissions they declare, enforced at two layers.

Every installed extension declares the permissions it needs in its manifest.json. At runtime, those declarations are enforced twice:

  1. Frontend gate — the IPC router intercepts every extension call and checks it against the manifest before it ever reaches the backend
  2. Rust gate — the permission registry enforces the same rules again at the Rust layer, so a compromised frontend can't bypass security
Permission What it grants
clipboard:read / clipboard:write Access the system clipboard
fs:read / fs:write Read or write files
network Make HTTP requests
shell:execute Run shell commands
shell:open-url Open URLs in the browser
notifications:send Show system notifications
store:read / store:write Persist extension data

On top of permission gating, each installed extension runs in an isolated iframe with its own browsing context — no access to the host DOM, no access to other extensions' data, and a strict Content Security Policy that prevents loading external scripts. All communication flows through a typed postMessage bridge; malformed messages are rejected.

The result: users can install community extensions without trusting them with full system access.


Build an Extension

npm install -g asyar-sdk

The asyar CLI handles the full workflow — scaffolding, development, building, and publishing:

asyar dev        # development mode with hot reload
asyar build      # production build
asyar publish    # package and publish to the store

See the Extension Development Guide for the full walkthrough.


AI Chat

Asyar includes a built-in AI assistant accessible directly from the launcher. Type ask ai, ai, or chat to enter AI mode, or trigger it from any search result.

  • BYOK (Bring Your Own Key) — connect your existing API key from OpenAI, Anthropic, or any compatible provider; no Asyar account or AI subscription needed
  • Streaming responses — replies appear word-by-word as they're generated
  • Conversation history — browse and resume past conversations
  • Configurable provider & model — set your preferred AI provider and model in AI Chat settings
  • Your key, your data — requests go directly from your device to your provider; nothing routes through Asyar servers

Context Modes

Typing certain prefixes transforms the launcher into a specialized mode:

Prefix Mode
ask ai, ai, chat AI Chat
A URL or portal trigger Portal / web view

An active context is shown as a chip in the search bar. Press Escape to exit the current context and return to normal search.


Snippets

Define reusable text snippets and expand them anywhere:

  • In-launcher — search for a snippet and paste it into the focused app
  • Background expansion — type a snippet keyword in any app and it expands automatically, without opening the launcher (requires Accessibility permissions on macOS)

Backup & Restore

Asyar lets you export and import your data locally — no account required.

Go to Settings → Backup to:

  • Export — choose which categories to include (snippets, clipboard history, extensions, etc.), optionally set a password to encrypt sensitive fields (like API keys), and save a .zip archive to disk.
  • Restore — open a backup file, preview what's inside (item counts and conflicts per category), choose a conflict strategy (replace, merge, or skip) per category, then apply.

How sensitive data is handled: if a backup contains sensitive fields and no password is set, those fields are stripped from the export automatically. When a password is provided, the archive is encrypted and the password is required to restore it.

Cloud sync and account-based backup are intentionally out of scope — they will live in a future Account tab.


Contributing

We welcome contributions! To set up the full development environment:

git clone https://github.com/Xoshbin/asyar.git
cd asyar
node setup.mjs

This clones all repositories, links the SDK, installs dependencies, and verifies the setup in one command. See the asyar repo for the full development guide.

For architecture details, see docs/ARCHITECTURE.md. For release guidelines, see docs/RELEASING.md.

Recommended IDE

VS Code + Svelte + Tauri + rust-analyzer


License

Distributed under the AGPLv3 License. See LICENSE for more information.

About

Local-First Cross platform open-source alternative to Raycast.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors