Skip to main content

Commands at a glance


Browsing past sessions — /sessions

In a terminal, ↑/↓ moves the highlight, Enter resumes that session, and Esc closes the picker. It shows up to 20 sessions with relative times. The status line shows the selected session’s ID, start time, duration, and turn count. The current session is marked, and the most recent previous session is highlighted by default when one exists. When output is piped, /sessions prints a table with IDs, start times, durations, and turn counts. Use the displayed ID with /resume <id>. The current session updates its elapsed time live.

Resuming a past session — /resume

Use /resume with the first characters of the session ID from /sessions:
From outside the REPL, pass the same ID or name substring to the CLI launcher (for example opensre --resume 9b2e4f7a, or o --resume OOM when o is your shell alias):
In a TTY, bare /resume opens an interactive picker of recent sessions. New turns after a resume append to that same session file — /resume does not create a duplicate entry in /sessions. To resume a specific branch point, append an entry ID prefix after the session ID:
When the branch contains a compaction entry, replay inserts the saved summary before the kept messages so the assistant has the compacted context. OpenSRE restores the conversation, shows the past exchanges, then lets you continue:
What gets restored: You can also search by name instead of ID:
If the prefix matches more than one session, OpenSRE asks you to be more specific.

When you exit

When you leave the REPL, OpenSRE prints your session ID so you can resume later: Example:
Copy the /resume … or opensre --resume … line from the terminal, or find the session later with /sessions.

Starting fresh with context — /new

/new closes the current session and opens a new one, but carries the conversation forward:
Use /new after a long session to keep /sessions tidy without losing your place in the conversation.

Compacting long sessions — /compact

OpenSRE replays earlier turns of the session to the model in order, including the tool calls it made and what they returned (long tool output is shortened to its start and end). A follow-up such as “rerun the one that failed” can use a run ID from an earlier answer without fetching it again. When that history grows past its token budget, OpenSRE compacts it before the next turn: the model writes a summary of the older turns, and the most recent turns stay word for word with their tool results. /compact does the same on demand and keeps only your latest exchange:
The compaction is saved in the session file, so /resume restores exactly the summary and the turns that were kept. Run /context to see how much of the budget the history uses and what else the next model call carries. /new vs /clear:

What OpenSRE saves

Each session records:
  • When it started and ended, and how long it ran
  • Every message you sent and every response from the assistant
  • Tool calls, tool updates, tool results, model/tool changes, labels, custom messages, and compaction summaries
  • Infra context discovered while working (service names, cluster names, regions)
  • Turn counts
Sessions are stored as files under ~/.opensre/sessions/. Each file is plain text and human-readable.

Inspecting a turn’s decisions

Local session traces record the model’s original closing, the reason a stop was accepted or rejected, the plan and pending questions, and the displayed and saved answers separately. These diagnostic records stay out of resumed conversation context. Known credential patterns are redacted; ordinary conversation text is retained. Run /sessions to find the session ID, then use jq in your terminal. Replace 3f8a1c2d with the ID prefix shown for your session:
Look for goal_review and conclusion to understand stopping, agent_finished for the original closing, response_composition for display filtering, and response_displayed / assistant_persisted for the two outputs. Rejected closing attempts appear as model_conclusion records. The records include the prompt turn ID when available; assistant_persisted.message_id identifies the saved message. These records are added on new runs; older traces cannot recover text that was never recorded.

Privacy and what is not saved

  • Secrets or credentials — known token shapes are redacted from the prompt log by default (set OPENSRE_PROMPT_LOG_REDACT=0 to store raw text instead)
  • Token usage — tracked in ~/.opensre/prompt_log.jsonl when prompt logging is enabled
See Interactive Shell Privacy for redaction controls.