Skip to content

Settings ​

Settings fall into three groups, and the list on the left of each settings page shows them under these three headings:

  • Global: General. The same values on every machine, whichever preset it uses.
  • Presets: Appearance, Terminal, SFTP, Keyboard shortcuts, Key bar, Notifications, and Vault. They edit the preset chosen under Preset to edit above the list.
  • Machines: Machines. Each machine that syncs chooses the preset it uses and its port.

Every setting is stored under ~/.ssh/sshc and synced to your other machines. Open connections is not a setting: it closes the connections open on this machine.

Menu lists each page with a line on what it is for, and links directly to the settings pages. Connection-specific behavior lives in the connection's Display & terminal tab.

The tag beside a page's name says how far its settings reach.

TagReach
All machinesEvery machine, the same value whatever the preset
The preset's name, such as Preset: StandardThe machines that use that preset
Each machineA separate value for each machine (the list in Machines)
This machine onlyThis machine only; not synced

The switches in a terminal's "…" menu sit under headings with the same tags. A field left empty in a connection's Display & terminal tab follows the preset its machine uses.

Presets ​

To use different values on different machines, such as a larger font on a phone than on a PC, make a preset. A preset holds the appearance, the terminal settings, the SFTP transfer settings, the shortcuts, the notification sound, the Vault auto-lock, keeping the screen on, and touch handling. The navigation and connection-list widths, the Home view and the SFTP split are not part of a preset; each browser remembers its own.

  • Standard is there from the start. A machine that has not chosen a preset uses Standard.
  • The preset this machine uses is marked In use here. With another preset open, press Use on this machine to have this machine use it. Choose the preset another machine uses under Machines.
  • New preset under "…" copies the values of the preset that is open. Rename and Delete do not apply to Standard. A machine that used a deleted preset goes back to Standard. Up to 16 presets, Standard included, can be made.
  • A change to a preset takes effect on the machines that use it once the change reaches them through Sync.

On a phone, the preset is chosen at the top of each settings page.

General ​

Settings that are the same on every machine and every preset. Each change is saved at once.

  • Display language: Follow the browser, English, or 日本語. Preferences in Menu switches it as well
  • Terminal connections: Reconnect after a dropped connection, Connection log, and OSC 52 (allow writing to the clipboard)
  • Session logs: Save a log of each session to a file and Connections not logged (Session logs)
  • SFTP transfers: how long Finished transfers stay in the list, whether to Resume automatically When the connection drops, and the Reconnect limit
  • Background images: Library capacity (1 to 1024 MiB, 16 MiB by default)

Machines ​

Lists the machines that sync, this machine first. A machine joins the list when this version of the sshc engine first starts on it.

  • Preset: the preset the machine uses. A change takes effect on that machine once it reaches it through Sync.
  • Port: the port that machine's sshc engine listens on, from its next start.
  • Last start: when the sshc engine last started on that machine.
  • "…": Rename, Change where logs are kept… and Remove from the list. Change where logs are kept… changes the folder the machine keeps its session logs in; leaving it empty goes back to the usual place for its OS. A machine no longer in use can be removed; this machine cannot. A removed machine comes back the next time sshc runs on it.

Desktop uses a device-local stable port so bookmarks and the installed web app keep the same URL. With Port left empty, it first tries 127.0.0.1:54447, then stores an available fallback for that machine if that port is already in use. You may change the port, but must enrol the browser again at the new origin. The Android app's port cannot be changed: the app keeps its saved data per port, so another port would lose the browser's enrolment.

Keyboard shortcuts ​

Open Menu → Keyboard shortcuts to assign command search, terminal search, copy/paste, previous/next prompt, text size (larger, smaller, reset), quick commands, new session, close session, previous/next connection, previous/next pane of a split, splitting right or below, showing or hiding the navigation, Home and SFTP. Click a binding and press a chord with Ctrl, Alt or Win (⌘ on a Mac), or a function key. Escape cancels; Tab moves to the next control.

Duplicate bindings are rejected. Use Clear to disable an action.

ActionDefault keys
Connection switchingAlt+PageDown / Alt+PageUp
Text size (Command on a Mac)Ctrl+= (also Ctrl+; on a JIS keyboard) for larger, Ctrl+- for smaller and Ctrl+0 to go back to the settings' size
Moving to the previous/next promptCtrl+Shift+Up / Down (Command+Up / Down on a Mac)
New session, close session, the panes, splitting, quick commands and showing or hiding the navigationNone

Some actions have no default keys because the ones other terminals use (Ctrl+Shift+T, Ctrl+Shift+W, Alt with the arrows) are taken first by the browser or by the program in the terminal.

  • Text size, like a pinch, changes only that terminal and is not saved.
  • Closing a session asks first, as its × does.
  • When the shell marks its prompts through OSC 133 (shell integration), the prompt keys pass over long output to the prompt's line. On mobile, choose it from the terminal's … menu.
  • Copy, paste, terminal search, the prompt keys, text size and quick commands apply inside the terminal. Paste retains its normal confirmation and editing flow.

