CLI & Build
O Seed oferece uma CLI completa para criar projetos, desenvolver com live reload e gerar builds de produção.
Comandos
seed init
```bash seed init <nome> [--theme <src>] [--components <src>] ```
Cria um novo projeto com a estrutura completa de pastas e um seed.yaml inicial. Ao final, oferece instalar a biblioteca de componentes seed-ui caso --components não tenha sido passado.
seed dev
```bash seed dev <pasta> [porta] ```
Inicia o dev server com live reload na porta 8000 (padrão). Durante o servidor, teclas de atalho estão disponíveis:
| Tecla | Ação |
|---|---|
o | Abre o browser |
b | Rebuilda todos os arquivos |
r | Reinicia o servidor |
q | Encerra |
seed build
```bash seed build <pasta> ```
Gera o build de produção em dist/. Limpa o dist/ antes de rebuildar, copia seed.css, seed.js e os assets de src/static/ e do tema (se houver).
seed theme-install / theme-update
```bash seed theme-install <projeto> <path|github-url> seed theme-update <projeto> <path|github-url> ```
Instala ou atualiza um tema em libs/themes/ e atualiza o seed.yaml. Se o tema já estiver instalado, theme-install pergunta antes de sobrescrever.
seed components-install / components-update
```bash seed components-install <projeto> <path|github-url> seed components-update <projeto> <path|github-url> ```
Instala ou atualiza uma biblioteca de componentes em libs/components/ e atualiza o seed.yaml. Suporta caminhos locais e URLs do GitHub.
seed.yaml
O arquivo seed.yaml na raiz do projeto configura o tema e a biblioteca de componentes ativos:
```yaml theme: meu-tema components: seed-ui ```
O Seed resolve os diretórios automaticamente: libs/themes/meu-tema/ e libs/components/seed-ui/.
Estrutura de output
``` dist/ ├── index.html # páginas renderizadas ├── seed.css # CSS do core (copiado automaticamente) ├── seed.js # JS do core (copiado automaticamente) └── static/ # assets (copiados de src/static/ e tema) ```
seed.css e seed.js são sempre sobrescritos a cada build — não os edite diretamente. Para CSS extra, use extra_css no front matter apontando para arquivos em src/static/.