Skip to content

Changelog

  • Usage analytics are removed, along with the Full diagnostics level. Installations set to Full now use Basic, which uploads only errors and crashes.
  • Monitor v0.4.0 uses a single account and signs in with a password only. Signing in grants the permissions of the system account Monitor runs as; roles, per-feature permissions, file roots and read-only mode are removed. On upgrade, the oldest admin account is kept and other accounts’ tasks, memory and desk data move to it. ServerBox no longer asks for a username, and offers to update Monitors older than v0.4.0 before signing in.
  • Self-signed Monitor certificates are trusted once by fingerprint. The “ignore certificate” toggle is replaced by SHA-256 fingerprint pinning: the first connection prompts you to trust the certificate from the server card or detail page, and prompts again only if the certificate changes.
  • Sync uses a new incremental format. iCloud and WebDAV now sync individual changes instead of full backups, encrypted with a sync key protected by your backup password. GitHub Gist and Monitor’s hosted backup store are removed as sync destinations. All devices sharing a destination must use the same backup password and upgrade to this version; older versions cannot read changes written by newer ones.
  • The Monitor panel’s terminal no longer connects over SSH. It opens a local shell directly under the system account Monitor runs as.
  • New Monitor panel features, the Monitor tab’s management views, and the new notification channels require Monitor v0.4.0.
  • Storage and sharing in the app and the Monitor panel: manage disks, partitions, RAID arrays, ZFS pools, LUKS encryption and SMART health, plus SMB shares (with Time Machine and recycle bin options) and NFS exports.
  • Monitor panel redesigned as a desktop: every feature opens in its own window, with a menu bar, dock, Spotlight search, notification center, tabs and split panes in Terminal and Files, and customizable wallpapers and themes.
  • Expanded server tools in the Monitor panel: processes, services, scheduled tasks, containers (images, logs, container shell, and scheduled volume and folder backups), system users and groups, snippets, firewall, benchmark, tmux, iperf, file editor, remote desktop (VNC and RDP), virtualization and BMC (Redfish).
  • App Store for self-hosted web apps: deploy and update over 40 Docker Compose services from the Monitor panel (including Immich, Jellyfin, Nextcloud, Vaultwarden, Home Assistant, Gitea, Open WebUI, Grafana and n8n), or load custom catalogs and local Compose apps, with port checks, health alerts, a shared media folder and built-in reverse proxy access.
  • Desk apps (.fsba) in the Monitor panel: install sandboxed third-party panel apps with approved permissions, alongside signed official packages for Local inference (Ollama, llama.cpp, vLLM, SGLang and MLX matched to the machine’s GPU), AI agents (Codex, Claude Code, pi, opencode, Hermes and OpenClaw), Reverse proxy and WAF (nginx, Caddy, Traefik, and ModSecurity with OWASP CRS), Tailscale, Kernels, Ubuntu Pro and Cleanup.
  • Agent mode on Monitor, integrated with the app: run AI tasks on Linux, macOS and Windows servers with per-task model, thinking level and permission mode, execution plans, command risk checks, sudo prompts, attachments, memory, MCP servers (with OAuth and deployed apps’ MCP servers) and skills. Tasks can also be started, followed live and answered from the app’s Agent tab.
  • Agent command permissions: choose Manual, Auto or Allow all mode and configure allow, ask or deny command rules for both the on-device Agent and Monitor’s Agent mode.
  • Monitor tab, one-click updates and settings backup: view all connected Monitors at a glance—version status and one-click updates, active alert rules, deployed web apps (with available updates listed first) opened through Monitor’s proxy, notifications, per-server audit logs, and signed-in sessions and trusted devices that can be revoked. Each server page also lists its own web apps, and Monitor can back up its settings to WebDAV as age-encrypted archives.
  • ServerBox OS (sbOS) bootable images: live and disk-installable images based on Alpine Linux (musl) and Debian 13 (GNU) for x64 (BIOS and UEFI) and arm64 (UEFI), with Monitor and Docker preconfigured.
  • Server discovery: find SSH servers on the local network, in SSH config files, on Tailscale and through Cloudflare Tunnel, and add them along with their jump servers. First-run setup is redesigned around it.
  • Selective sync and full user-data coverage: toggle sync separately for settings, AI preferences, credentials, key passphrases, files and benchmarks; fonts, images, skills, theme packages and icon packs now sync as well. The redesigned sync page shows each destination’s live status.
  • Trusted sign-in devices on Monitor: devices that have signed in before receive a device token, so failed sign-in attempts from other sources do not lock them out.
  • New notification channels: SMTP email, Telegram, Discord and ntfy, plus ${ENV} variable references for push credentials in config.toml. Bark adds subtitle, Markdown, critical alert volume, badge, image, copy, archive options and AES-CBC encrypted push.
  • GPU process list for servers connected through Monitor.
  • iOS: device files and installed Linux environments appear in the Files app, and Paste from the system menu uses bracketed paste in the terminal.
  • Windows installer (.exe): per-user installer that requires no administrator rights and bundles the Visual C++ runtime, alongside WinGet support. The portable .zip archive remains available.
  • tmux: zoom and unzoom panes, keeping zoom active when switching panes.
  • Redesigned full-screen server view across all platforms, showing a single server or all servers with burn-in protection.
  • Exported backups now use the age format and can be decrypted with age -d using your backup password; older backups still restore. On Monitor, stored credentials and Agent mode chats are now encrypted at rest.
  • Terminal and file tabs are no longer reopened automatically after closing the app.
  • Improved mouse wheel and trackpad scrolling in the terminal, with whole-line wheel steps, smooth trackpad scrolling in full-screen programs and a single scrollbar.
  • Notification channel editors now show every option a channel type supports, including unset fields.
  • Percentage chart axes no longer extend past 100%.
  • Completed and polished translations across all supported languages in the app, Monitor panel and documentation.
  • macOS: fixed garbled text on Intel Macs (#1798) by switching the Intel DMG build to the Skia renderer.
  • Database: fixed a migration failure when opening databases from older releases (prior to schema v31), and added retries for transient I/O errors when opening the database on Windows.
  • tmux: fixed pane and window target resolution, cross-window switching, clean detaching, live screen tracking on pane switches, and output replay after reconnecting.
  • Terminal: typing quickly no longer duplicates characters; opening a session from the picker switches to its tab; replacing the background image takes effect immediately; and the Files button resolves the shell’s working directory without typing commands into the shell.
  • Editor: copying a large selection while an input method is active no longer drops lines.
  • Settings and navigation: pages with unsaved edits ask before closing, and Back navigation returns to the visible page across tabs, workspace panes and wide windows.
  • Dialog buttons remain responsive after the window is resized or the screen rotates.
  • Mobile: fixed Paste in text fields and the terminal on iOS, merged foreground session notifications, and fixed keyboard bounce when switching views.
  • Remote desktop now shows a clear explanation when a server supports only Standard RDP Security.
  • Monitor: Linux builds start on CPUs without AVX; NVIDIA GPU processes are listed again when the driver does not report per-process memory (Windows and WSL); notification channel errors no longer expose request URLs that could contain tokens; and newly installed Monitors no longer send alerts to blank placeholder channels.
  • All Linux block devices in server details: the disk dialog lists every disk and partition, including unmounted and blank ones, with model, size, type, transport and file system. The Monitor panel shows them too (agent v0.3.0).
  • Android: a redesigned, resizable home-screen widget; server shortcuts; a Quick Settings sessions tile; sharing text and files from other apps into a snippet or server; keyboard shortcuts; Live Updates; per-app language in system settings; and widget previews in the launcher.
  • File editing on Monitor-only servers and this device, as on SSH servers. If a file changes on the server while open, saving asks before overwriting it.
  • Persian (فارسی), the first right-to-left language.
  • AI settings now appear at the top level of Settings.
  • The Wiki link is removed from About and the macOS menu.
  • Translations revised in all languages, including the Android widget, the store listing, the Monitor panel and the website.
  • Monitor agent v0.3.0 uses ntex 4.
  • Editor select-all with an input method and cursor movement across lines.
  • The “clear all settings” button no longer appears on settings sub-pages, where it could reset the language and first-run setup.
  • WebDAV restore no longer fails when a file name contains a %.
  • Android no longer treats a session stopped on purpose as a lost connection.
  • Monitor agent v0.3.0 on Windows no longer crashes about 20 seconds after starting as a service or over SSH. Timed-out commands now end with all their child processes.
  • SSH host certificates: connect to servers that present only a host certificate, and trust host certificate authorities by host pattern in Settings → SSH, as with OpenSSH’s @cert-authority.
  • Encrypted key passphrases are remembered in this device’s system keychain, so they are not asked for after a restart. The key itself stays encrypted, including in backups. The key editor shows the saved passphrase after app-lock authentication. Turn it off in Settings → SSH.
  • Agent: a conversation can include what is on screen, such as the selected server’s status, containers, processes, services, terminal or file view.
  • SSH connections using AES-GCM are faster, including file transfers.
  • The selection tab in Terminal, Files and Remote desktop is now named “Select” and no longer looks like a button.
  • BMC: power controls show an action in progress and prevent overlapping ones; BMC and virtualization settings ask for the password again when the address changes.
  • Text selection in full-screen terminal programs follows whether the program uses the mouse.
  • The terminal’s long-press menu works again.
  • A failed reconnect no longer closes the connection the server status uses.
  • BMC: the first status read after opening works, and refreshes keep the system details already found.
  • When the app cannot read its data because the stored key is lost or rejected by the system keystore, it says why and offers to retry or start without data, instead of failing to start; the page also mentions keystore modules on rooted Android devices.
  • Monitor: russh 0.64.1 for a security advisory (not reachable in the agent).
  • Icon packs: icons chosen apart from the theme, and themable icons in the Files window, looked up by file extension.
  • Markdown preview: Markdown files open rendered in the file editor, with an Edit button for the source.
  • Reconnect button in the terminal, for a connection that looks alive but no longer answers.
  • System groups beside system users, in the app and the Monitor panel.
  • Screen reader support: terminal content can be read aloud, benchmark logs are available as text, icon-only buttons have accessible names, and the Monitor panel can be used with a keyboard and a screen reader. The panel’s terminal reader mode is opt-in.
  • The app and the Monitor agent check that they speak the same protocol version, and say which one needs updating when they do not.
  • Saved private keys are hidden by default in the editor and can be shown after app-lock authentication.
  • Agent: thinking levels follow the selected model, and favorites and the composer show which provider a model is from.
  • Remote desktop: KDE Plasma’s built-in RDP server (krdp) no longer disconnects right after login, and xrdp logs on with the saved password instead of showing its own login screen.
  • Server details: cards with more than six rows (sensors, GPUs, batteries, BMC, custom commands, disk health) can show every row.
  • When the status script cannot be placed in /tmp, the fallback directory in the user’s home now works. Memory that could not be read shows the reason instead of “100% of 1024 B”.
  • Monitor: disks are read on machines whose language is not English.
  • A launch that fails shows why instead of opening no window, and an unreadable preferences file no longer stops the app from starting. On Windows and Linux, preferences are written atomically, so an interrupted write no longer damages them.
  • Server readings below the terminal: an optional bar with the server’s CPU, memory, network and disk, above the virtual keys on a phone. Turn it on in Settings → SSH, or from the terminal tab’s menu.
  • Bottom sheets can be resized by dragging, pickers open as sheets on phones, and network direction arrows now appear before their values.
  • Updated the IronRDP dependency used by remote desktop.
  • Android: the notification shows the app’s glyph instead of a solid ring.
  • Long Agent chats can be opened again. Their messages are stored in SQLite and loaded a page at a time.
  • Fixed terminal buffer gaps and stale lines after resizing or scrolling. Virtual Ctrl, Alt, and Shift keys now retain their pressed state.
  • Desktop: Settings opened from the tray appears beside the rail instead of covering the window, and can be closed normally.
  • Windows: installing the status script no longer fails when the exit status arrives after the output has ended.
  • Closing a workspace no longer errors while one of its shells is shutting down.
  • Workspace tab: terminals and other server pages side by side in split panes, with typing sent to several terminals at once, saved layouts and customizable keyboard shortcuts.
  • Beta features are marked the same way on every page.
  • Android: Linux installations now preserve hard links and read-only directories; temporary files go to /tmp.
  • Connections dropped while the app is in the background are detected and reconnected instead of left hanging. On iOS, a file transfer keeps running for a while after the app leaves the foreground.
  • The terminal’s Agent panel stays above the keyboard and shows when a reply is being written.
  • Swiping back from a page on one tab no longer opens the keyboard for a terminal on another.
  • Diagnostics are uploaded only after you choose a level.
  • Firewall management for ufw and firewalld: view and edit rules and zones, with checks that warn before a change would lock you out of SSH.
  • Program status in the terminal: progress (OSC 9;4), command start and finish (OSC 133) and program status (OSC 7501) are shown on the session, with an optional notification when a long command finishes.
  • Terminal line height setting; the terminal settings show which font is in use.
  • Network traffic beside speed on the server page, with every interface selectable; the CPU row shows the thread count and per-thread usage.
  • A per-server option to count network filesystems in the disk total.
  • Tabs on narrow screens share the same top bar, which stays clear of the iPadOS window controls.
  • Server rows in every side list look the same (server, terminal, files, remote desktop): the distribution icon with a status dot, or a status bar when the icon is hidden.
  • Home page charts load faster.
  • Disks are read from both lsblk and df, so the disk list and disk total match on every page.
  • Memory in use no longer counts the page cache.
  • ARM CPUs show their manufacturer and model, and every core type is listed.
  • Fixed a launch failure in Italian, Korean and Azerbaijani.
  • A terminal opened at launch failed when the server refused the first connection; it now retries.
  • A terminal restored on another tab took the focus and the keyboard.
  • Stopping the Agent now ends a running command at once.
  • Agent replies and their code can be selected on every platform.
  • Remote desktop: keyboard input, long press and VNC passwords.
  • Themes are included in backups.
  • A fully charged battery no longer triggers an alert; a low battery does when the device is running on battery power.
  • Hosts without /etc/hostname now show a name.
  • Previous Agent conversations are removed. The new Agent engine cannot use the old conversation history, which was not included in backups.
  • Some settings have been removed, including the old CPU and network display options, server history, card ordering, custom theme catalog URL, and opening terminals in the system SSH app. Terminals now always open in ServerBox.
  • Some Monitor features require agent 0.2.0, including accounts and roles, port forwarding, longer history and Monitor settings. When upgraded, existing accounts become admins with permissions based on the old access settings.
  • Remote desktop: Connect to servers with RDP or VNC through SSH or a Monitor agent, without exposing the desktop port. Multiple connection profiles are supported. Password saving is optional; audio, multiple monitors and file transfer are not supported.
  • Virtualization: Manage Proxmox VE and libvirt/KVM virtual machines and containers, including power, console, snapshots, storage and networks. Proxmox settings are carried over from the server page.
  • Use this device as a server on Linux, Windows and the macOS DMG build, with status, processes, services, containers, terminal and files.
  • Themes and a theme store: Install official themes or import .fsbt packages. Existing AMOLED modes are converted to the AMOLED theme.
  • Port forwarding through a Monitor agent, including local, remote and SOCKS5 forwarding. SSH also supports SOCKS5 forwarding.
  • Monitor accounts, roles and settings can be managed in the app, including access permissions, collection, alerts, data retention and notifications.
  • serverbox:// links can open servers, features and snippets or prefill a new server. Links do not include passwords or keys, and snippets ask before running.
  • ProxyCommand on Android and iOS, plus access to installed Linux files from Android’s file picker.
  • More monitoring data, including GPU, disk, network, battery, sensor and SMART readings, with up to 30 days of agent history.
  • App-drawn tmux controls, reduced motion, improved terminal reconnection and support for older SSH servers are also available.
  • Server and settings pages have a new layout, with searchable settings, server search and sorting, clearer status information and a more compact phone navigation bar.
  • Server connections are easier to manage: SSH and Monitor can be enabled separately and ordered as preferred or fallback connections.
  • The Agent has a new engine with provider and tool choices, separate app and terminal conversations, image attachments and optional automatic approval for commands judged safe.
  • Server management pages are improved for containers, users, processes, services and scheduled tasks. Services can be managed without opening a terminal, and process and task lists are easier to inspect.
  • Files in the old device Documents location are copied to the new app storage location; the originals remain in place.
  • Fixed process controls and status readings on Linux, Windows, macOS and BSD.
  • Fixed user and scheduled task pages on servers using fish or BusyBox.
  • Fixed backup restore and import issues, including duplicate server names and older keys; server renames now keep benchmark history.
  • Fixed settings sync, server sorting, SSH connection cleanup and several crashes caused by unexpected server responses.
  • Fixed Monitor agent hangs and alert rules that missed data or did not run.
  • One macOS build per architecture. Apple silicon gets ServerBox-<version>-arm64.dmg and Intel gets ServerBox-<version>-amd64.dmg. The App Store build supports Apple silicon only. All macOS builds now require macOS 13 or later.
  • Users and scheduled tasks. Two new entries in a server’s function row. Users creates, edits and removes system accounts — UID, primary and supplementary groups, login shell, home directory, password. Scheduled tasks reads and writes crontabs, keeping comments, environment variables and lines it does not recognise. Both run through sudo, and both support Linux servers only.
  • A switch for Live Activities, at Settings → App → iOS → Live Activity and off by default. Previously one appeared whenever a terminal connected, with nothing to turn it off.
  • Azerbaijani (az).
  • You now specify the API version in the Agent endpoint. The app no longer inserts v1 into an address that lacks it, which broke providers such as Zhipu (/api/paas/v4). Upgrading writes the old guess into stored values, so an existing setup keeps working.
  • Long Agent conversations are summarised rather than dropped. Settings → App → AI gained Summarise at and Context size, and a Model table fed from models.dev.
  • Plain-HTTP AI endpoints can be allowed at Settings → App → AI → Allow plain HTTP, for a self-hosted Ollama or vLLM on a LAN. The API key and any terminal context are sent unencrypted; localhost is unaffected.
  • The pre-release update switch is now Receive pre-release updates, and the raw JSON editor is no longer in release builds.
  • Server-sharing QR codes can be scanned. The payload was not compressed, so a server carrying a key produced a symbol up to 177 modules across that a scanner could not read. It is deflated before encrypting now, at a lower error-correction level and a hard size cap.
  • Turning off the app lock requires authentication. The check never worked — the new value was written whether or not the prompt succeeded, so removing the lock took no authentication at all.
  • A downgraded install shows a way out. A build older than its data used to stop before drawing anything: no window, no message, the reason only in a log the user could not reach. It now names both versions and offers an encrypted backup, an unencrypted export, or deleting all data.
  • Devices without biometric authentication no longer lock users out. Restoring a backup onto hardware without biometrics left the lock screen with nothing to open it and the settings switch hidden, so the app was unusable and the control that would fix it was missing.
  • Agent turns with several tool calls no longer break the conversation. Calls left unanswered meant more tool results than the API accepts, which rejected the whole request. Each skipped call now returns an explicit result.
  • Agent command previews no longer draw over their own Allow/Deny buttons.
  • Globe view. A globe button above the server list draws servers where their addresses resolve to. Placement needs a city dataset of about 25 MB that is not bundled and is never downloaded on its own — the confirmation dialog quotes the current sizes first. Servers that cannot be placed sit in a strip below, labelled Private address or No location data, and a manually entered coordinate beats every automatic source. Addresses are never sent to a geolocation service. See Globe view.
  • Benchmark. Runs Yet Another Bench Script on a server and keeps structured, comparable results. A full run takes 10–20 minutes and continues if you leave the page or close the app. Geekbench is off by default, since it downloads a proprietary binary and publishes the result to a public page; the iperf run is reduced and IP lookup is off, for the same reason.
  • A status icon on desktop. The macOS menu bar, the Windows tray and the Linux panel show one row per server with a state glyph, readings and a sparkline. Linux shows a single line and no chart.
  • Share a server to another device. A server record — including a private key held in the key store — travels as a QR code or as a .sbxsrv file. The QR carries a 6-digit one-time code shown separately and expires after 10 minutes; the file uses a passphrase you choose and does not expire. Jump servers, key file paths and BMC credentials are not included.
  • Crash reports. After a crash, Settings → App → Privacy → Crash report appears when a report is available. Reports are not uploaded automatically; you can delete one, copy it, or copy it and open a GitHub issue. Automatic uploads are controlled by the separate Diagnostic data setting. Known server names, addresses, and usernames are replaced with placeholders.
  • The list column folds away, and search stays in place. Search no longer opens a page over the list; it replaces the switcher in the bar and filters results as you type. The server list can be ordered by name or by connection state, and the default stays the order set on the settings page.
  • Virtual filesystems no longer appear in the disk list. Snap revisions, swap areas, container layers and fuse-overlayfs are excluded, and a disk’s source is judged separately from its filesystem type — a ZFS pool named tmpfspool is storage, not a filesystem to hide.
  • Restored the missing virtual key options in the terminal.
  • Geo data updates and globe refreshes are hardened against a failed or partial download.
  • Remote backups require a backup password. Uploading to iCloud, WebDAV or Gist with an empty password is refused, and so is deleting the password while any remote sync is on. An existing unencrypted remote backup still restores and is replaced by an encrypted one on the next upload. Local file and clipboard backups can still be left unencrypted.
  • Services replaces the Systemd page and detects the manager installed on the server: systemd, procd or OpenRC. s6, runit, upstart, launchd and sysvinit are detected and reported as unsupported. Actions on procd and OpenRC units always need root; systemd needs it only for system-scope units. Where the account has no user session bus, only system units are listed and the page says so.
  • SSH cryptography moved to Rust. The record cipher and the per-connection cryptography (x25519, Ed25519 and ECDSA, bcrypt_pbkdf) no longer run on the frame-drawing isolate. Measured on AOT, the record layer went from 15 to 486 MB/s at 32 KiB packets, Ed25519 verify from 1.215 ms to 0.019 ms, and ECDSA P-256 verify from 3.900 ms to 0.084 ms. Parsed private keys are also cached across connections now. AES-GCM, ChaCha20-Poly1305 and RSA stay on the Dart implementation.
  • On Android, system Back inside a terminal no longer closes the whole terminal, and the foreground service is serialized so an empty session list cannot start and stop it in the same breath — which Android 16 could treat as a broken contract and kill the app over.
  • Server refreshes no longer overlap at startup. Startup, lifecycle handling and the auto-refresh timer could each start their own pool, multiplying concurrency; one scheduler owns the queue now.
  • A false incomplete verdict on SSH command output is gone, and the container page hides partial output instead of presenting truncated stdout as the reason something failed.
  • Settings and Logs back navigation pops one level instead of leaving the section.
  • The foreground service no longer re-requests notification permission on every session sync.

This release carries everything since v1.0.1466, including the two pre-releases v1.0.1480 and v1.0.1491.

  • BMC over Redfish. Enterprise management hardware from about 2016 on usually speaks Redfish, and the server detail page can now show its power state and sensors — inlet and CPU temperatures, fan speeds, chassis draw — and act on power: power on, shut down, force off, restart, power cycle, each behind a confirmation naming the reset type. There is no ignore certificate option: trust is on first use, with the fingerprint shown for you to compare. Accounts are shared records, managed at Settings → BMC accounts, each showing how many servers use it. Marked Beta.
  • Several Linux systems at once on iOS. Settings → Terminal → Linux (Beta) installs distributions side by side, each a row with its own mark and version; tapping one selects where a new terminal opens. Distributions and versions come from a signed manifest verified against a key compiled into the app.
  • Generate SSH key pairs in the app. Settings → Private Key now offers Generate key pair or Import: Ed25519 (the default), ECDSA P-256, RSA 2048 and RSA 4096. The generated page shows the public key with a copy button and the line to append to authorized_keys. Private keys are stored as they were given now, so an imported encrypted key stays encrypted and its passphrase is asked on first use rather than being stripped at import.
  • SCP file transfer, for an old or embedded host whose SSH server has no SFTP subsystem. Chosen per server in the editor as a File row with an SFTP/SCP popup; it needs the scp command and the usual file utilities on the server. The browser says so when an SFTP session is what failed to open.
  • Floating terminal. The picture-in-picture button in the terminal’s action bar moves it into a window that floats over every tab — draggable and resizable on desktop, a pill that opens into a sheet on a phone. It is the same session, so the tab draws a placeholder rather than a second view, and a floating terminal is marked as such in the tab.
  • An Agent workspace across servers, the Agent tab, with tools that read the app’s own state: the server list, connection status, connect and disconnect, and keeping a temporary connection as a new server. A temporary host asks for its password in the app rather than in the conversation, and says plainly when that host and password will be saved on the device.
  • Distribution marks. The app identifies the far end’s distribution and can draw a small mark beside a server’s name — off by default, at Settings → Server → Distribution marks. With no Mark URL configured it uses one of four bundled marks (Debian, Gentoo, Alpine, NixOS) and a generic icon for everything else. Turning it on shows a terms dialog first, since a mark says only what this device read from the remote system.
  • Combined key and password authentication, and keyboard-interactive authentication for servers that offer it.
  • Storage moved from Hive to one encrypted SQLite database. The move runs at launch with no prompt and copies rather than deletes, so the old data is still on disk afterwards. A record that fails to convert is skipped, and the app carries on with that store empty.
  • Watch and home widgets read the agent’s authenticated API. A hand-typed /status address is not enough to reach an authenticated endpoint, and the login it would need is what those addresses existed to avoid, so they no longer work and cannot be converted — a one-time dialog says so, and configuring the server in the app once feeds every watch and widget. An agent is required. Watch servers moved from opt-in to opt-out: every server with an agent syncs by default, with exclusions at Settings → App → iOS → Watch app. The iOS home widget now needs iOS 17, and the watch app and complication need watchOS 10.
  • Android keeps SSH alive in the background through a foreground service instead of dropping every connection within seconds of switching apps. If notification permission is off, a row under Run in background says an ongoing notification is required and opens system settings.
  • Android Auto Backup no longer applies: the database is encrypted with a device-bound key that a cross-device restore would not carry. Recovery between devices is the app’s own encrypted export.
  • Servers without a home directory are handled.
  • tmux rendering is correct for UTF-8, and its UI is localized.
  • The Windows IME candidate window’s text reaches the terminal.
  • systemctl is used to list units, so units that systemctl list-units alone would miss are shown.
  • Splitting an Android build no longer breaks reproducibility, and the probe for Impeller support runs before startup rather than after.
  • Update checks read GitHub Releases instead of a vendor manifest, with the App Store lookup used on iOS. The dialog now shows the notes of every version between the one installed and the one offered, not only the newest. A release published only to the CDN is no longer seen.
  • The Docker host field is now Edit CONTAINER_HOST on a Podman server and Edit DOCKER_HOST on a Docker one, with separate storage keys, so one server’s Docker and Podman hosts no longer overwrite each other.
  • Backups can be restored. Serialization fell back to toString() for any object it could not encode, so servers, snippets, private keys, port forwards and Wake-on-LAN configs were written as Instance of 'Spi'-style strings — a backup that completed and could not be restored. Each model now has an explicit case, and anything unsupported fails loudly instead of degrading. Backups written by versions 1.0.1448–1.0.1450 are affected and cannot be fully restored.
  • Container names or images containing spaces no longer shift the columns of the whole container list.
  • Korean is complete for this release.
  • tmux in the terminal. Auto-attach on connect, a session and window picker, and a default session name — all off by default under Settings → Terminal → tmux auto-attach. The terminal’s virtual key strip gained a tmux key, and it says so when tmux is not installed on the server.
  • Auto-reconnect. A dropped connection reconnects with a cancellable progress dialog and re-attaches tmux. A shell without tmux also reconnects, to a fresh shell, which means its state is lost.
  • Built-in terminal or system SSH, on every desktop platform. The switch is at Settings → Terminal → General: built-in uses the app’s own terminal, system SSH launches the system ssh command in an external terminal emulator. On macOS the external terminal is Terminal.app and is no longer configurable; that row is Linux-only now.
  • SFTP downloads show throughput (transferred / size – percent – speed) and run faster: the chunk size went from 16 KB to 32 KB and in-flight requests from 1 to 64.
  • The sudo password autofill recognises the prompt in more forms, including a fullwidth colon, and says when no prompt is active instead of doing nothing.
  • The terminal no longer injects a locale the user did not configure; only the server’s own environment variables are passed.
  • Per-process disk I/O rates appear on the Process page as sortable R/s and W/s columns. They need a window at least 1100 px wide, a server that reports the counters, and two samples, so the first reading after opening the page is empty.
  • SFTP downloads no longer stall, and the persistent SFTP channel is closed when the page is disposed.
  • The sudo password prompt is detected in more cases in the virtual keyboard.
  • Pull an image from the container page: an image row’s menu offers Pull and Delete. A dangling image, which has no repository or tag, pulls nothing and says so.
  • Two jump servers, tried in order. The server editor’s SSH advanced section takes up to two jump servers, numbered in the order they are tried; the first that forwards wins. Timeouts, refused connections and forwarding failures advance to the next candidate, while authentication and permission errors stop rather than trying the other. A selection that would form a cycle is not offered, and jump servers and ProxyCommand cannot both be set.
  • File tap opens the editor, and long-press keeps the action menu. Files over 1 MB are refused by the editor.
  • An AI API endpoint can be given as a full .../chat/completions URL or as a service base URL; v1 and the path are appended as needed.
  • The terminal’s Theme setting gained Auto, which follows the app’s own theme rather than the system’s.
  • A temporary private key written for the desktop system-SSH path is now tightened on Windows as well, using icacls; if that fails the launch is aborted with an error rather than proceeding with a readable key.
  • A status command that times out no longer wedges the shared shell for the rest of the connection — the app falls back to a one-shot channel.