Frontend UI
The Tauri desktop app ships with a built-in web-based dashboard for managing providers, permissions, chat, and monitoring.
Dashboard
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_statusDashboard status
process_messageSend message to LLM
handle_actionExecute an action
undo_lastUndo last action
list_modelsFetch available models
set_active_providerSwitch provider
set_mesh_api_endpointSet Mesh API endpoint
set_api_keySet a provider's API key
get_policyGet policy state
update_permissionsToggle tool perms
update_allowlistAdd/remove JID
update_contact_modeSet contact mode
list_chatsList WhatsApp chats
search_contactsSearch contacts
list_contactsAll contacts merged
list_messagesMessages for a chat
logout_bridgeDisconnect & clear auth
get_pending_actionsList pending approvals
approve_actionApprove pending action
reject_actionReject pending action
approve_all_actionsApprove all pending actions
reject_all_actionsReject all pending actions
set_chat_styleSet chat style + custom prompt
save_configSave config to Keychain
load_configLoad config from Keychain
clear_configClear config from Keychain