The Key bindings selector switches between named sets of bindings. The "…" beside it saves a copy, renames or deletes a set, or goes Back to the default bindings.

  • Key bindings are synced and shared by every machine; each settings preset chooses the ones it uses.
  • Editing the default bindings creates key bindings of your own.
  • When an sshc update adds actions to assign, the key bindings you made keep working; the new actions come in without keys, to assign if you use them.
  • Deleting the selected key bindings restores the default bindings.
  • Reload after a concurrent edit conflict.

Hiding the navigation on a PC leaves only a narrow column with Show the navigation; each browser remembers whether it is hidden. Browser or OS shortcuts may take priority. Native browser paste remains available.

Paste defaults to Ctrl+V (⌘V on Mac); Ctrl+Shift+V also remains available.

Key bar ​

Open Menu → Key bar to arrange the key bar shown under the terminal on a phone.

  • Tap a key under Key order to select it, then move it with Earlier and Later, put it behind 「…」 with Behind 「…」, bring it back with Always shown, or take it off with Remove.
  • Tapping a key under Keys to place puts it after the selected key (at the end of the row always shown when none is selected).

The keys on offer are the input switch (the keyboard icon), Ctrl, Alt, Esc, Tab, Enter; Backspace, Del, Ins, the arrows, Home, End, PgUp, PgDn; ^C, ^D, ^Z, ^L, ^R, ^A, ^E; F1 to F12; and symbols.

Make a key makes a key that sends a fixed text or command in one tap. Give the text to show on the key (up to 8 characters) and what it sends; Press Enter after sending runs the command at once. The text is sent as if typed, with a line break sent as Enter. Control characters other than tabs and line breaks cannot be sent. Select a key you made and use Edit to change it.

The Key order selector switches between named orders. The "…" beside it saves a copy, renames or deletes an order, or goes Back to the default order. Key orders are synced and shared by every machine; each settings preset chooses the one it uses. Changing the default order creates an order of your own. Update every synced machine before using your own orders: an older sshc that saves the settings again drops them.

Appearance ​

