mcp server
Paloma
An extensible desktop launcher that puts search, actions, and AI behind one shortcut.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 26, 2026Paloma is an extensible desktop launcher that puts search, actions, and AI behind a single global shortcut. Search directly for an app or file, or describe what you need in your own words. Paloma can use its tools to carry the task through—not just tell you what to do—and extensions expand what it can find and do.
[!IMPORTANT] Paloma is under active development. Expect changes to the interface, plugin protocols, and stored data before the first stable release.
Highlights
- Work in parallel. Run multiple AI tasks at the same time without one blocking another.
- Use the models you want. Change models whenever you like, including in the middle of a conversation.
- Choose your AI service. OpenAI and Anthropic are included, and provider plugins can add other services.
- Expand what Paloma can do. Add new search sources and actions through extensions, or connect tools from MCP servers. Enable only what you want to use.
- Action with your consent. Paloma pauses before uncertain actions run on your system. You decide what to allow once, what to remember, and when a chat can continue without asking.
Platform support
| Platform | Availability | Requirements |
|---|---|---|
| Linux | Build from source | A compatible Wayland desktop is required. See the Linux installation requirements below. |
| macOS | DMG | Apple silicon and macOS 26.5 or later. The first launch requires one-time approval in macOS settings. |
| Windows | ZIP | Windows 10 version 1809 or later on an x64 PC. |
Install
Linux
Linux support is currently tested on Fedora with KDE Plasma.
The Linux application requires:
- Rust 1.94 or later;
- GTK 4.22 or later, libadwaita 1.9 or later, and GTK4 Layer Shell;
- a Wayland compositor with Layer Shell support;
- an XDG desktop portal backend with Global Shortcuts support; and
wl-clipboardfor clipboard history (optional).
Install a release build for the current user:
./scripts/install-linux.sh
The script installs Paloma to ~/.local/bin and adds its desktop entry. To
remove both:
./scripts/install-linux.sh --uninstall
On Linux, your desktop may ask you to approve the global shortcut the first time Paloma starts.
macOS
Download the latest DMG from GitHub Releases. Current builds are ad-hoc signed, so macOS requires you to approve Paloma in System Settings → Privacy & Security the first time you open it.
Windows
Download the latest Paloma-<version>-x64.zip from
GitHub Releases. Extract all files to a folder, then launch
Paloma through Paloma.exe. Keep all extracted files in the same folder.
Plugins
Paloma provides these optional plugins as separate downloads:
| Plugin | Type | What it adds | Installation |
|---|---|---|---|
| Amazon Bedrock | Provider | Adds foundation models through the Bedrock Converse API. Supports a long-term Bedrock API key or locally configured AWS credentials. | Install Amazon Bedrock |
| DeepSeek | Provider | Adds DeepSeek models through the official API. A DeepSeek API key is required. | Install DeepSeek |
| WebFetch | Extension | Lets models read public web pages as markdown, plain text, or raw HTML. Useful for models without built-in web search, such as DeepSeek. | Install WebFetch |
Installed plugins are managed under Settings → Plugins.
Extend Paloma
Paloma plugins can be written in any language using the provided protobuf schemas:
- Extension plugins add new search capabilities and tools. Start with the extension schema and code example.
- Provider plugins add new LLM providers. Start with the provider schema and code example.
See the core documentation for the architecture, protocols, authentication flows, and permission workflow.
Development
Linux
Development is currently tested on Fedora with KDE Plasma. Install the build dependencies:
sudo dnf install gcc pkgconf-pkg-config \
gtk4-devel libadwaita-devel gtk4-layer-shell-devel
Rust 1.94 or later is required. Build the default workspace and start the Linux application:
cargo build
cargo run
macOS
Rust 1.94 or later and Xcode are required. Generate the Swift bindings, then open the project:
scripts/build-swift-bindings.sh --debug
open gui/macos/Paloma/Paloma.xcodeproj
Build and run the Paloma scheme in Xcode. Subsequent builds refresh the Rust
library and Swift bindings automatically.
Windows
Windows development requires:
- Windows 10 version 1809 (build 17763) or later;
- Rust 1.94 or later;
- the .NET 10 SDK; and
- Microsoft C++ Build Tools, including the Desktop development with C++ workload.
Build and start Paloma from the repository root:
dotnet run --project gui/windows/Paloma/Paloma.csproj
Run the Windows frontend tests with:
dotnet test gui/windows/Paloma.Tests/Paloma.Tests.csproj
To create the Windows release ZIP:
./scripts/release-windows.ps1
The script builds for the current machine's architecture and writes
target/windows/Paloma-<version>-<arch>.zip.
Checks
cargo +nightly fmt --all -- --check
cargo test --workspace
cargo clippy --workspace --all-targets
Project structure
| Path | Contents |
|---|---|
core/ | Shared runtime, persistence, plugin host, and UniFFI API |
gui/linux/ | GTK4 and libadwaita frontend |
gui/macos/ | SwiftUI frontend and Xcode project |
gui/windows/ | WinUI 3 frontend, C# tests, and the uniffi C# bindgen |
plugins/extensions/ | Bundled and example extensions |
plugins/providers/ | Bundled and example model providers |
schema/ | Protobuf contracts for plugins |
Support
Before reporting a bug, search the existing issues. If it has not already been reported, open a new issue using the bug report template.
Logs are written to:
- Linux:
${XDG_STATE_HOME:-~/.local/state}/paloma/logs/ - macOS:
~/Library/Logs/Paloma/ - Windows:
%LOCALAPPDATA%\Paloma\logs\
Contributing
Paloma is still taking shape, so development currently follows the project's planned work. Accepting ad hoc features at this stage would make it harder to keep the product focused, so feature requests are not being accepted for now unless they are related to any of the epic topic.
If you would like to contribute, choose an issue marked as available, comment that you would like to work on it, and wait for it to be assigned before you start. This helps avoid duplicated or wasted work. Pull requests that are not tied to an assigned issue will be closed.
Please make sure every change is well tested.
LLM-assisted contributions
I do not reject contributions simply because an LLM was used to help write them. An LLM is a tool; the contributor must still own the change and the reasoning behind it. Before submitting, you should be able to explain the code, understand its behavior and tradeoffs, and verify it with appropriate tests. LLM-generated work submitted without that level of human ownership will be rejected.