Apps and agents

Desktop app

A native app for macOS, Windows and Linux with a Dock count, system notices and mailto links.

imbox docs

The desktop app is a small native shell, built with Tauri, around your own imbox. On first launch it asks for your server address and loads imbox from it. Nothing of the web app is bundled inside, so a server update updates the app too.

What the shell adds:

  • an unread count on the Dock or taskbar icon
  • system notifications for new mail
  • a menu bar with shortcuts
  • imbox as your default app for mailto: links

Get it

The installers are on the Apps page of the project's website. Buttons appear for the files the server has:

PlatformFile
macOSimbox-mac.dmg
Windowsimbox-windows.exe
Linuximbox-linux.AppImage or imbox-linux.deb

If the page shows no buttons, no installer has been put on the server. Build one below, or see offer installers from your server.

Build it yourself

You need Node.js 22 and Rust. The source is in apps/desktop.

macOS

macOS 12 or later, on Apple Silicon or Intel.

cd apps/desktop
npm ci
npx tauri build --bundles app,dmg

The disk image is in apps/desktop/src-tauri/target/release/bundle/dmg/.

Opening it on another Mac

A local build is signed with an ad-hoc identity, not an Apple Developer certificate. On another Mac, macOS asks for approval under System Settings → Privacy & Security → Open Anyway.

Windows

You need the WebView2 runtime, which Windows 10 and 11 already include.

cd apps/desktop
npm ci
npx tauri build

The installer is in src-tauri/target/release/bundle/nsis/.

Linux

sudo apt-get install -y libwebkit2gtk-4.1-dev libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev patchelf
cd apps/desktop
npm ci
npx tauri build

An .AppImage and a .deb are in src-tauri/target/release/bundle/.

Linux and Windows from a Mac

A container build makes both without leaving macOS. It needs Docker or OrbStack.

apps/desktop/cross/build.sh [linux|windows|all]

The files land in apps/desktop/cross/out/.

Offer installers from your server

The server shows a download button for each installer found in dist/downloads/. When you deploy, name the files in these variables:

VariableBecomes
IMBOX_MAC_DMG/downloads/imbox-mac.dmg
IMBOX_WIN_EXE/downloads/imbox-windows.exe
IMBOX_LINUX_APPIMAGE/downloads/imbox-linux.AppImage
IMBOX_LINUX_DEB/downloads/imbox-linux.deb
IMBOX_MAC_DMG=apps/desktop/src-tauri/target/release/bundle/dmg/imbox_0.1.0_aarch64.dmg \
bash deploy/deploy.sh [email protected] ~/.ssh/your-key

A deploy that names no installers keeps the ones already on the server.

If it does not work

  • It can't find the server: the address must start with https:// and open in a normal browser.
  • You are signed out often: check that APP_URL on the server matches the address you gave the app. See Troubleshooting.