https://github.com/shiinamachi/slidex
Generate presentation deck with Codex
https://github.com/shiinamachi/slidex
codex codex-app codex-plugin presentation presentation-slides
Last synced: 19 days ago
JSON representation
Generate presentation deck with Codex
- Host: GitHub
- URL: https://github.com/shiinamachi/slidex
- Owner: shiinamachi
- Created: 2026-05-20T11:28:51.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-10T08:37:43.000Z (about 1 month ago)
- Last Synced: 2026-06-10T09:24:14.615Z (about 1 month ago)
- Topics: codex, codex-app, codex-plugin, presentation, presentation-slides
- Language: Go
- Homepage:
- Size: 2.82 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# slidex
[한국어 문서 →](README.ko.md)
**Local CLI and Codex Plugin for producing HTML-first business documents and
page-style PDFs.**
`slidex` manages each document project as an isolated deck workspace, builds
static HTML slides with design tokens and Korean-safe typography, renders slide
PNGs and a final PDF, and verifies that every delivery artifact is fresh before
sharing.
---
## ⚡ Install with Codex App
Choose one release channel, then paste the matching prompt into a **Codex App**
chat. Codex will automatically install the CLI, register the plugin, and verify
the setup. The default install does not require GitHub CLI or GitHub login.
### Production build
Use this for the latest stable release:
```text
Install slidex production build from https://github.com/shiinamachi/slidex. Read INSTALL.md in that repository and follow the production channel install instructions.
```
### Canary build (Pre-Release)
Canary builds are in-development pre-release builds and may be unstable. Use
this channel only when you need unreleased fixes or want to test upcoming
changes:
```text
Install slidex canary build from https://github.com/shiinamachi/slidex. Read INSTALL.md in that repository and follow the canary channel install instructions; keep canary separate from any existing production install.
```
> See [INSTALL.md](INSTALL.md) for the full internal install reference.
---
## What is slidex?
Use `slidex` when you need a **local, reproducible workflow** for:
- 📊 Business presentations and investor decks
- 📝 Executive reports and proposals
- 🏛️ Government review documents
- 🤝 Customer decision materials
`slidex` is **not** a hosted web app. Everything runs on your machine —
the editable source is an HTML file, and the delivery artifact is a PDF.
### Key files
| File | Role |
|------|------|
| `decks//out/final_deck.html` | Editable visual source of truth |
| `decks//out/final_deck.pdf` | Primary delivery file |
---
## Features
| | Feature | Description |
|---|---------|-------------|
| 🗂️ | **Deck Workspaces** | Each project gets its own isolated directory under `decks/` |
| 🏗️ | **HTML-first Build** | Static HTML slides with CSS design tokens, 16:9 widescreen, Korean-capable fonts |
| 🖼️ | **Automated Rendering** | Slide PNGs and paginated PDF via headless Chrome/Chromium/Edge |
| ✅ | **Quality Assurance** | QA montage, QA report, and freshness checks before delivery |
| 📦 | **Package Verification** | Validates all required artifacts exist and match current HTML |
| 🔌 | **Codex Plugin** | Local React wizard workbench for deck creation via Codex App browser |
| 📋 | **Evidence-aware** | Every claim must be sourced, confirmed, or marked as an assumption |
---
## Quick Start
### 1. Create a deck
```bash
slidex init customer-retention
```
### 2. Write the brief
Edit the generated brief with your document goals, audience, and source
material:
```text
decks/customer-retention/brief.md
```
### 3. Add supporting material
Place logos, data files, reference documents, and brand guidelines into the
deck workspace directories (`assets/`, `brand/`, `data/`, `source/`).
### 4. Run the workflow
```bash
slidex run --deck decks/customer-retention
```
This runs the full pipeline: intake → strategy → spec → HTML build → render →
QA → delivery summary → package check.
### 5. Review the output
```text
decks/customer-retention/out/final_deck.html ← editable HTML
decks/customer-retention/out/final_deck.pdf ← delivery PDF
decks/customer-retention/out/qa_montage.png ← visual QA overview
decks/customer-retention/out/qa_report.md ← QA details
decks/customer-retention/out/delivery_summary.md ← delivery checklist
```
---
## Deck Workspace Structure
Every document project lives under `decks//`:
```text
decks//
brief.md ← document goal, audience, constraints
DESIGN.md ← deck-specific visual direction
assets/ ← logos, product images, reference files
reference_docs/
images/
brand/ ← brand guidelines, colors, fonts
data/ ← CSV, XLSX, chart/table source data
source/ ← PDFs, DOCX, screenshots, meeting notes
out/ ← generated outputs (see below)
```
### Generated outputs
| File | Description |
|------|-------------|
| `out/strategy.md` | Content strategy |
| `out/deck_spec.json` | Structured slide spec |
| `out/final_deck.html` | Editable HTML slides |
| `out/final_deck.generated_baseline.html` | Baseline for diff |
| `out/rendered_slides/*.png` | Individual slide PNGs |
| `out/final_deck.pdf` | Paginated PDF |
| `out/render_manifest.json` | Render metadata and hashes |
| `out/qa_montage.png` | Visual QA montage |
| `out/qa_report.md` | QA findings |
| `out/notes.md` | Presenter notes |
| `out/delivery_summary.md` | Final delivery checklist |
---
## Workflow Pipeline
```text
init ──→ intake ──→ strategy ──→ spec ──→ build ──→ render ──→ qa ──→ finalize ──→ package
│ │
└──── slidex run --deck decks/ ─────────────────────────────────────────────┘
```
Use `slidex run` for the standard end-to-end workflow. Use individual stage
commands only for inspection or repair:
```bash
slidex inspect --deck decks/ --write
slidex intake --deck decks/
slidex strategy --deck decks/
slidex spec --deck decks/
slidex build --deck decks/
slidex render --deck decks/
slidex qa --deck decks/
slidex finalize --deck decks/
slidex package --deck decks/
```
If source material is insufficient, `slidex` stops with exit code `3` and
writes questions to `out/intake_questions.md`. Answer them in `brief.md` and
run again.
---
## Editing HTML Directly
If you edit `out/final_deck.html` by hand, sync and re-render before claiming
the PDF is current:
```bash
slidex sync-html-edits --deck decks/
slidex render --deck decks/
slidex qa --deck decks/
slidex package --deck decks/
```
---
## Codex Plugin Workbench
The repository includes a Codex Plugin at `plugins/slidex/` — an interactive
workbench for creating deck briefs through the Codex App in-app browser.
```bash
slidex workbench start --deck-id customer-retention
```
Open the returned `http://127.0.0.1:/workbench/` URL in the
Codex App browser. Plugin startup emits a Browser-first `browserOpen` intent:
Codex should use the Browser plugin / `@Browser` when available, with URL click
or manual navigation as fallback. New deck creation through the plugin must
display this React Wizard first; do not fall back to `slidex init`, manual
directory creation, or direct `out/final_deck.html` authoring. The CLI embeds
the default `decks/_template`, so installed binaries can bootstrap the
workbench even when the active workspace has no template folder. For production
or canary release installs, startup automatically checks and applies a newer
verified release before opening the wizard; if an update is applied, it returns
a restart or pending-activation instruction instead of opening the wizard.
Selecting `Complete & generate` writes `brief.md` and workbench artifacts to
the deck's `out/` directory, then starts `slidex run --deck decks/
--non-interactive` in the background.
---
## Troubleshooting
Check the CLI and render environment:
```bash
slidex doctor --render
```
If Chrome is not detected, set one of these environment variables:
```text
CHROME_BIN · GOOGLE_CHROME_BIN · CHROMIUM_BIN · MSEDGE_BIN
CHROME_FOR_TESTING_BIN · PLAYWRIGHT_CHROMIUM_BIN
PLAYWRIGHT_CHROME_BIN · PUPPETEER_EXECUTABLE_PATH
```
Deck-specific diagnostics:
```bash
slidex doctor --deck decks/ --render
slidex inspect --deck decks/
```
Schema validation:
```bash
slidex validate-spec --spec decks//out/deck_spec.json
```
---
## Command Reference
| Command | Description |
|---------|-------------|
| `slidex init ` | Create a new deck workspace |
| `slidex run --deck decks/` | Run the full workflow |
| `slidex render --deck decks/` | Render PNGs and PDF |
| `slidex qa --deck decks/` | Run quality assurance |
| `slidex package --deck decks/` | Verify delivery artifacts |
| `slidex sync-html-edits --deck decks/` | Sync manual HTML edits |
| `slidex doctor --render` | Check CLI and render environment |
| `slidex workbench start --deck-id ` | Start the Codex workbench |
| `slidex validate-spec --spec ` | Validate a deck spec JSON |
Run `slidex --help` for the full command list. See
[commands.md](commands.md) for advanced examples including render overrides and
Codex-specific commands.
---
## License
MIT License. Copyright (c) 2026 shiinamachi. See [LICENSE](LICENSE).