CLI reference

August 19, 2026 · View on GitHub

Synopsis

dsh-showcase <session.jsonl|session.jsonl.zstd|dsh-session.zip|-> [options]

The CLI has one operation: convert a DeepSeek Harness session into shareable visual artifacts. It is non-interactive and safe to use in CI.

Input

The positional argument accepts:

  • an official DSH session export ZIP;
  • raw JSONL;
  • DSH concatenated-frame Zstandard JSONL;
  • - for standard input.

Standard input examples:

# POSIX shells, Git Bash, and PowerShell's cat alias
cat session.jsonl | dsh-showcase - --dry-run --json

# Native Windows cmd.exe
type session.jsonl | dsh-showcase - --dry-run --json

Input is read-only. ZIP entries are processed in memory and never extracted to disk. The compressed input limit is 64 MiB and the decompressed session-text limit is 128 MiB.

Options

OptionDefaultContract
-o, --output <dir>dsh-showcase-outputDirectory for generated artifacts.
--format <webp|gif|both>webpAnimated format. Poster and metadata outputs are always generated.
--theme <deepsea|midnight|paper>deepseaDeterministic visual theme.
--redact <auto|strict|off>autoauto replaces and reports; strict stops before writing when a match exists; off warns.
--title <text>first promptCover-title override. The value is subject to the selected redaction policy.
--max-scenes <2-8>5Total scene count including the cover.
--dry-runoffParse, select scenes, and scan redactions without rendering or writing.
--overwriteoffReplace only the fixed generated filenames. No directory is deleted.
--jsonoffEmit exactly one JSON result on stdout. Warnings/errors remain on stderr.
--quietoffSuppress human-readable success output. Errors still print.
-h, --helpPrint current help.
-v, --versionPrint the package version.

Outputs

Depending on --format, the output directory contains hero.webp, hero.gif, or both. It always contains:

  • poster.png — 1280×720 final scene;
  • social-preview.png — 1280×640 cover for GitHub's social preview;
  • README-snippet.md — copy-ready Markdown;
  • showcase.manifest.json — scene and redaction record processed under the selected redaction policy; see ../schemas/manifest.schema.json. With --redact off, selected source text is intentionally preserved.

Existing files cause exit code 5 unless --overwrite is explicit.

Machine output

With --json, stdout contains one object conforming to ../schemas/result.schema.json. The input path is reduced to its basename to avoid leaking a local directory; generated artifact paths are absolute. The schema is versioned independently of the package.

Example:

dsh-showcase session.jsonl --dry-run --json > showcase-plan.json

Exit status

CodeMeaning
0Success
2Invalid/missing input or option
3Strict redaction detected sensitive data
4Rendering or encoding failure
5Output conflict without --overwrite
130Interrupted

Stability

Flags, exit codes, and result schema are compatibility surfaces. Changes require a changelog entry, schema update, tests, CLI help update, and corresponding English/Chinese README changes.