CLAUDE.md · OpenCoworkAI/open-codesign
CLAUDE.md from OpenCoworkAI/open-codesign: 106 lines covering What this project is, Hard constraints (do not violate), Stack & conventions, Repository layout…
Template by OpenCoworkAI
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/OpenCoworkAI/open-codesign/main/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: ui-design, code-generation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 106 lines
- File
CLAUDE.md
Sections
- What this project is
- Hard constraints (do not violate)
- Stack & conventions
- Repository layout
- Doing tasks here
- Things to avoid
- Useful commands
- Open questions / pending research
First lines (shown under the repo's MIT license)
# CLAUDE.md — Open CoDesign Instructions for Claude Code (and any AI coding agent) working in this repository. Read this before making changes. ## What this project is open-codesign is an Electron desktop app that turns natural-language prompts into design artifacts (HTML prototypes, PDFs, PPTX decks, marketing assets). It's the open-source counterpart to Anthropic's Claude Design, with multi-provider model support via `pi-ai` and a local-first storage model. The full vision and locked decisions live in `docs/VISION.md` when the internal docs are present locally. Public checkouts may not have `docs/`; in that case use `AGENTS.md`, public issues/PRs, and README context instead of blocking. > Note: `docs/` is gitignored — internal team materials (research, roadmaps, handoffs) live there but are not part of the public repo. Clone contributors will not have this directory; team members will find it present locally after cloning and copying the internal docs back. ## Hard constraints (do not violate) These are project-level commitments, not preferences: 1. **No bundled model runtimes.** No Ollama, llama.cpp, Python, or browser binaries shipped in the installer. Use system installs or lazy-download on demand. 2. **BYOK only.** No proxied API calls, no cloud account, no telemetry by default. User credentials stay in `~/.config/open-codesign/config.toml` (plaintext, file mode 0600 — matching Claude Code / Codex / gh CLI conventions). 3. **Local-first storage.** v0.2 design state is file/session based and local-first. Do not add new SQLite-backed session/design feature state. 4. **Permissive shipped dependencies.** Shipped app/runtime dependencies, bundled assets, scaffolds, skills, brand refs, and copied code must be MIT-compatible permissive. Workflow-only CI/release tools may use copyleft licenses when they are not vendored, bundled, linked, or copied into the product; document the reason. 5. **Lazy-load heavy features.** PPTX export, web capture, codebase scan, etc. must dynamic-import on first use, not on app start. 6. **Compatibility, upgradeability, no bloat, elegance** — the four PRINCIPLES §5b checks. Every PR description must mark all four green. ## Stack & conventions - **Package manager**: `pnpm` only. Never use `npm` or `yarn`. Workspace declared in `pnpm-workspace.yaml`. - **Build orchestration**: Turborepo. - **Lint + format**: Biome (single tool, no ESLint + Prettier). - **Tests**: Vitest (unit) + Playwright (E2E). New features require at least one Vitest test. - **TypeScript**: `strict: true`, `verbatimModuleSyntax: true`, `moduleResolution: "bundler"`. No `any`. - **Commits**: Conventional Commits, enforced by commitlint. - **Versioning**: Changesets. Don't hand-edit `CHANGELOG.md`. - **Node**: 22 LTS (pinned via `.nvmrc` + `engines`). - **Model layer**: All LLM calls go through `@mariozechner/pi-ai`. Don't import provider SDKs directly in app code; if pi-ai lacks a feature, add it to `packages/providers` as a thin extension. ### Frontend stack (locked) - **UI framework**: React 19 + Vite 6 - **Styles**: Tailwind v4 + CSS variables (tokens in `packages/ui`) - **State**: Zustand (do not introduce Redux / Recoil / MobX) - **Routing**: native `useState` view switching at first; TanStack Router only when route count > 5 - **Components**: Radix UI primitives + custom shadcn-style wrappers in `packages/ui` - **Icons**: `lucide-react` (only) - **Forms**: native `<form>` + `FormData` (do not introduce react-hook-form / formik) - **Animations**: Tailwind transitions (do not introduce framer-motion / motion) - **Sandbox renderer**: Electron iframe `srcdoc` + esbuild-wasm + import maps (see `docs/research/03-sandbox-runtime.md`) - **Electron version**: latest stable, but NOT 41.x (cross-origin isolation regression) - **Storage**: file/session-backed design state; TOML files for config (no electron-store blob) ## Repository layout ``` apps/ desktop/ # Electron app shell (main + renderer) packages/ core/ # Generation orchestration (prompt → artifact pipeline) providers/ # pi-ai adapter + custom provider extensions runtime/ # Sandbox renderer (iframe-based preview) ui/ # Shared design system (aligned with open-cowork tokens) artifacts/ # Artifact schema (HTML / React / SVG / PPTX) exporters/ # PDF / PPTX / ZIP exporters (lazy-loaded) templates/ # Built-in demo prompts and starter templates shared/ # Types, utils, zod schemas docs/ # Vision, roadmap, principles, RFCs (gitignored — internal only) examples/ # Reproductions of Claude Design public demos ``` ## Doing tasks here - **Read `docs/VISION.md` and `docs/PRINCIPLES.md` when available** for any non-trivial change. Public contributors may not have internal docs. - **Use the planning-with-files workflow** for any task spanning > 5 tool calls or > 3 files. Plans live in `.claude/workspace/`. - **Use git worktrees for parallel work.** See `docs/COLLABORATION.md` for the workflow. Never run two unrelated feature branches in the same checkout. - **Check `docs/RESEARCH_QUEUE.md` when available** before starting work that touches sandbox / inline-comment / slider / PPTX / pi-ai capabilities — research may still be pending and decisions unresolved. - **Respect the lean budget.** Before adding a dependency: search for a tiny alternative, consider inlining, ask if it can be a peer dep. - **UI must use `packages/ui` tokens.** Don't hard-code colors, fonts, or spacing in app code. If a token is missing, add it to `packages/ui` first. - **No "design for the future" abstractions.** Three similar lines is fine. Don't introduce factories, plugin systems, or config-driven dispatch unless we have two real callers. - **No comments explaining what code does.** Names should do that. Only comment the *why* when it's surprising. - **Schema-version everything that lives on disk.** Config files, SQLite tables, IPC payloads, exported bundle formats — all carry a `schemaVersion` field so we can migrate without breaking older installs. ## Things to avoid - ❌ Adding `node_modules`, build outputs, or `.env*` files to git - ❌ Importing from a provider SDK (`@anthropic-ai/sdk`, `openai`, `@google/genai`) in app code - ❌ Writing tests that mock the LLM at the SDK level — mock at the `core` boundary instead - ❌ Adding tracking, analytics, or auto-update without explicit opt-in UX - ❌ Hard-coding any path; respect XDG base dirs / Electron `app.getPath()` - ❌ Synchronous I/O in the main process - ❌ `console.*` in `apps/desktop/src/main/**`, `packages/core/**`, `packages/providers/**`, `packages/exporters/**`, `packages/shared/**` — use `getLogger()` (main) or the injected `CoreLogger` (core/providers/exporters). Biome enforces this. ## Useful commands ```bash pnpm i # install (uses Corepack-pinned pnpm) pnpm dev # start Electron + Vite renderer pnpm test # vitest watch pnpm test:e2e # playwright pnpm lint # biome check pnpm typecheck # tsc --noEmit across workspace pnpm build # produce signed Mac/Win installers pnpm changeset # record a release-worthy change ``` ## Open questions / pending research See `docs/RESEARCH_QUEUE.md`. Don't prematurely lock in answers to questions still under investigation.
Signals
- Stars
- 8,102
- Forks
- 855
- Open issues
- 61
- Last commit (this folder)
- May 4, 2026 (5 months ago)
- Last release
- Sep 19, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/OpenCoworkAI/open-codesign
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from OpenCoworkAI
- 0.643score
open-cowork
OpenCoworkAI
Free open-source desktop app for Windows and macOS that runs AI agents with one-click install, sandboxed workspaces and Skills.
AgentAFreshness: A★ 2.2K - 0.642score
AGENTS.md · OpenCoworkAI/open-codesign
OpenCoworkAI
AGENTS.md from OpenCoworkAI/open-codesign: 237 lines covering What This Project Is, Hard Constraints, AI Visibility For Web Work, Current Architecture…
TemplateAFreshness: A★ 8.1KCodex +5
Cite this page
CLAUDE.md · OpenCoworkAI/open-codesign. Agent Mart. https://agentmart.dev/templates/opencoworkai-open-codesign-claude-md (last updated 2026-10-24)