I built a React and MDX workspace so AI agents stop generating giant HTML files OpenPress, an open-source framework for fixed-layout document creation, has been published on npm as `@open-press/cli` and `@open-press/core`. The framework separates creative decision-making from presentation, allowing AI agents and human users to generate consistently formatted PDFs and web readers for proposals, white papers, books, and other fixed-format documents without producing oversized HTML files. 固定版面應用層,讓創作型 Skill 不用自己實作 inline edit / dev server / comment marker / 渲染 / 匯出。Skill 負責創作決策 要做什麼 ,OpenPress 負責固定版面工作台 怎麼呈現 。Proposal、白皮書、講義、書、社群貼文、簡報 — 固定尺寸版面,PDF 輸出,網頁 reader。 Status: v1.0.Published on npm as and @open-press/cli . Landing site at @open-press/core open-press.dev . Use open-press when the content keeps changing but the output format must stay stable . Good fits: proposals, business plans, whitepapers, research reports, product specs, books, handbooks, course notes, study guides, technical reports, editorial long-form, branded reports, and fixed-format outputs supplied by external creative skills. Less useful for: one-off chat answers, free-form image editing, and documents that need live responsive reflow instead of fixed page scaling. Install Node.js LTS https://nodejs.org/en/download/ first if node -v , npm -v , or npx -v is not available. OpenPress requires Node.js 20 or newer. npx @open-press/cli init my-doc cd my-doc npm run dev That's it: npm install and OpenPress skill setup happen automatically during init. Open the local URL printed by Vite typically http://127.0.0.1:5173/workspace to see the workbench once a skill has added a press/ workspace. The CLI does not fetch starters. Use a skill when you want an opinionated starting point: npx -y skills@latest add quan0715/openpress-social-card-skill For social cards, use quan0715/openpress-social-card-skill ; it targets 1080×1350 4:5 portrait , not the removed bundled 1080×1080 square starter. The skill owns intake, examples, starter files, and design rules. OpenPress owns the runtime, workbench, rendering, validation, and export. The starter-bearing skills in this repo are just skills; agents can read and use them like any external skill. To hand off to your AI tool: claude Then: 我想寫一份 提案 / 白皮書 / 講義 / 書 ,幫我起手。 Claude Code auto-loads skills/openpress-init/SKILL.md and walks you through intake. codex Same opening prompt. Codex reads AGENTS.md at the repo root for the framework contract. Open the folder in VS Code, then paste the system prompt below into Copilot Chat before your first message. Copilot does not auto-discover SKILL files; the prompt gives it the routing rules inline. After pasting, send the same opening message: 「我想寫一份 ... ,幫我起手。」 You are helping me work in an open-press workspace — an AI-first fixed-layout document framework. Full routing rules live in .claude/skills/openpress/SKILL.md or .agents/skills/openpress/SKILL.md ; read it on demand. Starting from an EMPTY directory: - First run node -v , npm -v , and npx -v . If missing, stop and tell me to install Node.js LTS, reopen the terminal, then retry. - Ask for document type, audience, primary language, scope, and metadata title / subtitle / organization / author . Do not run init before metadata is gathered. - Then run npx @open-press/cli init . with metadata flags. If the target isn't empty, ask me to clean it first a lone .git/ is fine . - If the user wants an opinionated format, install the relevant skill with npx -y skills@latest add