Open Design

Quickstart

Ba lệnh. Không cần đăng ký.

Open Design có một entry duy nhất: pnpm tools-dev. Daemon tự tạo một thư mục ẩn .od/ cho DB SQLite của projects và artifact theo dự án. Không có bước od init.

Yêu cầu

  • · Node ~24nvm install 24 && nvm use 24 hoặc fnm install 24 && fnm use 24
  • · pnpm 10.33.xcorepack enable && corepack pnpm --version
  • · Ít nhất một coding-agent CLI được hỗ trợ trong PATH — Claude Code, Codex, Cursor, Gemini, OpenCode, Qwen, Copilot, Devin, Hermes, Kimi, Kiro, Vibe hoặc Pi (hoặc không có cái nào, nếu bạn dùng proxy BYOK)

Ba lệnh

git clone https://github.com/nexu-io/open-design.git
cd open-design
corepack enable
pnpm install
pnpm tools-dev run web

Mở URL web tools-dev in ra. Bật dialog welcome, dán key Anthropic (chỉ cần cho fallback BYOK), gõ một prompt, nhấn Send.

Trạng thái lần chạy đầu

Daemon sở hữu duy nhất một thư mục ẩn.

.od/
├── app.sqlite                 ← projects · conversations · messages · tab đang mở
├── artifacts/                 ← render «Save to disk» một lần (có timestamp)
└── projects/<id>/             ← thư mục làm việc theo dự án, cũng là cwd của agent
Muốn… Làm thế này
Xem có gì bên trong ls -la .od && sqlite3 .od/app.sqlite '.tables'
Xoá hết về trắng pnpm tools-dev stop && rm -rf .od && pnpm tools-dev run web
Chuyển sang nơi khác Chưa hỗ trợ — path đã hardcode tương đối với repo

Lệnh vòng đời

Tất cả dưới pnpm tools-dev.

pnpm tools-dev start       # khởi động daemon + web (nền)
pnpm tools-dev run web     # tương đương ở foreground
pnpm tools-dev stop        # dừng tất cả
pnpm tools-dev status      # cái gì đang chạy, ở đâu
pnpm tools-dev logs        # tail log daemon + web
pnpm tools-dev inspect     # IPC vào tiến trình đang chạy
pnpm tools-dev check       # health check

Khởi động desktop / nền, restart trên port cố định và chi tiết dispatcher sinh media (OD_BIN, OD_DAEMON_URL), xem QUICKSTART.md trên GitHub.

Nền tảng · v0.5.0

Ba nền tảng, ba trạng thái.

0.5.0 nói thẳng từng nền tảng đang ở đâu. Chọn dòng khớp máy bạn.

Nền tảngTrạng tháiGhi chú
macOS Ổn định Chỉ Apple Silicon (arm64) — không có build Intel. macOS 11 Big Sur trở lên.
Windows Ổn định · chưa ký x64, Windows 10 / 11. SmartScreen sẽ cảnh báo lần đầu — chọn More info → Run anyway.
Linux Chỉ headless Lifecycle CLI hạng nhất (install / start / stop) đã đáp xuống 0.5.0. Chưa có gói GUI — hợp với server và CI. Xem dưới.

Linux · headless

Chạy Open Design trên server không có DISPLAY.

v0.5.0 ship một path lifecycle phi-graphics. Đẩy daemon và web lên một con Linux headless, rồi quất từ trình duyệt laptop. Cùng backend, không có shell Electron đứng trước.

pnpm install
pnpm tools-pack linux install --headless   # setup một lần
pnpm tools-pack linux start --headless      # daemon + web, không Electron
pnpm tools-pack linux stop --headless
pnpm tools-pack linux logs                  # tail log headless

Gói apt, quyền namespace và chú ý FUSE đã viết trong tools/pack/README.md. Đã verify trên Ubuntu 24.04 và Arch Linux. Đáp xuống 0.5.0 qua PR #686.

Self-host · v0.5.0

Hoặc chạy như một container duy nhất.

v0.5.0 ship path Docker Compose chính thức. Một image Alpine (docker.io/vanjayak/open-design). Daemon serve cả API lẫn bản static export Next.js đã build — không cần nginx riêng, không cần container frontend riêng.

git clone https://github.com/nexu-io/open-design.git
cd open-design/deploy
OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose pull
OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose up -d --no-build
# → http://127.0.0.1:7456

Mặc định: bind vào 127.0.0.1:7456, cap memory 384 MB, runtime volume tại /app/.od. Đừng publish daemon ra interface công khai như vậy — API không xác thực với client ngoài trình duyệt. Đặt trước nó một reverse proxy có xác thực, tunnel SSH hoặc VPN. Doc đầy đủ: deploy/README.md. Image cố tình không bundle CLI Claude / Codex / Gemini — giữ chúng ngoài container.

Giờ thì sao?

Chọn cái gì đó để render.

Khi daemon đã lên, bạn cần một skill (làm gì), một design system (trông sao), và lý tưởng là một tham chiếu cho biết «đẹp» là thế nào.

Ship artifact đầu tiên trong ba phút.

Clone repo →