English · Português (Brasil) · Deutsch · Français · æ¥æ¬èª · ç®äœäžæ · ç¹é«äžæ
補åå šäœãããŒã«ã«ã§å®è¡ããŸãã
- Node.js:
~24ïŒNode 24.xïŒããªããžããªã¯package.json#enginesãéããŠããã匷å¶ããŠããŸãã - pnpm:
10.33.xããªããžããªã¯packageManagerãéããŠpnpm@10.33.2ããã³çãããŠããŸããCorepack ã䜿çšããã°ããã³çããããããŒãžã§ã³ãèªåçã«éžæãããŸãã - OS: macOSãLinuxãWSL2 ãäž»èŠãªãã¹ã§ããWindows ãã€ãã£ãã¯ã»ãšãã©ã®ãããŒã§åäœããã¯ãã§ãããWSL2 ã®ã»ããå®å šãªããŒã¹ã©ã€ã³ã§ãã
- ãªãã·ã§ã³ã®ããŒã«ã«ãšãŒãžã§ã³ã CLI: Claude CodeãCodexãDevin for TerminalãGemini CLIãOpenCodeãCursor AgentãQwenãGitHub Copilot CLI ãªã©ãäœãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãèšå®ãã BYOK API ã¢ãŒãã䜿çšããŠãã ããã
nvm / fnm ã¯ãªãã·ã§ã³ã®äŸ¿å©ãªããŒã«ã§ãããå¿
é ã®ãããžã§ã¯ãã»ããã¢ããã§ã¯ãããŸããã䜿çšããå Žåã¯ãpnpm ãå®è¡ããåã« Node 24 ãã€ã³ã¹ããŒã«ïŒéžæããŠãã ããã
# nvm
nvm install 24
nvm use 24
# fnm
fnm install 24
fnm use 24ãã®åŸãCorepack ãæå¹åããŠãªããžããªã« pnpm ãéžæãããŸãã
corepack enable
corepack pnpm --version # 10.33.2 ã衚瀺ãããã¯ãã§ãcorepack enable
pnpm install
pnpm tools-dev run web # daemon ãš web ããã©ã¢ã°ã©ãŠã³ãã§èµ·åããŸã
# tools-dev ãåºåãã web URL ãéããŸããã¹ã¯ãããã·ã§ã«ãšãã¹ãŠã®ç®¡ç察象 sidecar ãããã¯ã°ã©ãŠã³ãã§èµ·åããå ŽåïŒ
pnpm tools-dev # daemon + web + desktop ãããã¯ã°ã©ãŠã³ãã§èµ·åããŸãååèµ·åæãã¢ããªã¯ã€ã³ã¹ããŒã«æžã¿ã®ã³ãŒããšãŒãžã§ã³ã CLIïŒClaude Code / Codex / Devin for Terminal / Gemini / OpenCode / Cursor Agent / QwenïŒãæ€åºããŠèªåéžæããããã©ã«ãã§ web-prototype ã¹ãã«ãš Neutral Modern ãã¶ã€ã³ã·ã¹ãã ãæ¡çšããŸããããã³ãããå
¥åã㊠Send ãæŒããŠãã ããããšãŒãžã§ã³ããå·Šãã€ã³ã«ã¹ããªãŒãã³ã°ãã<artifact> ã¿ã°ãè§£æãã㊠HTML ãå³åŽã«ã©ã€ãã¬ã³ããªã³ã°ãããŸããå®äºããã Save to disk ãã¯ãªãã¯ããŠãã¢ãŒãã£ãã¡ã¯ãã ./.od/artifacts/<timestamp>-<slug>/index.html ã«æ°žç¶åããŸãã
Design system ããããããŠã³ã«ã¯ 129 ã®ãã¶ã€ã³ã·ã¹ãã ã忢±ãããŠããŸã â æäœãã®ã¹ã¿ãŒã¿ãŒ 2 çš®ïŒNeutral ModernãWarm EditorialïŒããã³ãã«ããã補åã·ã¹ãã 70 çš®ãawesome-design-skills ããååŸãã 57 ã®ãã¶ã€ã³ã¹ãã«ã§ãã1 ã€ãéžã¶ãšããã¹ãŠã®ãããã¿ã€ãããã®ãã©ã³ãã®çŸåŠã§ã¹ããã³ã°ãããŸãã
Skill ããããããŠã³ã¯ã¢ãŒãïŒPrototype / Deck / Template / Design systemïŒã§ã°ã«ãŒãåãããã¢ãŒãããšã®ããã©ã«ãã¹ãã«ã«ã¯ · default ãµãã£ãã¯ã¹ãä»ããŸãããã³ãã«ãããŠããã¹ãã«ïŒ
- Prototype â
web-prototypeïŒæ±çšïŒãsaas-landingãdashboardãpricing-pageãdocs-pageãblog-postãmobile-appã - Deck / PPT â
simple-deckïŒåäžãã¡ã€ã«ã®æšªã¹ã¯ã€ãïŒãšmagazine-web-pptïŒop7418/guizang-ppt-skillããã®guizang-pptãã³ãã« â deck ã¢ãŒãã®ããã©ã«ããç¬èªã®ã¢ã»ããïŒãã³ãã¬ãŒã + 4 ã€ã®ãªãã¡ã¬ã³ã¹ã忢±ïŒããµã€ããã¡ã€ã«ãæã€ã¹ãã«ã«ã¯èªåçã«ãSkill root (absolute)ãã®ããªã¢ã³ãã«ãä»äžããããšãŒãžã§ã³ãã CWD ã§ã¯ãªãå®éã®ãã£ã¹ã¯äžã®ãã¹ã«å¯ŸããŠassets/template.htmlãreferences/*.mdã解決ã§ããããã«ãªããŸãã
ã¹ãã«ãšãã¶ã€ã³ã·ã¹ãã ãçµã¿åãããã°ãåäžã®ããã³ããããéžæããèŠèŠèšèªã§ã¬ã€ã¢ãŠãã«é©ãããããã¿ã€ããŸãã¯ããããçæãããŸãã
pnpm tools-dev # daemon + web + desktop ãããã¯ã°ã©ãŠã³ãã§èµ·å
pnpm tools-dev start web # daemon + web ãããã¯ã°ã©ãŠã³ãã§èµ·å
pnpm tools-dev run web # daemon + web ããã©ã¢ã°ã©ãŠã³ãã§èµ·åïŒe2e/dev ãµãŒããŒïŒ
pnpm tools-dev restart # daemon + web + desktop ãåèµ·å
pnpm tools-dev restart --daemon-port 7457 --web-port 5175
pnpm tools-dev status # 管ç察象ã©ã³ã¿ã€ã ãæ€æ»
pnpm tools-dev logs # daemon/web/desktop ã®ãã°ã衚瀺
pnpm tools-dev check # status + æè¿ã®ãã° + äžè¬çãªèšºæ
pnpm tools-dev stop # 管ç察象ã©ã³ã¿ã€ã ã忢
pnpm --filter @open-design/daemon build # `od` çšã« apps/daemon/dist/cli.js ããã«ã
pnpm --filter @open-design/web build # å¿
èŠã«å¿ã㊠web ããã±ãŒãžããã«ã
pnpm typecheck # workspace ã® typecheckpnpm tools-dev ãããŒã«ã«ã©ã€ããµã€ã¯ã«ã®å¯äžã®ãšã³ããªãã€ã³ãã§ããå逿žã¿ã®ã¬ã¬ã·ãŒã«ãŒããšã€ãªã¢ã¹ïŒpnpm devãpnpm dev:allãpnpm daemonãpnpm previewãpnpm startïŒã¯äœ¿çšããªãã§ãã ããã
ããŒã«ã«éçºäžãtools-dev ã¯æåã« daemon ãèµ·åãããã®ããŒãã apps/web ã«æž¡ããŸããapps/web/next.config.ts 㯠/api/*ã/artifacts/*ã/frames/* ããã® daemon ããŒãã«æžãæãããããApp Router ã¢ããªã¯ CORS èšå®ãªãã§é£æ¥ãã Express ããã»ã¹ãšéä¿¡ã§ããŸãã
ImageãVideoãAudioãHyperFrames ã¹ãã«ã¯ãdaemon ããšãŒãžã§ã³ããèµ·åããéã«æ³šå
¥ããç°å¢å€æ°ãéããŠããŒã«ã« od CLI ãåŒã³åºããŸãïŒ
OD_BINâapps/daemon/dist/cli.jsãžã®çµ¶å¯Ÿãã¹ãOD_DAEMON_URLâ å®è¡äžã® daemon URLãOD_PROJECT_IDâ ã¢ã¯ãã£ããªãããžã§ã¯ã IDãOD_PROJECT_DIRâ ã¢ã¯ãã£ããªãããžã§ã¯ãã®ãã¡ã€ã«ãã£ã¬ã¯ããªã
ã¡ãã£ã¢çæã OD_BIN: parameter not setãapps/daemon/dist/cli.js ã®æ¬ èœããŸã㯠failed to reach daemon at http://127.0.0.1:0 ã§å€±æããå Žåã¯ãdaemon CLI ãåãã«ãããŠç®¡ç察象ã©ã³ã¿ã€ã ãåèµ·åããŠãã ããïŒ
pnpm --filter @open-design/daemon build
pnpm tools-dev restart --daemon-port 7457 --web-port 5175
ls -la apps/daemon/dist/cli.js
curl -s http://127.0.0.1:7457/api/healthãã®åŸãå€ãã¿ãŒããã«ãšãŒãžã§ã³ãã»ãã·ã§ã³ãåéãã代ããã«ãOpen Design ã¢ããªãããããžã§ã¯ããå床éããŠãã ãããdaemon ããèµ·åããããšãŒãžã§ã³ãã¯ã次ã®ãããªå€ã確èªã§ããã¯ãã§ãïŒ
echo "OD_BIN=$OD_BIN"
echo "OD_PROJECT_ID=$OD_PROJECT_ID"
echo "OD_PROJECT_DIR=$OD_PROJECT_DIR"
echo "OD_DAEMON_URL=$OD_DAEMON_URL"
ls -la "$OD_BIN"OD_DAEMON_URL 㯠http://127.0.0.1:0 ã§ã¯ãªããhttp://127.0.0.1:7457 ã®ãããªå®éã® daemon ããŒãã§ãªããã°ãªããŸããã:0 ãšããå€ã¯å
éšçãªã空ãããŒããéžæãããèµ·åãã³ãã«ãããããšãŒãžã§ã³ãã»ãã·ã§ã³ã«æŒããŠã¯ãªããŸããã
daemon ã®ã¿ã®æ¬çªã¢ãŒãã§ã¯ãdaemon èªèº«ã http://localhost:7456 ã§éç㪠Next.js ãšã¯ã¹ããŒããæäŸããããããªããŒã¹ãããã·ã¯é¢äžããŸããã
daemon ã®å段㫠nginx ãé
眮ããå Žåã¯ãSSE ã«ãŒãããããã¡ãªã³ã°ãªãã»å§çž®ãªãã«ä¿ã£ãŠãã ãããäžè¬çãªå€±æäŸã¯ããã©ãŠã¶ã³ã³ãœãŒã«ã« 80ã90 ç§åŸã« net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) ã衚瀺ããããšãããã®ã§ããã㯠daemon ã X-Accel-Buffering: no ãéä¿¡ããŠããŠããnginx ã® gzip on ããã£ã³ã¯åå²ããã SSE ã¬ã¹ãã³ã¹ããããã¡ãªã³ã°ããŠããŸãããã«çºçããŸãã
location /api/ {
proxy_pass http://127.0.0.1:7456;
proxy_buffering off;
gzip off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}| ã¢ãŒã | ããã«ãŒã®å€ | ãªã¯ãšã¹ãã®æµã |
|---|---|---|
| Local CLIïŒdaemon ããšãŒãžã§ã³ããæ€åºããå Žåã®ããã©ã«ãïŒ | "Local CLI" | ããã³ããšã³ã â daemon /api/chat â spawn(<agent>, ...) â stdout â SSE â ã¢ãŒãã£ãã¡ã¯ãããŒãµãŒ â ãã¬ãã¥ãŒ |
| Anthropic APIïŒãã©ãŒã«ãã㯠/ CLI ãªãïŒ | "Anthropic API · BYOK" | ããã³ããšã³ã â @anthropic-ai/sdk çŽæ¥åŒã³åºãïŒdangerouslyAllowBrowserïŒ â ã¢ãŒãã£ãã¡ã¯ãããŒãµãŒ â ãã¬ãã¥ãŒ |
äž¡ã¢ãŒããšã åã <artifact> ããŒãµãŒãš åã ãµã³ãããã¯ã¹åããã iframe ã«ããŒã¿ãäŸçµŠããŸããç°ãªãã®ã¯ãã©ã³ã¹ããŒããšã·ã¹ãã ããã³ããã®é
ä¿¡æ¹æ³ã ãã§ãïŒããŒã«ã« CLI ã«ã¯ç¬ç«ããã·ã¹ãã ãã£ã³ãã«ããªããããåæããã³ããã¯ãŠãŒã¶ãŒã¡ãã»ãŒãžã«æã蟌ãŸããŸãïŒã
éä¿¡ããšã«ãã¢ããªã¯ 3 ã€ã®ã¬ã€ã€ãŒããã·ã¹ãã ããã³ãããæ§ç¯ããŠãããã€ããŒã«éä¿¡ããŸãïŒ
BASE_SYSTEM_PROMPT ïŒåºåå¥çŽïŒ<artifact> ã§ã©ãããã³ãŒããã§ã³ã¹ãªãïŒ
+ ã¢ã¯ãã£ããªãã¶ã€ã³ã·ã¹ãã æ¬æ ïŒDESIGN.md â ãã¬ããïŒã¿ã€ãïŒã¬ã€ã¢ãŠãïŒ
+ ã¢ã¯ãã£ããªã¹ãã«æ¬æ ïŒSKILL.md â ã¯ãŒã¯ãããŒãšåºåã«ãŒã«ïŒ
ãããããŒã§ã¹ãã«ãŸãã¯ãã¶ã€ã³ã·ã¹ãã ãåãæ¿ãããšã次åã®éä¿¡ããæ°ããã¹ã¿ãã¯ã䜿çšãããŸããæ¬æã¯ã»ãã·ã§ã³ããšã«ã¡ã¢ãªå ã«ãã£ãã·ã¥ããããããéžæããšã« 1 åã® daemon ãã§ããã§æžã¿ãŸãã
open-design/
âââ apps/
â âââ daemon/ # Node/Express â ããŒã«ã«ãšãŒãžã§ã³ããèµ·å + API ãæäŸ
â â âââ src/
â â âââ cli.ts # `od` bin ãšã³ããª
â â âââ server.ts # /api/* + éçé
ä¿¡
â â âââ agents.ts # claude/codex/devin/gemini/opencode/cursor-agent/qwen/copilot çš PATH ã¹ãã£ã
â â âââ skills.ts # SKILL.md ããŒããŒïŒããã³ããã¿ãŒããŒãµãŒïŒ
â â âââ design-systems.ts # DESIGN.md ããŒããŒ
â â âââ sidecar/ # tools-dev daemon sidecar ã©ãããŒ
â â âââ tests/ # daemon ããã±ãŒãžã®ãã¹ã
â âââ web/ # Next.js 16 App Router + React ã¯ã©ã€ã¢ã³ã
â âââ app/ # App Router ãšã³ããªãã€ã³ã
â âââ src/ # React + TypeScript ã¯ã©ã€ã¢ã³ãïŒã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«
â â âââ App.tsx # mode / skill / DS ããã«ãŒ + send ããªãŒã±ã¹ãã¬ãŒã·ã§ã³
â â âââ providers/ # daemon + BYOK API ãã©ã³ã¹ããŒã
â â âââ prompts/ # systemãdiscoveryãdirectionsãdeck ãã¬ãŒã ã¯ãŒã¯
â â âââ artifacts/ # ã¹ããªãŒãã³ã° <artifact> ããŒãµãŒ + ãããã§ã¹ã
â â âââ runtime/ # iframe srcdocãmarkdownããšã¯ã¹ããŒããã«ããŒ
â â âââ state/ # localStorage + daemon ããã¯ãšã³ãã®ãããžã§ã¯ãç¶æ
â âââ sidecar/ # tools-dev web sidecar ã©ãããŒ
â âââ next.config.ts # tools-dev rewrites + æ¬çª apps/web/out ãšã¯ã¹ããŒãèšå®
â âââ desktop/ # Electron ã©ã³ã¿ã€ã ãtools-dev ã«ãã£ãŠèµ·åïŒæ€æ»ããã
âââ packages/
â âââ contracts/ # å
±æ web/daemon ã¢ããªå¥çŽ
â âââ sidecar-proto/ # Open Design sidecar ãããã³ã«å¥çŽ
â âââ sidecar/ # æ±çš sidecar ã©ã³ã¿ã€ã ããªããã£ã
â âââ platform/ # æ±çšããã»ã¹ïŒãã©ãããã©ãŒã ããªããã£ã
âââ tools/dev/ # `pnpm tools-dev` ã©ã€ããµã€ã¯ã«ãš inspect CLI
âââ e2e/ # Playwright UI + å€éšçµ±åïŒVitest ããŒãã¹
âââ skills/ # SKILL.md â ä»»æã® Claude Code ã¹ãã«ãªããžããªããããããã€ã³
â âââ web-prototype/ # æ±çšã·ã³ã°ã«ã¹ã¯ãªãŒã³ãããã¿ã€ãïŒprototype ã¢ãŒãã®ããã©ã«ãïŒ
â âââ saas-landing/ # ããŒã±ãã£ã³ã°ããŒãžïŒhero / features / pricing / CTAïŒ
â âââ dashboard/ # 管çïŒåæããã·ã¥ããŒã
â âââ pricing-page/ # ç¬ç«ãã pricing + æ¯èŒ
â âââ docs-page/ # 3 åããã¥ã¡ã³ããŒã·ã§ã³ã¬ã€ã¢ãŠã
â âââ blog-post/ # ãšãã£ããªã¢ã«é·æ
â âââ mobile-app/ # é»è©±ãã¬ãŒã ã®ã·ã³ã°ã«ã¹ã¯ãªãŒã³
â âââ simple-deck/ # æå°éã®æšªã¹ã¯ã€ãããã
â âââ guizang-ppt/ # magazine-web-ppt â ãã³ãã«ããã deck/PPT ããã©ã«ã
â âââ SKILL.md
â âââ assets/template.html
â âââ references/{themes,layouts,components,checklist}.md
âââ design-systems/ # DESIGN.md â 9 ã»ã¯ã·ã§ã³ã¹ããŒãïŒawesome-claude-designïŒ
â âââ default/ # Neutral ModernïŒã¹ã¿ãŒã¿ãŒïŒ
â âââ warm-editorial/ # Warm EditorialïŒã¹ã¿ãŒã¿ãŒïŒ
â âââ README.md # ã«ã¿ãã°æŠèŠ
â âââ âŠ129 systems # ã¹ã¿ãŒã¿ãŒ 2 çš® · 補åã·ã¹ãã 70 çš® · ãã¶ã€ã³ã¹ãã« 57 çš®
âââ scripts/sync-design-systems.ts # äžæµã® getdesign tarball ããåã€ã³ããŒã
âââ docs/ # 補åããžã§ã³ + 仿§
âââ .od/ # ã©ã³ã¿ã€ã ããŒã¿ïŒgitignore æžã¿ãèªåäœæïŒ
â âââ app.sqlite # projects / conversations / messages / tabs
â âââ artifacts/ # ã¯ã³ã·ã§ãã "Save to disk" ã¬ã³ããªã³ã°
â âââ projects/<id>/ # ãããžã§ã¯ãããšã®äœæ¥ãã£ã¬ã¯ã㪠+ ãšãŒãžã§ã³ã cwd
âââ pnpm-workspace.yaml # apps/* + packages/* + tools/* + e2e
âââ package.json # root quality ã¹ã¯ãªãã + `od` bin
- ãno agents found on PATHã â
claudeãcodexãdevinãgeminiãopencodeãcursor-agentãqwenãcopilotã®ãããããã€ã³ã¹ããŒã«ããŠãã ããããŸãã¯ããããããŒã§ãAnthropic API · BYOKãã«åãæ¿ããèšå® ã«ããŒã貌ãä»ããŸãã - /api/chat ã§ daemon ã 500 ãè¿ã â daemon ã¿ãŒããã«ã§ stderr ã®æ«å°Ÿã確èªããŠãã ãããé垞㯠CLI ãåŒæ°ãæåŠããŠããŸããCLI ããšã« argv ã®åœ¢åŒãç°ãªããŸãã調æŽãå¿
èŠãªå Žåã¯
apps/daemon/src/agents.tsã®buildArgsãåç §ããŠãã ããã - ã¡ãã£ã¢çæã§
OD_BINãæ¬ èœããŸã㯠daemon URL ã:0â äžèšã®ã¡ãã£ã¢ãã£ã¹ãããã£ãŒãã§ãã¯ãå®è¡ããŠãã ãããå€ã CLI ã»ãã·ã§ã³ãåéãããOpen Design ã¢ããªãããããžã§ã¯ããå床éããŠãdaemon ãæ°ããOD_*倿°ãæ³šå ¥ã§ããããã«ããŠãã ããã - Codex ããã©ã°ã€ã³ã³ã³ããã¹ããå€ãèªã¿èŸŒã¿ããã â
OD_CODEX_DISABLE_PLUGINS=1 pnpm tools-devã§ Open Design ãèµ·åãããšãdaemon ããèµ·åããã Codex ããã»ã¹ã--disable pluginsã§å®è¡ãããŸãã - ã¢ãŒãã£ãã¡ã¯ããã¬ã³ããªã³ã°ãããªã â ã¢ãã«ã
<artifact>ã§ã©ããããã«ããã¹ããçæããŸãããã·ã¹ãã ããã³ãããéã£ãŠããããšã確èªãïŒdaemon ãã°ã確èªïŒããã髿§èœãªã¢ãã«ãŸãã¯å³æ Œãªã¹ãã«ãžã®åãæ¿ããæ€èšããŠãã ããã
ãã®ã¯ã€ãã¯ã¹ã¿ãŒã㯠docs/ ã«ãã仿§ã®å®è¡å¯èœãªã·ãŒãã§ãã仿§ã¯ããããã©ããžæé·ããããèšè¿°ããŠããŸãïŒdocs/roadmap.md ãåç
§ïŒããã€ã©ã€ãïŒ
docs/architecture.mdã¯ãåºè·ãããã¹ã¿ãã¯ã説æããŠããŸãïŒåé¢ã« Next.js 16 App Routerããã®èåŸã«ããŒã«ã« daemonããããŠapps/web/next.config.tsã® dev æ rewrites ã«ãã£ãŠãã©ãŠã¶ãåã/api衚é¢ãšéä¿¡ãç¶ããããã«ããŸããdocs/skills-protocol.mdã¯ãå®å šãªod:ããã³ããã¿ãŒïŒåä»ãå ¥åãã¹ã©ã€ããŒãæ©èœã²ãŒãã£ã³ã°ïŒã«ã€ããŠèª¬æããŠããŸãããã® MVP ã¯name/description/triggers/od.mode/od.design_system.requiresã®ã¿ãèªã¿åããŸã â æ®ãã远å ããã«ã¯apps/daemon/src/skills.tsãæ¡åŒµããŠãã ãããdocs/agent-adapters.mdã¯ããè±ããªãã£ã¹ãããïŒæ©èœæ€åºãã¹ããªãŒãã³ã°ããŒã«åŒã³åºãïŒãäºèŠããŠããŸããapps/daemon/src/agents.tsã¯æå°éã®ãã£ã¹ãããã£ãŒã§ã â é ç·ã蚌æããã«ã¯ååã§ããdocs/modes.md㯠4 ã€ã®ã¢ãŒãïŒprototype / deck / template / design-systemïŒãåæããŠããŸããæåã® 2 ã€ã®ã¹ãã«ãåºè·ããŠããŸããããã«ãŒã¯ãã§ã«modeã§ãã£ã«ã¿ãªã³ã°ããŠããŸãã