{"_id":"@alexis-reillo/git-helper","_rev":"3-40eb6d21b2de010fd4fe7dd8ef9f713e","name":"@alexis-reillo/git-helper","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.0":{"name":"@alexis-reillo/git-helper","version":"0.1.0","license":"MIT","_id":"@alexis-reillo/git-helper@0.1.0","maintainers":[{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"}],"bin":{"git-helper":"dist/index.js"},"dist":{"shasum":"35d7fdfc245a8b94ff652f0c4e7894f37bd53c9d","tarball":"https://registry.npmjs.org/@alexis-reillo/git-helper/-/git-helper-0.1.0.tgz","fileCount":3,"integrity":"sha512-BSlQSb4scPsWIdl+FcO8Zt7jCQOCu+71zzfl1QhvdkZ/1zVShsH8fMozfpRV8yDTXnF5R8o37nY/lyuh+XjELg==","signatures":[{"sig":"MEUCIQDVXq9TM1Zih1Z+zFkqzg2kyfXt7Y1elrybhpXBlQt/xAIgTOeAUA57DxvMCGWE30mEfiH0HfEAwuMV0FIMJVbHe4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31394},"_from":"file:alexis-reillo-git-helper-0.1.0.tgz","engines":{"node":">=18"},"scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsup","start":"tsx src/index.ts","check-types":"tsc --noEmit"},"_npmUser":{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"},"_resolved":"C:\\Users\\alexi\\AppData\\Local\\Temp\\3280f7bb78afda330bc1a50f1ee9efa7\\alexis-reillo-git-helper-0.1.0.tgz","_integrity":"sha512-BSlQSb4scPsWIdl+FcO8Zt7jCQOCu+71zzfl1QhvdkZ/1zVShsH8fMozfpRV8yDTXnF5R8o37nY/lyuh+XjELg==","_npmVersion":"11.6.2","description":"Analiza Pull Requests de GitHub usando Inteligencia Artificial, desde la terminal.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^7.0.3","ora":"^5.4.1","zod":"^4.4.3","chalk":"^4.1.2","dotenv":"^17.4.2","figlet":"^1.8.0","commander":"^15.0.0","cli-table3":"^0.6.5","@octokit/rest":"^22.0.1","@ai-sdk/google":"^4.0.2","@ai-sdk/openai":"^4.0.1","gradient-string":"^2.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","vitest":"^2.1.9","@repo/core":"0.0.0","@types/node":"^20","@types/figlet":"^1.7.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/git-helper_0.1.0_1782635939642_0.747481618079805","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alexis-reillo/git-helper","version":"0.2.0","license":"MIT","_id":"@alexis-reillo/git-helper@0.2.0","maintainers":[{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"}],"bin":{"git-helper":"dist/index.js"},"dist":{"shasum":"e916ebf68c3f9e55fc5d0f9cdfbc8253adbb36b6","tarball":"https://registry.npmjs.org/@alexis-reillo/git-helper/-/git-helper-0.2.0.tgz","fileCount":5,"integrity":"sha512-Zq9hNdl4UAyQAEmXqEQNaFTwMcwzvNuL/eeijNSyITCEZKn/UdzhcBr3OCHlSen4I0AcNYCO6W9QZyZlxZMhbA==","signatures":[{"sig":"MEUCIFK+uj7xWgdHRr1mtLGsjEgk/5VY6JhEaSKrTZhrvLYTAiEA8wtPlyp2pRQbM2JrQ8hEMEk6CMUjGWDzHgSe1i2xt4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41628},"type":"module","_from":"file:alexis-reillo-git-helper-0.2.0.tgz","engines":{"node":">=18"},"scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","build":"tsup","start":"tsx src/index.ts","check-types":"tsc --noEmit"},"_npmUser":{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"},"_resolved":"C:\\Users\\alexi\\AppData\\Local\\Temp\\005fce300975a439d98ea2e4663ab059\\alexis-reillo-git-helper-0.2.0.tgz","_integrity":"sha512-Zq9hNdl4UAyQAEmXqEQNaFTwMcwzvNuL/eeijNSyITCEZKn/UdzhcBr3OCHlSen4I0AcNYCO6W9QZyZlxZMhbA==","_npmVersion":"11.6.2","description":"Analiza Pull Requests de GitHub usando Inteligencia Artificial, desde la terminal.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^7.0.3","ink":"^7.1.0","ora":"^5.4.1","zod":"^4.4.3","chalk":"^4.1.2","react":"^19.2.0","dotenv":"^17.4.2","figlet":"^1.8.0","commander":"^15.0.0","cli-table3":"^0.6.5","ink-spinner":"^5.0.0","@octokit/rest":"^22.0.1","@ai-sdk/google":"^4.0.2","@ai-sdk/openai":"^4.0.1","ink-text-input":"^6.0.0","gradient-string":"^2.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","vitest":"^2.1.9","@repo/core":"0.0.0","@types/node":"^20","@types/react":"^19.0.0","@types/figlet":"^1.7.0","ink-testing-library":"^4.0.0","@types/gradient-string":"^1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/git-helper_0.2.0_1782640664435_0.9449733162915861","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alexis-reillo/git-helper","version":"1.0.0","description":"Analiza Pull Requests de GitHub usando Inteligencia Artificial, desde la terminal.","license":"MIT","author":{"name":"Alexis Reillo Segarra"},"repository":{"type":"git","url":"git+https://github.com/Alexis-Reillo-Segarra/GitHelper.git","directory":"apps/cli"},"homepage":"https://github.com/Alexis-Reillo-Segarra/GitHelper/tree/main/apps/cli#readme","bugs":{"url":"https://github.com/Alexis-Reillo-Segarra/GitHelper/issues"},"keywords":["github","pull-request","code-review","ai","cli","tui","review"],"type":"module","bin":{"git-helper":"dist/index.js"},"scripts":{"dev":"tsx watch src/index.ts","start":"tsx src/index.ts","build":"tsup","prepublishOnly":"pnpm build","check-types":"tsc --noEmit","test":"vitest run"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"dependencies":{"@ai-sdk/anthropic":"^4.0.0","@ai-sdk/google":"^4.0.2","@ai-sdk/openai":"^4.0.1","@ai-sdk/openai-compatible":"^3.0.0","ai":"^7.0.3","chalk":"^4.1.2","cli-table3":"^0.6.5","commander":"^15.0.0","dotenv":"^17.4.2","ink":"^7.1.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ora":"^5.4.1","react":"^19.2.0","zod":"^4.4.3"},"devDependencies":{"@repo/core":"workspace:*","@types/node":"^20","@types/react":"^19.0.0","ink-testing-library":"^4.0.0","tsup":"^8.0.0","tsx":"^4.7.0","vitest":"^2.1.9"},"gitHead":"0a66805fc9c2b493f8b939dbc959b7aa31efcf76","_id":"@alexis-reillo/git-helper@1.0.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Tznz1Ljsll0otW0n1IOKDbPBW0VxYSsz7uZaK82K3NTcgZsRQY550vEi3bWrn5wtWqjjlzbSL8EZsVTQm1o26A==","shasum":"5a07da80ad33b2d72b575a78eb7103c8e04f71cd","tarball":"https://registry.npmjs.org/@alexis-reillo/git-helper/-/git-helper-1.0.0.tgz","fileCount":11,"unpackedSize":92479,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCejGjYfkIDVoTH/aSESsVNP+249wsOzUvcXnneELxV9wIgMuHjgVVbYHAZ9lFQNTLJPpRYqy87jaRzk4UOqi0avdM="}]},"_npmUser":{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"},"directories":{},"maintainers":[{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/git-helper_1.0.0_1783084373578_0.7303405282885664"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T08:38:59.491Z","modified":"2026-07-03T13:12:53.836Z","0.1.0":"2026-06-28T08:38:59.768Z","0.2.0":"2026-06-28T09:57:44.563Z","1.0.0":"2026-07-03T13:12:53.706Z"},"license":"MIT","description":"Analiza Pull Requests de GitHub usando Inteligencia Artificial, desde la terminal.","maintainers":[{"name":"alexis-reillo","email":"alexisreillo12@gmail.com"}],"readme":"# git-helper (CLI)\r\n\r\nAnaliza Pull Requests de GitHub usando Inteligencia Artificial, directamente desde\r\nla terminal — con una **interfaz interactiva a pantalla completa** estilo Claude Code.\r\n\r\n## Instalación\r\n\r\n```bash\r\n# Uso puntual, sin instalar\r\nnpx @alexis-reillo/git-helper\r\n\r\n# Instalación global\r\nnpm i -g @alexis-reillo/git-helper\r\ngit-helper\r\n```\r\n\r\nRequiere **Node.js >= 18**.\r\n\r\n## Inicio rápido (interfaz interactiva)\r\n\r\nEjecuta `git-helper` **sin argumentos** para abrir la TUI a pantalla completa:\r\n\r\n```bash\r\ngit-helper\r\n```\r\n\r\n- La **primera vez** un asistente te guía en dos pasos: eliges tu **proveedor de\r\n  IA** (Gemini, OpenAI, Claude, Kimi o MiniMax) y pegas su API key, y conectas\r\n  tu cuenta de **GitHub** (ver [Token de GitHub](#token-de-github-primer-uso)).\r\n  Todo se guarda y no vuelve a pedirse.\r\n- Verás la lista de tus **PRs pendientes**. Navega con `↑↓`, pulsa `⏎` para\r\n  analizar uno con IA, `r` para refrescar y `q` para salir.\r\n\r\n> **Tip visual:** usa una terminal moderna (Windows Terminal, iTerm2…) con una\r\n> [Nerd Font](https://www.nerdfonts.com/) para que la mascota y los iconos se\r\n> vean perfectos.\r\n\r\n## Token de GitHub (primer uso)\r\n\r\ngit-helper necesita acceso a tu cuenta de GitHub para listar tus Pull Requests\r\npendientes. Tienes tres formas de dárselo (de más a menos cómoda):\r\n\r\n1. **Automática (recomendada):** abre `git-helper` y elige **\"Iniciar sesión\r\n   con el navegador\"**: se abre github.com, autorizas y la terminal continúa\r\n   sola — sin crear ningún token a mano. Si no hay navegador disponible (SSH,\r\n   contenedores), el enlace y el código quedan visibles para abrirlo donde sea.\r\n2. **Con el comando `config`** (persiste en `~/.config/git-helper/.env`, permisos `0600`):\r\n   ```bash\r\n   git-helper config set GITHUB_TOKEN ghp_xxx\r\n   ```\r\n3. **Variable de entorno** (puntual, no se guarda):\r\n   ```bash\r\n   export GITHUB_TOKEN=ghp_xxx      # bash/zsh\r\n   $env:GITHUB_TOKEN=\"ghp_xxx\"      # PowerShell\r\n   ```\r\n\r\n**Cómo crear el token:** ve a\r\n[github.com/settings/tokens](https://github.com/settings/tokens) → *Generate new\r\ntoken* → marca el scope **`repo`** (o un fine-grained con lectura de repos y PRs).\r\n\r\n> El token se guarda **solo en tu equipo**. Para verlo/borrarlo:\r\n> `git-helper config list` (enmascarado) · `git-helper config unset GITHUB_TOKEN`.\r\n\r\n## Comandos (modo no interactivo)\r\n\r\nAdemás de la TUI, todo está disponible como comandos sueltos (útil para scripting):\r\n\r\n| Comando             | Alias     | Descripción                                  |\r\n| ------------------- | --------- | -------------------------------------------- |\r\n| `git-helper`        | —         | Abre la interfaz interactiva a pantalla completa. |\r\n| `git-helper list`   | `ls`      | Lista tus Pull Requests pendientes (requiere `GITHUB_TOKEN`). |\r\n| `git-helper review` | `analyze` | Analiza un PR concreto con IA.               |\r\n| `git-helper config` | —         | Gestiona la configuración guardada (claves y tokens). |\r\n\r\n### `review`\r\n\r\n```bash\r\ngit-helper review --owner <owner> --repo <repo> --pr <number>\r\n```\r\n\r\n| Opción            | Alias | Descripción                          |\r\n| ----------------- | ----- | ------------------------------------ |\r\n| `--owner <owner>` | `-o`  | Propietario del repo (ej: `vercel`)  |\r\n| `--repo <repo>`   | `-r`  | Nombre del repositorio (ej: `next.js`) |\r\n| `--pr <number>`   | `-p`  | Número del Pull Request              |\r\n| `--json`          | —     | Imprime el resultado en JSON (sin formato visual) |\r\n| `--no-optimize`   | —     | Envía el diff íntegro, sin podar ruido no revisable (lockfiles, generados, binarios…). Gasta más tokens |\r\n\r\n### `list`\r\n\r\n```bash\r\ngit-helper list           # tabla bonita\r\ngit-helper list --json    # salida JSON para scripts\r\n```\r\n\r\n### `config`\r\n\r\n```bash\r\ngit-helper config set GITHUB_TOKEN ghp_...\r\ngit-helper config set GOOGLE_GENERATIVE_AI_API_KEY ...\r\ngit-helper config list     # secretos enmascarados\r\ngit-helper config unset OPENAI_API_KEY\r\ngit-helper config path     # ruta del archivo\r\n```\r\n\r\n## Configuración (variables de entorno)\r\n\r\nPrioridad: **variables de entorno reales** > `.env` del directorio actual >\r\nconfig global guardada (`config set`).\r\n\r\n| Variable                          | Requerida           | Descripción                                                    |\r\n| --------------------------------- | ------------------- | -------------------------------------------------------------- |\r\n| `GITHUB_TOKEN`                    | Para `list` y la TUI | Token de GitHub (scope `repo`). Sube el rate limit y permite repos privados. |\r\n| `AI_PROVIDER`                     | No (`gemini`)       | Proveedor de IA: `gemini`, `openai`, `anthropic`, `kimi` o `minimax`. |\r\n| `GOOGLE_GENERATIVE_AI_API_KEY`    | Si `AI_PROVIDER=gemini` | Clave de [Google AI Studio](https://aistudio.google.com/apikey). |\r\n| `OPENAI_API_KEY`                  | Si `AI_PROVIDER=openai` | Clave de [OpenAI](https://platform.openai.com/api-keys).   |\r\n| `ANTHROPIC_API_KEY`               | Si `AI_PROVIDER=anthropic` | Clave de [Anthropic](https://console.anthropic.com/settings/keys). |\r\n| `MOONSHOT_API_KEY`                | Si `AI_PROVIDER=kimi` | Clave de [Moonshot](https://platform.moonshot.ai/console/api-keys). |\r\n| `MINIMAX_API_KEY`                 | Si `AI_PROVIDER=minimax` | Clave de [MiniMax](https://www.minimax.io/platform).      |\r\n| `AI_MODEL`                        | No                  | Fuerza un modelo concreto (por defecto, el recomendado del proveedor, p. ej. `gemini-2.5-flash`). |\r\n| `AI_BASE_URL`                     | No                  | Base URL alternativa para `kimi`/`minimax` (proveedores compatibles con la API de OpenAI). |\r\n| `AI_ENSEMBLE_RUNS`                | No (`3`)            | Nº de ejecuciones del ensemble por análisis (mediana). `1` lo desactiva. |\r\n| `GITHUB_CLIENT_ID` / `GITHUB_CLIENT_SECRET` | No        | Credenciales de una OAuth App de GitHub para habilitar \"Iniciar sesión con el navegador\". |\r\n","readmeFilename":"README.md","homepage":"https://github.com/Alexis-Reillo-Segarra/GitHelper/tree/main/apps/cli#readme","keywords":["github","pull-request","code-review","ai","cli","tui","review"],"repository":{"type":"git","url":"git+https://github.com/Alexis-Reillo-Segarra/GitHelper.git","directory":"apps/cli"},"author":{"name":"Alexis Reillo Segarra"},"bugs":{"url":"https://github.com/Alexis-Reillo-Segarra/GitHelper/issues"}}