Motebit

Desktop App

Setup, operator mode, PIN flow, and the Tauri runtime.

The desktop app is a Tauri app (Rust backend + webview) with a Three.js liquescent droplet, chat interface, and full identity/crypto/operator mode support.

It is a preview — see Get Your Agent for the state of the published build; build from source as below.

Running the desktop app

In development mode with the Tauri backend (keyring, operator mode, sync):

pnpm --filter @motebit/desktop tauri:dev

pnpm --filter @motebit/desktop dev starts Vite alone — the UI without the Rust backend. For a production app bundle:

pnpm --filter @motebit/desktop tauri:build

(build is the TypeScript build only.)

First launch

On first launch, you'll see a welcome overlay explaining that motebit creates a local identity and device key. Click Get started to:

  1. Generate an Ed25519 keypair
  2. Store the private key in ~/.motebit/dev-keyring.json (owner-only, 0600 on Unix; Windows is best-effort)
  3. Create your motebit identity
  4. Register this device

After that, the chat interface appears. Type a message to start talking to your motebit.

Choosing a provider

Open settings (gear icon, top right) to configure your LLM provider:

ProviderSetup
Ollama (default)Install Ollama, pull a model (ollama pull qwen3), and select "Ollama" in settings
AnthropicEnter your API key in settings. Key is stored in the owner-only (0600) ~/.motebit/dev-keyring.json, never in config.json.

Set the model name in the Model field. Examples: qwen3, claude-sonnet-5-5. For Anthropic the field suggests three tiers — Claude Opus 5.5 (most capable), Claude Sonnet 5.5 (recommended, the default when the field is empty) and Claude Haiku 5.5 (fastest); any other Claude id, such as claude-fable-5-1, can be typed. A model you already chose is kept as-is when the default changes.

Operator mode

Operator mode unlocks high-risk tools (file writes, shell execution, payments). It's gated by a PIN:

  1. Toggle Operator Mode in settings
  2. First time: set a 4-6 digit PIN (stored in the desktop key store, ~/.motebit/dev-keyring.json, as a salted PBKDF2-SHA256 digest, never plaintext)
  3. Subsequent times: enter your PIN to enable

While active, the agent can use R2+ risk tools. Tool calls still produce audit log entries, and specific tools can still require per-call approval.

To reset your PIN, click Reset PIN in settings. This clears the PIN and disables operator mode.

Chat interface

The chat overlay sits at the bottom of the screen, over the 3D droplet:

  • User messages — Blue bubbles, right-aligned
  • Assistant messages — Frosted glass bubbles, left-aligned
  • System messages — Centered, dimmed
  • Tool status — Pulsing italic text showing tool execution progress
  • Approval cards — Interactive cards for tool approval (Allow/Deny buttons)

Slash commands

Type / to use commands:

CommandAction
/modelShow current model
/model <name>Switch model
/settingsOpen settings panel
/helpShow available commands

Dev mode (without Tauri)

In dev mode (running via Vite without the Tauri backend), the app skips identity bootstrap and uses environment variables:

# .env file in apps/desktop/
VITE_AI_PROVIDER=anthropic
VITE_ANTHROPIC_API_KEY=sk-ant-...

No keyring, no operator mode, no sync — just the chat and rendering. Useful for UI development.

Configuration storage

DataStorage
Provider, model~/.motebit/config.json
API key~/.motebit/dev-keyring.json (owner-only, via Tauri)
Operator PIN hash~/.motebit/dev-keyring.json (owner-only, via Tauri)
Identity, events, memories~/.motebit/motebit.db (SQLite, WAL mode)

On this page