Pular para o conteúdo
Prumo
    Busca em todos os títulos da documentação.

    Começar

    Gerar um projeto leva um comando. Esta página cobre o que a máquina precisa antes, o que o CLI pergunta e o que chega.

    1. Confira a máquina

      O Prumo precisa de Node 22.23.4 ou mais novo e de pnpm 10.26 ou mais novo, no macOS, no Linux ou no Windows. No Windows ele roda nativamente: o projeto fica numa pasta do Windows, e quem o roda são o Node e o pnpm do Windows. Dentro de uma distribuição WSL, com Node, pnpm e Docker dela, o Prumo está no Linux, que é suportado, embora não seja testado no WSL especificamente; ferramentas do Windows trabalhando num projeto dentro do sistema de arquivos do WSL não são suportadas. Qualquer coisa com API precisa também de Docker, porque é lá que roda o banco de desenvolvimento: no Windows, o Docker Desktop com o backend WSL2, configurado para contêineres Linux. Este comando confere tudo e diz o que falta.

      npx @stjoseph/prumo doctor
    2. Gere o projeto

      Ele pergunta o que construir, escreve o projeto em my-app/, roda git init e instala. Nada é commitado, então o primeiro commit é seu e o diff dele mostra tudo o que o Prumo escreveu.

      npx @stjoseph/prumo new my-app
    3. Responda sem terminal

      Toda pergunta tem uma flag, e sem terminal toda pergunta que as respostas levantam precisa da sua: uma flag que falta é erro. Mais de um tipo faz um workspace; um único tipo precisa de --alone ou --monorepo para dizer como fica disposto.

      npx @stjoseph/prumo new my-app --types api,web --single-tenant --single-language --languages en --no-mcp --sign-in password --email --no-social
    4. Crie o banco

      Dentro de um projeto com API, isto cria o banco de desenvolvimento no Docker, escreve a URL dele no .env e roda as migrations, a menos que se passe --skip-migrate. Uma vez que o banco existe, prumo clean remove a preparação de que o projeto precisou uma vez só.

      npx @stjoseph/prumo db

    As flags

    FlagO que ela responde
    --types api,web,mobileO que o projeto contém. Mais de um tipo faz um workspace; web:vite, web:next ou web:astro escolhe o framework web, Vite por padrão
    --alone --monorepoComo um tipo sozinho fica disposto
    --multi-tenant --single-tenantCom uma api, web ou mobile: se a aplicação serve vários inquilinos. Multi-tenant traz as convenções de multi-tenancy; o código gerado em si ainda não é ciente de inquilino
    --single-language --multi-languageSe o projeto fala um idioma, com os textos escritos onde aparecem, ou vários, a partir de mensagens: um arquivo por idioma, conferido com uma base, para que outro idioma seja um arquivo e a sua tradução
    --languages en,pt-BR,es-419Os idiomas: exatamente um com --single-language, ou com --multi-language um ou mais, a base primeiro. O Prumo traduz os templates nestes três
    --mcp --no-mcpCom uma api e uma web: se assistentes de IA chegam à API por MCP, autenticados como o usuário
    --sign-in password,email-code,phone-codeCom uma api: como as pessoas entram, uma forma ou mais: uma senha, ou um código de 6 dígitos enviado por email ou por SMS, e o primeiro cria a conta
    --email --no-emailCom uma api e password: verificação de email e redefinição de senha, por um código de 6 dígitos enviado pela porta Mailer, que escreve no log até você dar a ela um provedor
    --social google,apple --no-socialCom uma api e uma web ou mobile: login com Google, Apple, ou os dois
    --skip-installPara depois de escrever os arquivos

    O que chegou

    ArquivoO que é
    .prumo/As convenções, em dezessete áreas. Só as áreas que as respostas pedem são copiadas
    .prumo/INDEX.mdUma linha por documento. Gerado pela ferramenta, e seguro de regerar
    .context/INDEX.mdAs regras do próprio projeto, que valem sobre o .prumo/. Nasce vazio; o assistente acrescenta uma regra quando o dev a enuncia
    AGENTS.mdO ponteiro para o .context/ e o .prumo/, lido por Codex, Cursor, Copilot, Gemini CLI e outros
    CLAUDE.mdUm import de @AGENTS.md, para o Claude Code