Install
$
curl -fsSL https://willsantos.github.io/orotools/install.sh | bash
Detecta SO e arquitetura, valida o checksum sha256 e instala em
~/.local/bin. Já tem o oro? oro upgrade atualiza.
Sem JavaScript ou SO diferente? Baixe o asset certo na página de releases.
Assets da última release
Quick start
$
oro new meu-app --stack fastify-next --yes
Stacks oficiais: dotnet, dotnet-next, fastify-next, rails.
Adote um repositório existente com oro init.
Dev manager — o arquivo projects.config.json
O oro dev gerencia os dev servers dos seus projetos a partir do
arquivo projects.config.json no diretório $CLIENTES_HOME
(ou no caminho passado em --config). Você pode criá-lo com o wizard
oro dev add ou escrevê-lo à mão:
{
"projects": {
"projeto-a": {
"name": "Projeto A (Sistema)",
"path": "/home/voce/dev/clientes/projeto-a",
"cwd": "/home/voce/dev/clientes/projeto-a/apps/web",
"package_manager": "pnpm",
"dev_command": "pnpm dev",
"port": 3001,
"description": "Monorepo Next.js - Sistema Projeto A",
"group": "Clientes"
},
"projeto-b": {
"name": "Projeto B (Prospect)",
"path": "/home/voce/dev/clientes/prospect",
"cwd": "/home/voce/dev/clientes/prospect/projeto-b/app",
"package_manager": "pnpm",
"dev_command": "pnpm dev",
"port": 5178,
"description": "Vite + React 19 - Proposta Projeto B",
"group": "Prospects"
}
},
"settings": {
"log_dir": ".dev-logs",
"pid_dir": ".dev-pids",
"enforce_unique_ports": true
}
}
Em destaque, o campo group — a novidade que organiza os projetos. Detalhes de cada campo:
| Campo | Descrição |
|---|---|
| chave do projeto | A chave ("projeto-a", "projeto-b") é o atalho usado nos comandos: oro dev projeto-a inicia o projeto. |
| name | Nome exibido na tabela do oro dev list. |
| path | Raiz do projeto. |
| cwd | Diretório onde o comando roda (monorepos); se vazio, é o próprio path. |
| package_manager | npm ou pnpm. |
| dev_command | Comando do dev server. Menções a vite/next definem a faixa de porta sugerida pelo add (next 3001–3099, vite 5174–5199). |
| port | Porta do serviço; null para projetos sem porta (ex.: workers). É a base da checagem de prontidão pós-start e do oro dev open. |
| description | Descrição curta. |
| group | Grupo do projeto (opcional) — veja abaixo. |
Grupos
- Sem cadastro — o conjunto de grupos é derivado do campo
groupdos projetos: um grupo existe a partir do primeiro projeto que o usa. O wizardoro dev addpede o grupo (opcional) e sugere os existentes. - Filtre por grupo —
oro dev list clientesmostra só o grupo;oro dev list clientes prospectsmostra a união. Grupo inexistente é erro, listando os disponíveis. - Matching ignora caixa e acentos —
clientescasaClientes;configuracoescasaConfigurações. A exibição usa sempre a grafia gravada no config. - Migração zero — config antigo sem
groupfunciona sem alteração nenhuma, e ooro devpreserva o arquivo byte a byte ao salvar.
Settings
| Campo | Descrição |
|---|---|
| log_dir | Diretório dos logs; default .dev-logs ao lado do config (caminho relativo ou absoluto). |
| pid_dir | Diretório dos pids; default .dev-pids, mesmo critério. |
| enforce_unique_ports | Com true, o start fixa a porta configurada no comando: flags do vite/next/wrangler, -- --port para wrappers npm e env PORT/HOST. Sem ele, o comando roda como está. |