Skip to content

Editing and Redaction

joshii-h edited this page Jul 2, 2026 · 2 revisions

Editing & Redaction

After a recording you can fix it without re-recording — blur out something sensitive, reword a step, or delete/reorder steps. Everything stays local: no upload, no download, nothing leaves your machine.

Open the editor

From the tray menu choose “Edit last session”, or from a terminal:

stepshot edit ~/Pictures/stepshot/session-<timestamp>

This starts a tiny local server (on 127.0.0.1, protected by a one-time token) and opens the editor in your browser. Leave the terminal / tray running while you edit; press Ctrl+C or click “Done” to stop it.

What you can do

  • Redact an area — drag a rectangle across a screenshot. Click a box to remove it again. Redaction is destructive: the original pixels in the saved step-NNN.png are replaced with a mosaic and cannot be recovered.
  • Redact the clicked element — one click on “Redact clicked element” blanks exactly the button/field that was clicked (its box is detected via accessibility at capture time). Great for a highlighted username or token.
  • Edit the description — type over a step’s text. Clearing it back to the original reverts to the auto-generated description.
  • Delete a step — click Delete; the step greys out and is dropped on apply (remaining steps renumber, gap-free).
  • Reorder steps — the ▲ / ▼ buttons.
  • Insert a manual step+ Add step adds a new step you write yourself (required text, optional image file). Handy for a note or a preparatory step the recorder couldn’t capture. Without an image it renders text-only.

Applying

Click Apply changes. The edits are written straight back into the session, session.json and every enabled export (HTML/Markdown/PDF/DOCX) are regenerated, and the editor reloads onto the updated result. There is no edits.json to download and no extra command to run.

Scripting (headless)

The editor is a friendly front-end for the same engine you can drive directly:

# apply an edits.json (as the editor would POST it), or with none, just
# regenerate every enabled export from session.json:
stepshot apply <session-dir> [edits.json]

edits.json is one ordered list of entries — position sets the order, omitting an original deletes it:

{
  "steps": [
    { "ref": 2, "redact": [[x, y, w, h]] },
    { "ref": 1, "description": "Custom text" },
    { "ref": 3, "description": null }
  ]
}

ref is the original step index in session.json; redact boxes are in image-pixel coordinates; description sets an override, null reverts to the auto text, and an absent key leaves it unchanged.

The source of truth

Each session folder holds a session.json — every step’s metadata plus the clicked element’s box. Both the editor and stepshot apply rebuild all formats from it, so your exports always match the edited session.

Clone this wiki locally