User guide

Updates

How Pragma finds, verifies, and installs new versions, and what a restart update does to your tabs and sessions.

Pragma checks for a new version in the background (every few minutes and when the window regains focus). When one is available, Install Update appears above the project switcher. Turn the automatic check off, or point it at another update server, under Settings → Other.

Two kinds of update

KindWhat changesWhat happens when you install it
ReloadOnly the interfaceThe window reloads in place. Terminals and agents are untouched.
RestartThe app or its serverPragma quits, installs the new version over the old one, and relaunches with your workspace kept.

A restart update asks first, because it may restart the Pragma server that runs your terminals. It is not a clean-slate reset: your projects, worktrees, tabs, and split layouts all stay. After relaunching, Pragma replaces the server only if the update shipped a different server binary.

What happens to live sessions depends on whether that server restarted:

  • The server kept running — the relaunched desktop reattaches to every PTY that survived, with its scrollback and output intact.
  • The server restarted — plain shell sessions end. Their tabs reopen as fresh shells; there is no snapshot of an arbitrary shell. Interrupted agent sessions are restored where the integration supports it, as described below.

What gets restored, exactly

When Pragma launches an agent whose integration supports resume, the host records the invocation before the command is written and tracks the child's real exit. After a crash or a server restarting under an update, Pragma restores an interrupted, still-open session only when all of these hold:

  • the agent was launched through Pragma — the launcher, the agent board, a phone, the SDK/CLI, or a fanout attempt;
  • the integration reported the harness's own conversation id;
  • the child had actually started; and
  • the tab is still open and was not deliberately closed, killed, or exited.

The integration rebuilds the resume argv itself, so the restored session returns to the same conversation with the same working directory, shell, model/mode selection, and account binding. Only the conversation is restored: the original prompt, slash command, startup input, and pre-launch (!!) commands are not replayed. If resume fails, Pragma reports the failure in the tab and keeps it retryable — it never silently opens a new conversation.

Ordinary terminal shells and manually typed agent commands are not restored; a host restart ends them and their tabs open fresh shells. The supported integrations and their known limits are listed in Sessions & recovery.

After an update

The first time the new version runs, Pragma confirms that the update succeeded. The same screen has buttons that open a prefilled post about Pragma on X, Hacker News, Reddit, LinkedIn, or Bluesky, and a Star on GitHub button. If you are signed in to GitHub in Pragma, the button stars the repository for you; otherwise it opens the repository page. It is not shown if you have already starred Pragma.

How a restart update installs

PlatformWhat Pragma does
macOSMounts the disk image out of sight, copies the new Pragma.app over the one you are running (wherever it lives), and reopens it.
WindowsRuns the installer silently after Pragma quits, then reopens Pragma.
Linux (deb / rpm)Asks for your password with the system prompt, installs the package, then reopens Pragma.

If Pragma cannot install in place, for example because it runs from a read-only location such as the mounted disk image, or you cancel the password prompt, it opens the installer instead and tells you why. Finish it, then relaunch Pragma. AppImage builds are not offered restart updates.

Every download is checked against a SHA-256 digest and a signature from the Pragma release key before anything is installed. The helper that finishes the install writes what it did to install.log, next to the downloaded installers in the app data directory.

On this page