Use this guide when you need to inspect or operate Oysterun from a terminal. You will find the supported product modules, resolve the intended Host, distinguish read-only commands from commands that change state, and use the exact dry-run and confirmation boundary for protected mutations.

Before you start

Starting screen: open a terminal on the machine that owns or can reach the intended Host. Do not begin by guessing an action name.

1. Find the supported product modules

Clean Host Terminal showing oysterun help, the command shape, and the current product-module list.
Visible checkpoint: oysterun --help shows the command shape and the current supported modules in a clean terminal.

Run the top-level help command:

oysterun --help

Under Product modules, the current CLI lists:

auth, sessions, chat, scheduler, mail, notifications, website, telegram

2. Resolve the target before doing anything else

Clean Host Terminal showing an explicit redacted Host read and a successful status envelope for the exact task target.
Visible checkpoint: the redacted Host read returns ok, sessions status, and the intended exact Session in the result envelope.

When more than one Host is available, pass an explicit --host value. Start with a read:

oysterun sessions list --host <HOST_ORIGIN> --json

If you are using previously approved dashboard CLI access, you can check it without changing a Session:

oysterun auth status --host <HOST_ORIGIN> --json
  1. Read the target and returned status.
  2. Confirm that the listed Sessions belong to the intended Host.
  3. Copy an exact identifier only from this trusted read result; do not guess from a display name.

3. Recognize read-only operations

These supported actions inspect current state without requesting a product mutation:

ModuleRead-only actionsTypical result
authstatusCurrent dashboard CLI sign-in status
sessionslist, status, url, profile getSession identity, state, URL, or profile
chatrecent, messages, messages-around, search, loop listBounded messages, context, search matches, or Loop definitions
schedulerlist, get, runs, run-logSchedules and their recorded run information
mailunread-count, list, getMail counts, lists, or one item
notificationsstatusCurrent notification readiness
websitestatus, url, validate, access getWebsite state, URL, validation, or access mode
telegramstatus; sessions telegram getTelegram or per-Session Telegram state

Add --json when you need the structured envelope. It includes ok, command, contract, result, and error.

4. Recognize mutations that do not wait for confirmation

The following action families change product state when their required inputs and authorization are accepted. They are not made safe by the absence of a confirmation prompt:

ModuleActions that change state immediatelyWhat can change
authlogin, logoutCLI sign-in state
sessionsstart, profile update, rename, resume, branch-resume, Telegram enable/disable/updateSessions or Session profile settings
chatsend; Loop create, update, enable, disableMessages or Loop definitions/state
schedulercreate, update, enable, test-runSchedules or a real test run
mailsend, read, unread, archive, unarchive, updateMail delivery or item state
notificationssendNotification delivery unless its documented dry run is used
websiteinit, enableWebsite files or enabled state unless the action's documented dry run is used

5. Preview and confirm protected mutations

Clean Host Terminal showing an exact Session restart dry run and the planned protected request.
Visible checkpoint: the exact target is previewed with dry_run: true and POST /session/restart; no protected mutation runs.

These current operations have an enforced confirmation boundary:

AreaProtected operationsBoundary
Sessionssessions stop, sessions interrupt, sessions restartBare --confirm or --dry-run
Chatchat loop deleteBare --confirm or --dry-run
Schedulerscheduler disable, scheduler deleteBare --confirm or --dry-run
Mailmail deleteBare --confirm or --dry-run
Websitewebsite access set, website disable, website password setBare --confirm or --dry-run

First preview the exact operation. Use --json so the planned request is visible instead of only a short human-readable status:

oysterun sessions restart \
  --host <HOST_ORIGIN> \
  --session-id <SESSION_ID> \
  --dry-run \
  --json
  1. Confirm that the result contains dry_run: true.
  2. Recheck the explicit Host in the command you typed. In the redacted plan, verify the request method and path plus the exact target identifier.
  3. If anything is wrong or unclear, stop. The dry run made no mutation.
  4. Only when the mutation is explicitly authorized, rerun the same reviewed command with the bare --confirm flag instead of --dry-run. That second command performs the mutation.

6. Read output without exposing private data

7. Recover without turning a read into a mutation

8. Finish with a safety check

Clean Host Terminal showing a read-only post status for the same exact Session target.
Visible checkpoint: a final read-only status confirms the same exact Session remains active, alive, and ready after the dry run.

active, alive, and ready are lifecycle and readiness fields. Alone, they do not prove that the provider is responding, typing, occupied, or making useful progress.

  1. Confirm the Host and exact target one final time.
  2. Classify the command as a read, ordinary mutation, or protected mutation.
  3. For a protected mutation, retain the dry-run result and the authority for the confirmed action.
  4. After every ordinary or confirmed protected mutation, run the relevant read-only command against the same Host and exact target. After a dry run, use the post-read to verify that the planned change did not occur.