Onin is a modern productivity tool designed to keep your hands on the keyboard. Inspired by tools like Raycast and uTools, Onin provides a blazing fast, extensible interface to launch apps, search files, and run commands. Built with Tauri and SvelteKit, it combines the performance of Rust with the flexibility of modern web technologies.
Onin is more than just a launcher; it's a platform. With a powerful Plugin SDK, developers can extend its capabilities to fit any workflow.
Download the latest version from GitHub Releases
If you encounter the "Onin is damaged and can't be opened" error when launching the app:
This is a common issue with apps not signed by Apple. To fix it, run the following command in your terminal:
xattr -cr /Applications/Onin.app(Make sure to move the app to your Applications folder first, or adjust the path provided in the command)
- ⚡ Blazing Fast — Native performance powered by Rust and Tauri
- 🔌 Extensible — Rich plugin system supporting any web technology (React, Vue, Svelte, etc.)
- 🎨 Beautiful UI — Polished, modern interface with smooth animations
- ⌨️ Keyboard First — Every action is just a few keystrokes away
- 🛠️ Developer Friendly — Easy-to-use SDK for creating custom extensions
- Node.js >= 18
- pnpm >= 8
- Rust (latest stable)
# Install dependencies
pnpm install
# Development
pnpm dev # Web Dev Mode (http://localhost:1420)
pnpm tauri dev # Desktop App (First build takes 3-10 mins)
pnpm dev:demo # SDK Demo (http://localhost:5174)pnpm build # Build all packages
pnpm build:sdk # Build SDK onlyThis is a Monorepo managed by pnpm workspaces:
packages/
├── app/ # Main Application (Tauri + SvelteKit)
│ └── docs/ # App Documentation
├── sdk/ # Plugin SDK (published as onin-sdk)
│ ├── docs/ # SDK Documentation
│ └── examples/ # Usage Examples
└── demo/ # SDK Test Playground
| Topic | Link |
|---|---|
| API Documentation | API.md |
| Plugin System | PLUGIN_COMMAND_USAGE.md |
| Window Management | WINDOW_LIFECYCLE_FINAL.md |
| SDK Guide | SDK README |


