Saqlain Abbas

saqlain-abbas.md / blog19 February 2026, corrected 3 October 2026

OmniRecall: an assistant at the cursor

See it on the home page

Every developer knows the pain. You're deep in a coding session, you hit a question, and suddenly you're opening a browser, switching tabs, loading ChatGPT, typing a prompt and waiting. By the time you get your answer, you've lost your flow state entirely.

I wanted something different: an AI assistant that appears exactly where I need it, answers, and disappears when I'm done. That's why I built OmniRecall.

What it is

The OmniRecall window, opened at the cursor with Alt+Space

OmniRecall is a small, local-first desktop app for AI chat with document context. It runs quietly in the system tray and appears at your cursor when you press a keyboard shortcut, like Spotlight for AI.

  • Press Alt+Space and the window opens right where you're working.

  • It supports five providers: Gemini, OpenAI, Claude, GLM, and Ollama for local models.

  • You can add PDFs, text files, markdown or code and ask questions with that context.

  • Your documents and conversations stay on your machine. Nothing leaves it unless you choose a cloud provider.

  • It has dark and light themes.

Why Tauri and Rust

I chose Tauri over Electron for two reasons. There is no Chromium runtime to ship with the installer or to boot at launch. And Tauri works closely with the OS, which gives OmniRecall native window management and system tray behavior.

The UI is built with Preact and TypeScript, which keeps the frontend bundle small while it still feels like writing React. Tailwind CSS handles styling, with a theme system for dark and light modes.

Answering from your documents

Document Q&A uses retrieval-augmented generation:

  1. Files are parsed and split into chunks.

  2. The chunks are converted to vector embeddings.

  3. When you ask a question, the relevant chunks are found by similarity search.

  4. Those chunks are added to the prompt, so the answer is grounded in your files.

Large documents are indexed for search when a Gemini API key is set.

What was hard

Two platforms

Building for both Windows and Linux meant dealing with different system APIs for global hotkey registration, placing the window at the cursor, the system tray and file access.

Rust's conditional compilation, #[cfg(target_os)], made this manageable, but testing across platforms was still the biggest time sink.

Many providers

Supporting several AI providers needed a clean abstraction layer. I designed a trait-based system in Rust that handles their different authentication methods, streaming and non-streaming responses, token counting, rate limiting and errors.

Where it runs

OmniRecall has releases for Windows and Linux. macOS support is planned.

GitHub · Latest release · The short version

A portfolio, and the text file behind it.