Quickstart
Três comandos. Sem cadastro.
O Open Design tem um único ponto de entrada: pnpm tools-dev. O daemon cria sozinho uma pasta oculta .od/ pra DB SQLite de projetos e os artifacts por projeto. Não tem passo od init.
Requisitos
- · Node ~24 —
nvm install 24 && nvm use 24oufnm install 24 && fnm use 24 - · pnpm 10.33.x —
corepack enable && corepack pnpm --version - · Pelo menos um coding-agent CLI suportado no seu
PATH— Claude Code, Codex, Cursor, Gemini, OpenCode, Qwen, Copilot, Devin, Hermes, Kimi, Kiro, Vibe ou Pi (ou nenhum, se for usar o proxy BYOK)
Três comandos
git clone https://github.com/nexu-io/open-design.git
cd open-design
corepack enable
pnpm install
pnpm tools-dev run web Abra a URL web que o tools-dev imprime. Faça aparecer o diálogo de boas-vindas, cole uma chave da Anthropic (só precisa pro fallback BYOK), digite um prompt, dê Enviar.
Estado no primeiro start
O daemon é dono de uma única pasta oculta.
.od/
├── app.sqlite ← projetos · conversas · mensagens · abas abertas
├── artifacts/ ← renders pontuais «Save to disk» (com timestamp)
└── projects/<id>/ ← diretório de trabalho por projeto, também o cwd do agente | Quero… | Faça isso |
|---|---|
| Dar uma olhada no que tem | ls -la .od && sqlite3 .od/app.sqlite '.tables' |
| Voltar à estaca zero | pnpm tools-dev stop && rm -rf .od && pnpm tools-dev run web |
| Mover pra outro lugar | Ainda não suportado — o caminho está hardcoded relativo ao repo |
Comandos de ciclo de vida
Tudo sob pnpm tools-dev.
pnpm tools-dev start # sobe daemon + web (em segundo plano)
pnpm tools-dev run web # equivalente em primeiro plano
pnpm tools-dev stop # para tudo
pnpm tools-dev status # o que está rodando, onde
pnpm tools-dev logs # tail dos logs daemon + web
pnpm tools-dev inspect # IPC nos processos vivos
pnpm tools-dev check # health checks Pra start desktop / em segundo plano, restarts em portas fixas e detalhes do dispatcher de geração de mídia (OD_BIN, OD_DAEMON_URL), veja o QUICKSTART.md no GitHub.
Plataformas · v0.5.0
Três plataformas, três estados.
v0.5.0 fala franco onde cada plataforma tá agora. Escolhe a linha que combina com sua máquina.
| Plataforma | Status | Notas |
|---|---|---|
| macOS | Estável | Apple Silicon (arm64) só — sem build Intel. macOS 11 Big Sur ou mais novo. |
| Windows | Estável · sem assinatura | x64, Windows 10 / 11. SmartScreen avisa no primeiro lance — escolhe More info → Run anyway. |
| Linux | Só headless | Ciclo de vida CLI (install / start / stop) com suporte de primeira desde v0.5.0. Pacote GUI ainda não — encaixa em servidor e CI. Detalhe abaixo. |
Linux · headless
Rodar Open Design num servidor sem DISPLAY.
v0.5.0 entrega um caminho de ciclo de vida sem gráficos. Sobe daemon e web numa caixa Linux headless e bate nele do navegador do notebook. Mesmo backend, só sem a casca de Electron na frente.
pnpm install
pnpm tools-pack linux install --headless # configuração inicial
pnpm tools-pack linux start --headless # daemon + web, sem Electron
pnpm tools-pack linux stop --headless
pnpm tools-pack linux logs # tail do log headless Pacotes Apt, permissões de namespace e o detalhe do FUSE estão todos em tools/pack/README.md. Validado em Ubuntu 24.04 e Arch Linux. Veio na 0.5.0 via PR #686.
Auto-hospedagem · v0.5.0
Ou então como um único container.
v0.5.0 entrega um caminho oficial de Docker Compose. Uma imagem Alpine (docker.io/vanjayak/open-design). O daemon serve a API e o export estático Next.js já buildado de uma vez — sem nginx separado, sem container de frontend separado.
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 Padrão: bind em 127.0.0.1:7456, teto de memória 384 MB, volume de runtime montado em /app/.od. Não exponha o daemon direto na interface pública — a API não tem auth pra clientes que não sejam navegador. Coloca na frente um reverse proxy autenticado, túnel SSH ou VPN. Documentação completa: deploy/README.md. A imagem não embarca os CLIs do Claude / Codex / Gemini de propósito — eles ficam fora do container.
E agora?
Escolhe alguma coisa pra renderizar.
Com o daemon de pé, você precisa de um skill (o que fazer), um design system (como deve parecer) e, idealmente, uma referência de como é «bom».