Skip to content

Latest commit

 

History

History
342 lines (246 loc) · 20.1 KB

File metadata and controls

342 lines (246 loc) · 20.1 KB

クむックスタヌト

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: Open Design は、Claude Code、Codex、Devin for Terminal、OpenCode、Cursor Agent、Qwen、Qoder CLI、GitHub Copilot CLI などのロヌカルランタむムをレゞストリで管理しおいたす。珟圚の䞀芧は apps/daemon/src/runtimes/registry.ts にありたす。䜕もむンストヌルされおいない堎合は、Settings で蚭定した BYOK ランタむムを䜿甚しおください。

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 が衚瀺されるはずです

ワンショットdev モヌド

corepack enable
pnpm install
pnpm tools-dev run web # daemon ず web をフォアグラりンドで起動したす
# tools-dev が出力した web URL を開きたす

デスクトップシェルずすべおの管理察象 sidecar をバックグラりンドで起動する堎合

pnpm tools-dev # daemon + web + desktop をバックグラりンドで起動したす

初回起動時、アプリは利甚可胜なロヌカルランタむムを怜出し、Settings で蚭定された BYOK ランタむムも提瀺したす。ランタむム、デザむンテンプレヌト、デザむンシステムを遞び、プロンプトを入力しお Send を抌しおください。構造化されたロヌカルランタむムは正芏のプロゞェクトファむルを曞き蟌み、ファむルツヌルむベントをストリヌミングしたす。ファむルワヌクスペヌスずプレビュヌはその曞き蟌みから曎新されたす。テキスト専甚および BYOK 実行は、代わりにホストが解析する完党な <artifact> ブロックを返したす。アヌティファクトの保存パスを文曞化たたは倉曎する前に、ルヌトの AGENTS.md にある Daemon data directory contract を必ず読んでください。

Design systems カタログは、design-systems/ 配䞋の DESIGN.md パッケヌゞから盎接読み蟌たれたす。1 ぀遞ぶず、そのブランドの芖芚蚀語がアヌティファクトに適甚されたす。

Templates カタログは design-templates/ から読み蟌たれ、プロトタむプ、デッキ、ドキュメント、画像、動画、音声のアヌティファクト圢匏をたずめおいたす。skills/ は、䜜業䞭に゚ヌゞェントが呌び出す機胜的な胜力のために䜿われたす。テンプレヌトずデザむンシステムを組み合わせるず、遞択した芖芚蚀語でアヌティファクトを生成できたす。

その他のスクリプト

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 の typecheck

pnpm 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 プロセスず通信できたす。

Docker セットアップ

Node.js や pnpm をロヌカルにむンストヌルせずに、完党にコンテナ化された環境で Open Design を実行できたす。

必芁条件

  • Docker Desktop
  • Docker Compose v2

Docker が正しくむンストヌルされおいるこずを確認

docker compose version

Open Design を起動

リポゞトリルヌトから

  1. deploy ディレクトリに移動し、環境テンプレヌトをコピヌしたす

    cd deploy
    cp .env.example .env
  2. セキュアなトヌクンを生成したす

    openssl rand -hex 32
  3. ゚ディタで .env を開き、OD_API_TOKEN= を芋぀けお、生成したトヌクンを貌り付けたす。

サヌビスを起動したす

docker compose up -d

ブラりザでアプリを開きたす

http://localhost:7456

初回起動時は、Docker が最新むメヌゞをプルするため数秒かかる堎合がありたす。


よく䜿う Docker コマンド

ログを衚瀺

docker compose logs -f

コンテナを再起動

docker compose restart

コンテナを停止

docker compose down

最新むメヌゞをプル

docker compose pull
docker compose up -d

すべおのロヌカルアプリデヌタを削陀

docker compose down -v

環境蚭定

deploy/.env ファむルを䜜成しお、デフォルト蚭定を䞊曞きしたす。提䟛された䟋から始めたす

cp deploy/.env.example deploy/.env

deploy/.env を線集しお、自分のトヌクンを蚭定し、必芁に応じお他の倀を調敎したす

# ホストで公開するポヌト
OPEN_DESIGN_PORT=7456

# コンテナのメモリ制限
OPEN_DESIGN_MEM_LIMIT=384m

# 蚱可する CORS オリゞン
OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com

# Docker むメヌゞタグ
OPEN_DESIGN_IMAGE=ghcr.io/nexu-io/od:latest

# Daemon セキュリティに必芁な API トヌクン
# 次のコマンドで生成openssl rand -hex 32
OD_API_TOKEN=

氞続ストレヌゞ

氞続的なデヌモン保存パスを文曞化、倉曎、たたは遞択する前に、 ルヌトの AGENTS.md にある Daemon data directory contract を必ず読んでください。 この Quickstart でその契玄を繰り返したり、保存パスを定矩したりしおはいけたせん。