Settings → Appearance sets the theme, the accent colour, the background with no session, and whether to reduce motion for the whole app in the preset being edited:

  • Theme: match the system, light, white blue, white purple, dark, dark blue, or dark purple. Light and dark use greys without a tint; white blue and dark blue tint them blue, and white purple tints them purple. With the lavender accent, white purple uses a slightly deeper purple. Dark purple uses a lighter untinted grey and, with the lavender accent, a purple of its own, which also colours the terminal selection and cursor
  • Accent colour: lavender, blue, sky, pink, mono, or custom. It marks the current item, buttons, and the focused terminal pane. Custom takes one colour of your own from the colour picker or as a code (#rrggbb), used in both the light and the dark theme. A colour that is hard to tell from the background of the theme on screen brings up a notice.
  • Background with no session: none, network, contours, globe, or aquarium. A moving picture in the terminal while no session is open (Terminal). The default is network
  • Reduce motion: system, on, or off. On stops the background picture and leaves out the animation of panels opening and closing and of screens changing. System follows the reduce-motion setting of the OS

Each settings page lists the other settings pages on its left, so you can move between them.

The theme, the accent colour, the background with no session, and reduce motion are preset settings and sync to your other machines. The browser also keeps a copy of the theme, so the first screen is drawn in it the next time sshc opens. Amber, green, and red are not among the offered colours because they already mean an unread notification, connected, and an error.

General, or Preferences in Menu, switches the display language (Japanese or English).

Configure the terminal color scheme, font, background, and tint under Settings → Terminal.

Theme and language controls are also available on vault create and unlock screens.

Vault ​

Settings → Vault sets the Vault auto-lock and the master password. The auto-lock time is a preset setting. The master password belongs to each machine's Vault and is not synced.

Auto-lock ​

By default, the Vault locks after saved passwords and key passphrases have not been used for 12 hours. Select a value from 1 to 999 and either minutes or hours. Status checks, terminal output, and automatic sync do not extend the timer.

With Do not auto-lock, the Vault stays unlocked until you lock it manually or restart sshc. Use this option only on a device you control.

A passwordless Vault is neither auto-locked nor lockable by hand: it opens when sshc starts and this setting has no effect. The current-password field is hidden when changing protection; adding a password restores auto-lock, that field, and the lock controls.

Terminal ​

Settings → Terminal holds the terminal settings of the preset being edited. On a phone every group is shown as its own section.

TabContents
DisplayColor scheme, font, background
ConnectionLimits
BehaviourStarting directory, local shell, clipboard and keyboard, touch input and its link underlines

Reconnecting, the connection log, OSC 52 and session logs are under General.

No settings page has a Save button: Saved shows under the field you changed for a moment. Choices and checkboxes are saved as soon as they change; numbers and the starting directory are saved when focus leaves them or Enter is pressed.

  • Maximum concurrent sessions from 1 to 200, with a default of 50
  • Engine replay buffer from 16 KiB to 4 MiB, with a default of 256 KiB
  • Browser scrollback from 1,000 to 100,000 lines, with a default of 5,000
  • Terminals kept hidden from 1 to 99, with a default of 3. Terminals shown recently stay hidden when they leave the screen, so their whole scrollback is there when you go back. Each keeps its scrollback in the browser's memory (a few MB for 5,000 lines)
  • Font size, color scheme, font, background, and tint
  • Copy on select and right-click paste
  • JIS yen-key to backslash behavior
  • Whether Enter sends from the phone's text box (it starts a new line by default)
  • Whether to use font ligatures (off by default)
  • Whether to show the VT320 status line a program shows (on by default; when off, what is written to it stays off the screen as well)
  • With shell integration (OSC 133): command marks, the command kept above its output, and command marks on the scrollbar (all on by default)
  • Whether to put the name of the command running in a local shell in front of the pane title (on by default; sshc engines on Linux and macOS only; see Titles and notifications)

The engine replay buffer retains bytes in memory so it can replay output when a browser reconnects. Browser scrollback is the separate number of display lines retained by xterm. Neither setting writes terminal output to disk. When output keeps coming faster than the browser can draw it and the browser falls further behind than the replay buffer holds, the part no longer in the buffer is skipped and the terminal says so.

When a terminal needs output older than the replay buffer holds (one rebuilt after more than the kept hidden terminals were shown, or a new tab), the engine first shows the screen it keeps and then replays what the buffer holds. A program that draws its screen once and then rewrites only what changes, such as Claude Code, is shown with what it drew earlier. Lines from before the replay buffer cannot be scrolled back to.

Encoding may be overridden per connection. OSC 8 and Kitty keyboard behavior are protocol-driven.

Rendering uses WebGL by default and automatically falls back to the DOM renderer when WebGL is unavailable or a background image is active. If a GPU or browser duplicates characters or leaves visual traces, turn off Use WebGL rendering to always use DOM rendering.

Turn on Use font ligatures to draw ->, !=, === and the like as single symbols (off by default). It works with the JetBrains Mono font. A ligature takes as many cells as the characters it replaces, so the cursor and selections stay where they were; where the cursor or a selection edge falls inside one, it is drawn a character at a time.

Select Change to open the searchable background image library. The normal settings page shows only the selected image; rename and delete actions live under each image's … menu. sshc stores the uploaded bytes unchanged and does not compress or convert the image.

The library capacity is set under General (16 MiB by default, 1 to 1024 MiB). Lowering it never removes or recompresses existing images. Large or numerous images increase local storage, encrypted-sync transfer, and memory use.

When an image is renamed, its extension follows the detected format and preset and per-connection references are updated in the same operation. An existing image is never overwritten. Deleting an image clears references to it in the same transaction.

SFTP ​

Settings → SFTP holds the SFTP transfer settings of the preset being edited: the speed limit, concurrency, split transfers, and transfer exclusions. Transfer settings in the SFTP Transfer Manager opens the same page. On the machines that use the preset, browser and CLI transfers share them. Clearing finished transfers and resuming after a lost connection are under General. See Transfer Manager for details.

Local shell and notifications ​

Choose a default shell profile and start directory under the Behaviour tab of Settings → Terminal; both are preset settings. Detected choices include PowerShell variants on Windows and available zsh, fish, bash, and similar shells on Unix systems. Open Terminal here from a local SFTP folder uses that default profile with the displayed folder as its start directory. New session lists one local shell: it opens the shell chosen here, in the start directory configured here, or the system login shell when no shell is chosen.

Browser notification permission is requested only after an explicit click. Configure, in the preset being edited, the sound and volume used when a terminal program sends a notification through OSC 9/99/777, and test delivery. See Titles and notifications for details.

Where settings are stored ​

Settings are stored under ~/.ssh/sshc and are included in backups and Sync.

  • The global settings and the presets: the sshc metadata (metadata.json), together with connection-specific settings
  • Each machine's settings (name, preset in use, port): ~/.ssh/sshc/machines/<machine ID>.json
  • Each machine's screen state (the engine chosen for remote sessions, SFTP tabs and split, the Transfer Manager view, folded workspaces and whether hidden workspaces are shown, and whether transfer processing is stopped): ~/.ssh/sshc/machines/<machine ID>.state.json

Only ~/.ssh/sshc/machine-id, which tells the machines apart, is not synced. The browser keeps a copy of the theme and the display language (so the first screen is drawn in them the next time sshc opens), the browser registration, and whether it has shown the result of an update, and nothing else.

The browser registration token is not stored in ~/.ssh or sync snapshots; the engine keeps only its verification hash, the issue and last-use times, and the engine port. Vault secrets and sync credentials are never written to plaintext settings.

WhatLimit
Registration tokenReplaced every time the browser re-enters after an engine restart, and expires 30 days after its last use
Registered browsersAt most 16. When the limit is reached, the registration unused for the longest is dropped first
Browser sessionEnds after 12 hours without use or 7 days after it was issued, but a valid registration re-enters on the next load without asking

A changed engine port or a presentation of a superseded token revokes the registration, and sshc (or sshc open) issues a fresh URL to register again.

"Sign out of this browser" under Menu → Sign out removes both the session and the registration (while the vault is locked, the same button on the lock screen signs out without the master password). Opening sshc again then needs the URL from sshc (or sshc open).