awgcli
v1.1.8
Published
Paquete CLI en node y typescript para la creación de proyectos y templates de AWG
Readme
AWG CLI
CLI para crear, actualizar y commitear proyectos con ayuda de IA.
Hecho en Node.js + TypeScript.
- 🧪 Crear proyectos desde templates (wizard interactivo)
- 🧬 “Despegar” el git del template y hacer el primer commit
- ⚙️ Generar .env según tipo de proyecto (web | native) desde
cli-config.json - 📦 Detectar package manager e instalar dependencias
- ⬆️
--update: aplicar cambios del template original a proyectos ya creados (one‑way, con rama backup) - 🤖
--ai-commit: mensajes de commit con IA (OpenAI u Ollama), con Aceptar / Editar / Cancelar - 🔐 SSH auto‑setup: si no tenés clave, la generamos y te ayudamos a subirla a GitHub
Requisitos: Node 18+ y Git.
🚀 Uso rápido
npx awgcli # abre el wizard para crear un proyecto
npx awgcli --help # ver ayudaComandos principales:
# Actualizar un proyecto desde el template (one-way)
npx awgcli --update
npx awgcli --update --to v1.4.0
npx awgcli --update --dry-run
npx awgcli --update --exclude ".env" "dist/**" "node_modules/**"
# Commit con IA (Conventional Commits)
npx awgcli --ai-commit # asume que ya hiciste 'git add'
npx awgcli --ai-commit --all # hace 'git add -A' y luego commitea con IAFlags útiles:
--help,--version--to <ref>(tag/rama/commit destino para--update)--dry-run(simula el update)--exclude "<glob>" [...](excluye rutas en el patch del update)--all(staging automático antes del--ai-commit)
🔐 SSH (simple y directo)
Cuando corrés npx awgcli:
- Si ya tenés clave SSH → Continua clonando.
- Si NO tenés clave → el CLI:
- Genera una clave ed25519 (por ejemplo
~/.ssh/id_ed25519). - Si tenés GitHub CLI (
gh) instalado y logueado, intenta subir la clave pública automaticamente. - Si no hay
gho falla, te mostramos tu clave pública y 3 pasos para agregarla manualmente.
- Genera una clave ed25519 (por ejemplo
⚙️ Configuración de IA (opcional)
Elegí proveedor y modelo:
OpenAI
AWG_AI_PROVIDER=openai
AWG_AI_MODEL=gpt-4o-mini
AWG_AI_KEY=sk-xxxxxxxxxxxxxxxxOllama (local)
AWG_AI_PROVIDER=ollama
AWG_AI_MODEL=llama3
OLLAMA_URL=http://localhost:11434El CLI también respeta:
CLI_CONFIG(ruta a uncli-config.jsonalternativo) yDEBUG_CLI_CONFIG=1(logs de carga).
Leemos.env.local>.env.cli>.envsi existen. Asegurate de git‑ignorar tu.env.
🧩 cli-config.json
Ejemplo mínimo:
{
"org": "awg-org",
"vcs": "github",
"defaultBranch": "main",
"naming": {
"prefix": "acp",
"suffix": "awg",
"types": { "web": "web", "native": "native" }
},
"templates": [
{ "name": "Web App", "repoUrl": "url ssh de github a clonar" },
{ "name": "App Native", "repoUrl": "url ssh de github a clonar" }
],
"env": {
"web": {
".env": [
{ "key": "APP_NAME", "default": "${projectName}" },
{ "key": "NODE_ENV", "default": "development" },
{ "key": "API_BASE_URL", "required": true },
{ "key": "AWG_AI_PROVIDER", "required": false, "default": "ollama" },
{ "key": "AWG_AI_MODEL", "required": false, "default": "llama3" },
{ "key": "OLLAMA_URL", "required": false, "default": "http://localhost:11434" }
]
},
"native": {
".env": [
{ "key": "APP_NAME", "default": "${projectName}" },
{ "key": "API_BASE_URL", "required": true }
]
}
},
"packageManager": "auto"
}Si no existe en tu CWD, usamos el bundled del paquete.
💡 Scripts útiles en proyectos creados
El CLI agrega a tu package.json del proyecto:
{
"scripts": {
"ai:preview": "npx awgcli --ai-commit",
"ai:commit": "npx awgcli --ai-commit --all"
}
}Usos:
npm run ai:preview
npm run ai:commit🧾 Publicar nueva versión en npm (simple)
Tenés estos scripts en el package.json del CLI:
# patch = fixes pequeños (x.y.z -> x.y.(z+1))
npm run release:patch
# minor = features compatibles (x.y.z -> x.(y+1).0)
npm run release:minor
# major = cambios incompatibles (x.y.z -> (x+1).0.0)
npm run release:majorQué hacen por detrás (en resumen):
- Compilan (
prepublishOnly→npm run build). - Commit “build: prepare release” si hay cambios staged.
npm version <tipo>(bump + tag).git push && git push --tags.npm publish --access public.
Prerrequisitos:
npm login
npm whoami
# (si tu org usa 2FA, tenela a mano)❓ Ayuda / Versión
npx awgcli --help
npx awgcli --version