Settings Dialog

The Settings dialog provides a centralized place to configure Bowire's behavior, review keyboard shortcuts, manage stored data, and adjust plugin-specific options.

Opening settings

Click the gear icon in the topbar to open the Settings dialog. Press Esc or click outside the modal to close it.

The dialog has a category sidebar on the left and a settings panel on the right. Select a category to see its options.

General

The General tab controls core UI behavior.

Theme

Choose between three options:

Option Behavior
Auto (follow OS) Matches your operating system's light/dark preference
Dark Always use the dark color scheme
Light Always use the light color scheme

The theme preference is saved in localStorage and applies immediately.

Auto-interpret JSON

When enabled (the default), Bowire parses JSON payloads in WebSocket, MQTT, and SSE responses for pretty-printed display with syntax highlighting. Disable this if you work with non-JSON text protocols and want raw output.

Schema Watch interval

Controls how often Bowire re-discovers services when Schema Watch is active. The value is in seconds, with a minimum of 5 and a maximum of 300. The default is 15 seconds.

Schema Watch is useful during active development -- your server's service definitions are polled at this interval and the sidebar updates automatically when methods are added or changed.

Shortcuts

The Shortcuts tab shows a read-only keyboard reference for all available shortcuts.

Shortcut Action
Ctrl+Enter Execute request / Send message
? Show/hide shortcuts overlay
Esc Close dialog / Stop streaming / Disconnect
/ Focus command palette
t Toggle theme (Auto / Dark / Light)
f Toggle Form/JSON mode
r Repeat last call
j Next method (sidebar)
k Previous method (sidebar)

This is the same set shown by pressing ? from the main UI, collected here for reference.

Data

The Data tab provides destructive actions for managing Bowire's stored state. Every action prompts for confirmation before proceeding.

Clear call history

Removes all request history entries. This clears the history panel in the sidebar. Call history is stored in localStorage.

Clear favorites

Removes all starred methods. Favorites can be re-added by clicking the star icon next to any method.

Reset all settings

Clears all localStorage data -- history, favorites, environments, collections, flows, theme preference, and plugin settings -- then reloads the page. This is irreversible and returns Bowire to its initial state.

Plugin settings

Protocol plugins can define their own settings by including a settings array in their IBowireProtocol registration. When a plugin provides settings, a new category appears in the Settings sidebar using the plugin's name and icon.

Bowire supports four setting types:

Type Rendered as
bool Toggle switch
number Numeric input
select Dropdown with predefined options
string (default) Text input

Each setting has a key, label, optional description, and optional defaultValue. Values are stored in localStorage under the key bowire_plugin_<pluginId>_<settingKey>.

Example: plugin settings definition

A protocol plugin might expose settings like this:

public IReadOnlyList<PluginSetting> Settings => new[]
{
    new PluginSetting
    {
        Key = "timeout",
        Label = "Request timeout",
        Description = "Maximum seconds to wait for a response",
        Type = "number",
        DefaultValue = 30
    },
    new PluginSetting
    {
        Key = "verboseLogging",
        Label = "Verbose logging",
        Description = "Log raw protocol frames to the console",
        Type = "bool",
        DefaultValue = false
    }
};

These settings appear automatically in the Settings dialog under the plugin's name. Plugin code reads current values at runtime via getPluginSetting(pluginId, key, defaultValue).

About

The About tab displays:

Field Content
Version Current Bowire version
Mode UI mode (standalone, embedded, etc.)
Protocols Comma-separated list of loaded protocol plugins
Services Total number of discovered services
Methods Total number of discovered methods

Links to the GitHub repository and online documentation are provided at the bottom.

Tips

  • The Settings dialog is non-blocking -- you can open it, check a shortcut, and close it without interrupting your current request.
  • Plugin authors: define settings for anything that changes behavior at runtime (timeouts, log levels, display preferences). Avoid settings for things that should be environment variables.
  • Use Reset all when troubleshooting -- it guarantees a clean slate without reinstalling.

See also: Keyboard Shortcuts, Plugin System