PTENES
Estúdio criativo local-first

Pare de alugar o wrapper. Tenha a camada criativa.

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.

Capa do Bench Studio
O que é

Um estúdio que você inspeciona, muda e leva junto

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.

🎛️ Controles que vêm do modelo

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.

💸 Custo antes e depois

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.

🗄️ Seus arquivos, sua máquina

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.

Como funciona

Da ideia ao recibo, em um caminho só

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.

Sua ideia→ UI React ou agente via MCP→ API loopback→ Prompt refinado (editável)→ Roteador por capacidade→ Estimativa + aprovação→ fal.ai→ Espelho local + ledger

🧠 Refino visí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.

🧭 Descoberta ≠ produção

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.

🔌 Mesma capacidade via agente

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.

Pré-requisitos

O que precisa estar na máquina

É 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.js 22.5+

Node 24 é o recomendado, porque o Bench usa node:sqlite. Precisa de npm também.

node -v  # v22.5 ou maior

Chave da fal.ai

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>

Google Chrome

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 --version
Guia de uso · passo a passo

Rodando em três minutos

Comandos 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.

1

Clonar e instalar

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
2

Colocar as credenciais no lado do servidor

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>
3

Subir o estúdio

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
4

Criar: imagem e vídeo

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
5

Sites e documentos

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.

6

Conectar Claude, Codex ou Cursor

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
7

Conferir antes de confiar

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
8

Saber onde ficam seus dados

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
Exemplos

A interface por dentro

As duas telas centrais: onde você cria, e o catálogo de onde saem as rotas.

Workspace Create do Bench Studio
Create — referências conscientes do modelo, controles, rascunho de prompt editável, cotação, progresso e resultado inline.
Catálogo de modelos do Bench Studio
Catálogo — rotas curadas de texto→imagem, edição de imagem, texto→vídeo, imagem→vídeo e vídeo por referência.
Limites honestos

O que o Bench é — e o que ele não promete

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

Escopo
Ferramenta local de usuário únicoNão é um SaaS multi-tenant hospedado. A API sobe em loopback por padrão; não exponha publicamente sem autenticação e um modelo de ameaça deliberado.
Catálogo
Curadoria é intencionalEstar no catálogo do provedor não garante admissão em produção. Disponibilidade e preço podem mudar depois de um sync.
Fidelidade
Entrada aceita ≠ resultado fielO Bench registra o que foi submetido. Ele não afirma que uma referência anexada influenciou a saída só porque a API aceitou o campo — revisão humana continua necessária.
Saídas
Site estático, PDF via ChromeA saída de site é estática por design, e a criação de PDF depende de uma instalação local do Chrome.
Custo
Ter a camada é manter softwareEstimativas não são garantias, e ser dono da camada portátil significa manter um pequeno pedaço de software.