Skip to content

Settings

All settings persist to ~/Library/Application Support/hyperterm-canvas/settings.json. Open the in-app panel with ⌘,. Most changes apply live — no restart needed.

SectionWhat it covers
GeneralshellPath (empty = $SHELL), scrollbackLines.
Appearancefont family/size, line height, cursor style, cursor blink.
Theme10 presets + per-color overrides, background opacity, accent / secondary / foreground colors, full 16-color ANSI palette.
Effectsterminal bloom toggle + intensity.
Networkweb mirror port + auto-start + bind address + optional auth token.
Browsersearch engine, home page, force dark mode, terminal link interception.
Telegrambot token + access policy + chats + notification forwarding.
Advancedpane gap (px between splits), sidebar width.

Full per-field reference: Configuration → Settings.

SettingBehavior
shellPathApplies to new surfaces only — existing shells keep running.
webMirrorPort, webMirrorBind, webMirrorAuthTokenRestart a running mirror on change.
autoStartWebMirrorOnly matters at launch. The mirror can still be toggled any time after.
Theme / appearance / effectsApply live across all panes.
Telegram bot tokenRe-validates immediately; long-poll service restarts on success.

You can edit settings.json while τ-mux runs — the SettingsManager watches the file and reloads on change. Useful for scripted setups (bun scripts/... setups) or for syncing config across machines.

Schema is enforced by validateSettings in src/shared/settings.ts. Unknown fields are dropped on load with a logger warning.

  • src/shared/settings.ts — AppSettings schema, DEFAULT_SETTINGS, validateSettings, theme presets.
  • src/bun/settings-manager.ts — load/save with debounced persist.
  • src/views/terminal/settings-panel.ts — full UI.