App desktop
O app é uma janela nativa (Electron 44) sobre o mesmo núcleo da CLI (lib/harness.js).
Instalar#
Baixe da página de Releases:
- macOS, Apple Silicon:
Neuro-Harness-<versão>-arm64.dmg. Abra e arraste o app para Aplicativos. - Windows 10/11, 64 bits:
Neuro-Harness-Setup-<versão>.exe. Siga o instalador; você pode escolher a pasta.
Apps sem assinatura#
Os instaladores ainda não têm assinatura de código. Na primeira vez:
macOS (Gatekeeper):
- clique com o botão direito no app e escolha Abrir, depois Abrir de novo;
- ou, no Terminal:
xattr -dr com.apple.quarantine "/Applications/Neuro Harness.app".
Windows (SmartScreen): clique em Mais informações e depois em Executar assim mesmo.
Para tirar esses avisos, os apps precisam de assinatura:
- macOS: certificado Apple Developer ID, mais a notarização;
- Windows: certificado de assinatura de código.
O CI já está pronto para receber esses certificados como segredos do repositório.
O que o app faz#
- Tela de abertura: o app roda o
setupnum processo filho e mostra o andamento.- Na primeira vez, ele baixa o DeepSeek Harness (cerca de 550 MB) e o motor neuro-mv-edit.
- Nas outras vezes, só confere e atualiza o que mudou.
- Harness local: ele sobe o Harness. Se a CLI já estiver rodando, o app reaproveita.
- Painel: ele abre o painel numa janela nativa.
- Endereços locais (
127.0.0.1elocalhost, como o Remotion Studio) abrem dentro do app. - Links externos abrem no navegador padrão.
- Endereços locais (
- Ao sair: o app para o Harness, se foi ele que o subiu.
PATH no macOS: apps abertos pelo Finder recebem um PATH mínimo. Por isso o app usa o PATH do seu shell de login (Homebrew, nvm etc.) para achar o Node, o git, o Python e o FFmpeg.
Montar localmente#
cd apps/desktop
npm ci
npm start # roda sem empacotar (usa o lib/ e o plugins/ do repositório)
npm run pack # app sem instalador em dist/ (teste rápido)
npm run dist:mac # dist/Neuro-Harness-<versão>-arm64.dmg (em um Mac)
npm run dist:win # dist/Neuro-Harness-Setup-<versão>.exe (em um Windows)
O npm run sync (chamado pelos outros scripts) copia lib/, plugins/, LICENSE e NOTICE para apps/desktop/vendor. É de lá que o empacotador lê.
CI#
O workflow .github/workflows/desktop.yml roda a cada tag v* e também à mão.
- macOS: monta o
.dmgnum runnermacos-latest(Apple Silicon). - Windows: monta o
.exenum runnerwindows-latest. - Publicação: anexa os dois à Release da tag.