opencode/packages/tui/test/theme/gallery/README.md
2026-07-16 18:54:39 +00:00

37 lines
1.5 KiB
Markdown

# TUI theme screenshot gallery
This gallery runs one repeatable OpenCode Drive workflow for every V1 theme in a directory. Each theme runs in
light and dark mode and produces a flat set of screenshots covering the home screen, markdown, permission prompt,
form prompt, and session switcher.
It expects `opencode-drive` to be installed globally and available on `PATH`.
The checked-in fixtures include selected built-in OpenCode themes and community themes from
[`vaprdev/opencode-themes`](https://github.com/vaprdev/opencode-themes). Theme-specific attribution and licenses
remain documented in that source repository.
## Run
Place theme JSON files in `themes/`, then run from the repository root:
```sh
bun packages/tui/test/theme/gallery/run.ts
```
Custom input and output directories can be passed as positional arguments:
```sh
bun packages/tui/test/theme/gallery/run.ts ./my-themes ./theme-screenshots
```
Output files are named `<theme>-<mode>-<state>.png` in one flat directory. Existing files with the same names are
overwritten. Runs are sequential so each isolated OpenCode Drive instance owns its own ports and artifacts.
The current TUI discovers V1 theme files and migrates them to V2 at runtime. Native V2 JSON files are reported as
unsupported and make the runner exit nonzero; they are not converted or silently rendered with a fallback theme.
Before changing the scenario, typecheck it with:
```sh
opencode-drive check packages/tui/test/theme/gallery/scenario.ts
```