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.
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 sordocker compose up. - Agents are listed, unticked, as the command that picks the conversation up again. For Claude Code that is
claude --resumewith the tab’s own conversation, shortened on the sheet to something likeclaude --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 offersclaude --resumewith the task’s name, which opens Claude’s own picker, orclaude --continue. Codex is offered ascodex 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.