37 rotas de imagem e vídeo, refino de prompt editável, arquivo local dos resultados e um ledger de custo real — tudo rodando na sua máquina, com as chaves do lado do servidor.

A maioria dos produtos criativos de IA junta acesso a modelo, refino de prompt, roteamento, armazenamento e cobrança — e esconde as costuras atrás de uma assinatura. O Bench mantém a conveniência e deixa cada costura visível. Ele não é dono dos modelos; ele te dá a camada portátil que liga ideias, ferramentas, provedores, arquivos e custos.
Cada endpoint aceita entradas diferentes (uma imagem, uma lista, um frame inicial, nenhuma). O registro curado descreve o contrato de cada rota e a interface mostra só os controles que existem de verdade.
Estimativa de preflight a partir da unidade de preço do modelo e dos parâmetros pedidos; depois, o valor cobrado quando o provedor devolve recibo suficiente. Estimado, medido e registrado são valores distintos — não a mesma coisa.
Saídas espelhadas em disco e metadados em SQLite local (data/bench.db). O navegador nunca recebe segredo de provedor: quem guarda a chave é o serviço loopback.
A interface React e o servidor MCP falam com a mesma API local. Ela valida o payload específico do modelo, guarda as credenciais, transmite o progresso, espelha os artefatos e grava o metadado durável.
O Bench acrescenta a estrutura que o modelo escolhido tende a entender e te mostra o rascunho reescrito. Você edita ou rejeita antes de gastar. Sem GOOGLE_API_KEY, o prompt original passa direto e a interface avisa que o refino está desligado.
O catálogo do provedor vira um snapshot de descoberta com evidência de schema e preço. Só depois de revisado o modelo entra no registro curado. Isso evita que um modelo novo, renomeado ou mal especificado quebre um fluxo pago em silêncio.
O servidor MCP expõe onze ferramentas: descobrir modelos, inspecionar contratos, subir referências, gerar imagem e vídeo, ler resultados/preview/gasto, criar e acompanhar projetos de site e documento, e buscar os artefatos.
É uma ferramenta local de usuário único — nada de servidor hospedado. O essencial é Node recente e uma chave da fal.ai; o resto é opcional e desliga funcionalidades específicas.
Node 24 é o recomendado, porque o Bench usa node:sqlite. Precisa de npm também.
node -v # v22.5 ou maior
Obrigatória para gerar imagem e vídeo. A chave do Google é opcional e serve só ao refino de prompt.
# ~/.env (nunca no repo) FAL_KEY=<sua-chave-fal> GOOGLE_API_KEY=<opcional>
Usado para imprimir os PDFs e para o preflight visual de overflow. Opcional: uma instalação do Codex logada, para os builds de site e documento.
google-chrome --versionComandos reais do projeto. Esta é a distribuição pública sanitizada: ela chega sem histórico de geração, uploads, banco privado, caminhos pessoais ou credenciais — seu arquivo começa vazio.
Clone o repositório e instale as dependências.
git clone https://github.com/inematds/bench-studio-public.git cd bench-studio-public npm install
O Bench lê as credenciais de ~/.env. Nunca ponha chave de provedor em variável do Vite nem commite no repositório.
# ~/.env FAL_KEY=<sua-chave-fal> GOOGLE_API_KEY=<chave-google-opcional>
Um comando levanta a API local e a interface web juntas. Abra http://localhost:5200. A API fica em http://localhost:8787 e o resumo de saúde/capacidade em /api/health.
npm run dev # estúdio em :5200, API em :8787 # se as portas estiverem ocupadas: PORT=8790 BENCH_API_PORT=8790 BENCH_WEB_PORT=5201 npm run dev
Na aba Create, escolha a rota, anexe as referências que aquele modelo aceita, revise o rascunho de prompt e a estimativa, e aprove. O resultado aparece inline e vai para o arquivo local com prompt submetido, modelo, URL do provedor, arquivo local e custo registrado.
# atualizar o roster curado e os contratos de entrada npm run registry npm run capabilities # refrescar descoberta e evidência de preço do provedor npm run catalog:sync
Websites gera sites estáticos originais com fonte editável, preview local e bundle para download. Documents gera PDFs desenhados por trás de um HTML editável, impressos pelo Chromium, com preflight de overflow. Site e documento podem invocar um agente de código autenticado localmente — revise a fonte antes de publicar.
Abra Connect, escolha o cliente e copie a configuração gerada — o Bench insere o caminho absoluto correto da máquina atual (o repositório não traz o home de ninguém). A skill em integrations/skills/bench-studio/ dá o julgamento e o fluxo; o MCP dá a execução.
npm run mcp # servidor MCP em stdio npm run test:mcp # smoke test de descoberta e mídia
O portão de release cobre build de produção, contratos de API e banco, descoberta MCP, jornadas de navegador, acessibilidade, contenção responsiva, estados de falha, transições de modelo e snapshots visuais.
npm run test:contracts # API, persistência e contratos de modelo npm run test:e2e # jornadas de navegador + acessibilidade npm run test:release # o portão completo
O repositório começa sem data/; o Bench cria na primeira execução. O diretório inteiro é ignorado pelo Git. Apagar um resultado remove o registro no banco e os arquivos espelhados — não promete apagar cópias retidas por um provedor externo.
data/ ├── bench.db # gerações, assets, gasto e projetos ├── inputs/ # uploads espelhados ├── outputs/ # gerações espelhadas ├── previews/ # posters de vídeo locais └── projects/ # fonte de sites e documentos
As duas telas centrais: onde você cria, e o catálogo de onde saem as rotas.


Vale ler antes de adotar: são as fronteiras declaradas pelo próprio projeto.