Frontend

Frontend UI

The Tauri desktop app ships with a built-in web-based dashboard for managing providers, permissions, chat, and monitoring.

Dashboard

WhatsApp

Bridge Status

LLM Provider

Active Provider

Actions Today

Journal Count

Active Risk

Current Level

The dashboard shows real-time status of the WhatsApp bridge, active LLM provider, action journal count, and current risk level. A system tray icon provides quick access — click to show/hide the window.

Providers Tab

Configure the Mesh API Router — the single LLM provider for all models:

  • • Mesh API endpoint URL input with "Apply" button
  • rsk_... API key field
  • • Live model browser — fetches 1000+ models from GET /v1/models
  • • Per-model details: capabilities, context window, pricing, and provider info
  • • BYOK header fields (x-mesh-openai-key, x-mesh-anthropic-key, x-mesh-groq-key)
  • • First live-fetched model auto-selected as default

Permissions Tab

Full policy management interface with searchable contacts table:

  • • Per-tool permission toggles (Shell, File, Media, Apps, WhatsApp)
  • • Searchable contacts table with allowlist checkboxes
  • • Per-contact mode dropdown (Assistant/Chat/Summarize/Blocked)
  • • Risk profile reference cards
  • • All changes sync to the backend instantly

Chat Tab

Built-in chat interface for monitoring conversations:

  • • Left panel: searchable contact list with avatars
  • • Right panel: message history with incoming/outgoing bubbles
  • • Message metadata: timestamps and media type indicators
  • Pending actions panel — shows queued medium/high-risk operations with Approve/Reject buttons
  • Batch approval — Approve All / Reject All buttons for bulk action management
  • Thinking blocks — AI reasoning displayed between multi-step actions
  • • Badge count on pending actions showing number of items awaiting review
  • • 3-second polling for new pending actions
  • • Messages fetched from SQLite via list_messages command

Action Log

Monitor all executed actions:

  • • Timestamp, action type, status, reversibility
  • • Refresh button for live updates
  • • Integrated with undo journal

Settings Tab

App configuration:

  • • WhatsApp Bridge URL and API key (for Go bridge Bearer auth)
  • • Mesh API endpoint URL input with "Apply" button
  • • Mesh API key input (rsk_...) + BYOK header fields for per-model keys
  • • Live model browser with search, pricing, and capabilities display
  • Config save/load/clear — persist settings to platform-native credential store, restore on startup, or clear stored config
  • • Config auto-saved on every permission/allowlist/mode change
  • Chat Style selector — dropdown to choose from 9 predefined styles or write a custom system prompt

WhatsApp Ban Warning Banner

Whatszara displays a warning banner at the top of the dashboard to alert you when your WhatsApp account may be at risk of a ban. This is triggered by:

  • Excessive message volume — sending/receiving too many messages in a short period
  • Suspicious activity patterns — rapid automated responses or bulk operations
  • Bridge disconnections — frequent reconnects can trigger WhatsApp's anti-automation systems

⚠️ Ban Warning

Your WhatsApp account may be at risk. Consider reducing message frequency or pausing the bridge.

The banner is dismissible and re-appears if the risk condition persists. It serves as an early warning system — WhatsApp bans for unofficial clients can be permanent.

Tauri Commands

The frontend communicates with the Rust backend via Tauri commands:

get_status

Dashboard status

process_message

Send message to LLM

handle_action

Execute an action

undo_last

Undo last action

list_models

Fetch available models

set_active_provider

Switch provider

set_mesh_api_endpoint

Set Mesh API endpoint

set_api_key

Set a provider's API key

get_policy

Get policy state

update_permissions

Toggle tool perms

update_allowlist

Add/remove JID

update_contact_mode

Set contact mode

list_chats

List WhatsApp chats

search_contacts

Search contacts

list_contacts

All contacts merged

list_messages

Messages for a chat

logout_bridge

Disconnect & clear auth

get_pending_actions

List pending approvals

approve_action

Approve pending action

reject_action

Reject pending action

approve_all_actions

Approve all pending actions

reject_all_actions

Reject all pending actions

set_chat_style

Set chat style + custom prompt

save_config

Save config to Keychain

load_config

Load config from Keychain

clear_config

Clear config from Keychain