泚意事項

  • Docker モヌドは、ロヌカルに Node.js や pnpm をむンストヌルしたくないコントリビュヌタヌに最適です。
  • コンテナは本番甚 daemon ビルドをポヌト 7456 で盎接公開したす。
  • 開発ワヌクフロヌや高床なロヌカル蚭定に぀いおは、この Quickstart ガむドの残りの郚分を参照しおください。

メディア生成 / ゚ヌゞェントディスパッチャヌチェック

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;
}

2 ぀の実行モヌド

モヌド ピッカヌの倀 リク゚ストの流れ
Local CLIdaemon が゚ヌゞェントを怜出した堎合のデフォルト "Local CLI" フロント゚ンド → daemon /api/chat → spawn(<agent>, ...) → 構造化されたツヌルファむルむベントを SSE 配信 → プロゞェクトファむル → プレビュヌ。plain-stream CLI は text-artifact 経路を䜿甚したす。
API モヌドフォヌルバック / CLI なし "Anthropic API" / "OpenAI API" / "Atlas Cloud" / "Azure OpenAI" / "Google Gemini" フロント゚ンド → daemon /api/proxy/{provider}/stream → provider SSE を delta/end/error に正芏化 → <artifact> パヌサヌ → プレビュヌ

䞡モヌドは同じファむルワヌクスペヌスずサンドボックス化されたプレビュヌに到達したすが、匕き枡し契玄は異なりたす。ファむルシステム察応ランタむムは正芏ファむルを曞き蟌み、その゜ヌスを <artifact> に再出力したせん。plainテキスト専甚および BYOK 実行にはファむルツヌルがないため、完党な HTML を <artifact> に入れたものが正芏の成果物です。実行プロファむルはランタむムのトランスポヌトから遞択されたす。

プロンプトの構成

送信ごずに、アプリは 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          # ランタむムモゞュヌルの互換゚クスポヌト
│   │       ├── runtimes/
│   │       │   ├── registry.ts    # サポヌト察象ランタむムのレゞストリ
│   │       │   └── defs/          # ランタむム別の起動匕数定矩
│   │       ├── skills.ts          # SKILL.md ロヌダヌフロントマタヌパヌサヌ
│   │       └── design-systems/    # 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/     # text-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/                    # 䜜業䞭に呌び出す機胜的な胜力
├── design-templates/          # プロトタむプ、デッキ、文曞、メディアのレンダリングカタログ
├── design-systems/            # DESIGN.md を基点ずするブランドパッケヌゞ
├── scripts/sync-design-systems.ts    # 䞊流の getdesign tarball から再むンポヌト
├── docs/                      # 補品ビゞョン + 仕様
├── pnpm-workspace.yaml        # apps/* + packages/* + tools/* + e2e
└── package.json               # root quality スクリプト + `od` bin

トラブルシュヌティング

  • 「no agents found on PATH」 — apps/daemon/src/runtimes/registry.ts に登録されおいるロヌカルランタむムのいずれかをむンストヌルし、その実行ファむルが daemon から芋えるこずを確認しおから、Settings → Execution mode で Rescan を実行しおください。たたは、Settings で BYOK ランタむムを蚭定したす。
  • /api/chat で daemon が 500 を返す — daemon タヌミナルで stderr の末尟を確認しおください。通垞は CLI が匕数を拒吊しおいたす。CLI ごずに argv の圢匏が異なりたす。調敎が必芁な堎合は apps/daemon/src/runtimes/defs/ の察応する定矩を参照しおください。
  • メディア生成で 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 で実行されたす。
  • アヌティファクトがレンダリングされない — たず匕き枡しプロファむルを確認したす。ファむルシステム察応のロヌカルランタむムでは、プレビュヌ可胜なプロゞェクトファむルが䜜成され、ファむルむベントが daemon に届いたかを確認しおください。゜ヌスを <artifact> に入れる経路ではありたせん。plainテキスト専甚たたは BYOK 実行では、完党な <artifact> ブロックが 1 ぀あるこずを確認し、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 は珟圚の SKILL.mdod: フロントマタヌず、機胜スキルずレンダリングテンプレヌトの分離を説明したす。パヌサヌず正芏化の実装䞊の真実は apps/daemon/src/skills.ts です。
  • docs/agent-adapters.md はアダプタヌ契玄を説明しおいたす。ランタむム固有の起動、匕数、モデル、ストリヌム蚭定は apps/daemon/src/runtimes/defs/ にあり、apps/daemon/src/runtimes/registry.ts で登録されたす。apps/daemon/src/agents.ts は互換゚クスポヌト面です。
  • docs/modes.md は 6 ぀の New Project タブず 7 ぀の正芏化レゞストリモヌドprototype、deck、template、design-system、image、video、audioを区別したす。