Copedal

Building & integrations

DSH session capture

Rebuild a local session as a long image with Pillow, no browser involved.

Paid $15 list, $12 until 2026-12-31 · one skill, yours for good. The outline, the steps and the file open after purchase.

dsh-conversation-capture 123 lines · 7 KB

Background

This skill was adapted from codex-conversation-capture with three changes for the DSH environment:

Why the change is mandatory: the local sandbox forbids processes from opening named pipes, so Chrome dies with platform_channel Check failed as soon as it starts and the headless-browser route is closed. Pillow direct layout spawns no child process and still produces images inside the sandbox. The cost is layout precision below the browser's (occasional orphan punctuation at line ends).

Why it is built this way

The layout engine changed because the sandbox closed the other one. Chrome dies with platform_channel Check failed when a process may not open named pipes, so headless Chrome plus CDP could not produce the page at all. Pillow lays the text out itself and spawns no child process, which is what lets it run inside the same sandbox. The cost is stated in the same paragraph: layout precision below the browser's, with occasional orphan punctuation at line ends.

Two conditions are written before the parameter tables. A turn that has no reply is drawn as an empty turn, so --last-turns confirms that the last few turns actually have replies before anything is exported. --theme auto samples the DSH window background and needs that window open and not minimized, falling back to the Windows app light or dark setting when sampling fails. A page shorter than 1080x1920 produces a still clip padded with the background colour, with no scroll.

Where it bites

  • An empty turn in the finished image A conversation still in progress ends with a question and no reply, and the renderer draws that missing half as an empty turn. Confirm with --last-turns before the real export. Otherwise the long image carries a blank block at the bottom and still passes every acceptance check, so the defect ships.
  • A very long session exported in one go Sessions past 15000 px are the documented limit. Narrow them with --turns or --last-turns first, since exporting everything at once produces an image that has to be reviewed page by page and a slice count nobody planned for. The turn range is cheaper to set than to fix afterwards.
  • No sidecar and no zstandard The bundled python has no zstandard, and the script then reads a .plain sidecar beside the session. That sidecar exists only after node work\token-audit\dump.js has run on the session file once, so a fresh machine finds nothing to read before a single image is written.
  • A theme that does not match the app --theme auto samples the DSH window background, so the window has to be open and not minimized. When the sample fails it drops to the Windows app light or dark setting, and a light image can come out of a dark app. The switch is silent, so pass --theme dark or --theme light when the result matters.

This part is for buyers

The outline, the steps and the SKILL.md stay closed until this address owns the skill.

$15 early bird $12 until 2026-12-31

Buy this skill

Checkout opens soon — leave your address and we will tell you when it does.

all 28 skills for $149, list $430

When to use it

Rebuild a local DSH session as a conversation long image or a scrolling video: read session.v4.jsonl.zstd, lay it out directly with Pillow (no browser needed), encode mp4 with ffmpeg. Use for 'screenshot this conversation', 'long conversation screenshot', 'export the session record', 'make it a scrolling video'; it also lists and searches past sessions.