Starting what was running

Opsty keeps a note of what is running in your tabs. When it next opens, it offers them back: your dev servers ticked, and each agent ready to pick up its own conversation.

The sheet titled Running when you left · yesterday: each command it would type, ticked or not, and the buttons to skip, open the folders or start.

The sheet

It is titled with when you left, as in Running when you left · yesterday (or “earlier today”, or “3 days ago”), and asks Start them again? Each row shows the exact command its tab will type and, on the right, where it runs and what it serves, or, for an agent, the conversation’s name.

  • Dev servers are ticked: anything that was listening on a port, and commands that start one, such as npm run dev, vite, next dev, rails s or docker compose up.
  • Agents are listed, unticked, as the command that picks the conversation up again. For Claude Code that is claude --resume with the tab’s own conversation, shortened on the sheet to something like claude --resume 3f2a…, so two Claude tabs in one folder come back as two conversations. Opsty matches each tab to Claude’s conversation file by its name and time, and never opens it. When it could not tell, it offers claude --resume with the task’s name, which opens Claude’s own picker, or claude --continue. Codex is offered as codex resume --last; Gemini as you started it.
  • ssh sessions and other commands are listed, unticked.
Start
Opens one tab per ticked row, in that row’s folder, and types its command exactly as shown, with Enter. With more than one row ticked, the button says how many. The sheet says it too: Each tab types the command shown, exactly.
Just open the folders
Opens the tabs (for the ticked rows, or for every row when none is ticked) and types nothing.
Skip
Closes the sheet.

The same sheet appears after Opsty restarts into an update.

What is never recorded

Anything on a server you marked as production, and editors, pagers and interpreters run on their own: vim, less, top, python3, node and the like. Passwords, tokens and keys are removed from the commands before they are written, by the same rules as history. The note is ~/.config/opsty/running.json; it holds at most twelve rows, and an offer older than two weeks is not shown.

Turning it off, and the saved window

Settings ▸ General ▸ Offer to start what was running turns the offer off, and switching it off deletes running.json at once.

It is separate from Reopen last tabs in the same place, which is off by default. That brings back your tabs, splits and each pane’s folder, never what was in the shell, and it runs nothing. Window ▸ Forget the saved window forgets the saved layout.