npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@redcumbrecl/cli

v0.3.1

Published

Conecta tu proyecto con rCAPI de REDCUMBRE: inicia sesión con tu cuenta e instala la llave de la API en el proyecto.

Downloads

476

Readme

@redcumbrecl/cli

El CLI de REDCUMBRE: conecta tu proyecto con la API en el modo de prueba, opera la API desde la terminal y pasa a real cuando estés listo.

npx @redcumbrecl/cli init

init inicia sesión con tu cuenta en el navegador, deja instalada una llave de prueba sin preguntar y termina con una primera prueba: emite una factura con el emisor de prueba y abre su PDF. En el modo de prueba nada llega al SII ni a nadie, y nada se cobra.

  • La llave queda en keys/redcumbre-prueba.json (el mismo JSON que descarga la pantalla web de llaves) y el .env sólo apunta a ese archivo (REDCUMBRE_LLAVE_PRUEBA=keys/redcumbre-prueba.json). La llave real, cuando la agregues, queda en keys/redcumbre-real.json y REDCUMBRE_LLAVE_REAL. keys/, .redcumbre/ y .env (si no lo versionas ya) quedan fuera del control de versiones.
  • En una carpeta vacía, init --lenguaje <typescript|python|dotnet|php> arma antes el proyecto con el generador del lenguaje y le agrega el AGENTS.md y la receta factura.
  • Crear llaves exige ser administrador de la empresa. Si no tienes cuenta, redcumbre solicitar-cuenta.

Comandos

| Comando | Qué hace | |---|---| | init [--empresa <slug>] [--lenguaje …] [--entorno prueba\|real] | Conecta el proyecto con una llave de prueba y hace la primera prueba | | pasar-a-real [--servicios <códigos>] | Revisa que todo esté en orden y agrega la llave real (lo hace una persona) | | login [--json] [--codigo <código>] · logout | Inicia o cierra la sesión | | llaves · llaves revocar <id> --confirmar <slug> | Lista las llaves de la empresa y marca las del proyecto; revoca una | | llaves validafirma --empresa <slug> --alcance carpetas\|cuenta [--modo prueba\|real] | Crea la llave con la que el CLI de ValidaFirma trabaja en una empresa | | llamadas [--llave <id>] [--real] | Las últimas llamadas a la API hechas con la llave del proyecto | | webhooks escuchar --reenviar-a <url> [--eventos a,b] | Recibe en tu computador los webhooks de la empresa | | eventos · eventos disparar <evento> | Los eventos de webhook del modo de prueba, y dispara uno | | escenarios | Los emisores, RUT y simulaciones del modo de prueba | | bandeja | Los correos y mensajes que el modo de prueba retuvo en vez de enviarlos | | estado · restaurar --confirmar <slug> | El modo de cada llave y el tope diario; borra lo emitido en prueba y vuelve a sembrar | | api [<operación>] [--param k=v] [--cuerpo @archivo\|-] [--real] [--ensayo] | Ejecuta una operación de la API con la llave del proyecto | | api describir <operación> · api buscar <texto> | Describe una operación o busca entre ellas | | consumo [--real] | Lo consumido del plan y los topes del día | | receta <consultar-rut\|factura\|boleta-honorarios\|boleta-terceros> [--lenguaje …] | Agrega una receta que funciona en el modo de prueba (sólo agrega archivos) | | mcp agregar\|quitar [--asistente claude-code\|cursor] | Conecta o desconecta el servidor MCP de REDCUMBRE en tu asistente | | solicitar-cuenta | Pide una cuenta para tu empresa (lo hace una persona) | | doctor | Revisa la sesión, la empresa, las llaves, las exclusiones de git y el documento del API | | panel | Abre el panel de la empresa del proyecto en el navegador |

Para probar una operación sin escribir código, redcumbre api buscar <texto> la encuentra, redcumbre api describir <operación> muestra sus parámetros y redcumbre api <operación> la ejecuta con la llave de prueba del proyecto (--real para la real).

Toda operación que afecta datos reales pide confirmar escribiendo el slug de la empresa (--confirmar <slug>). Las que emiten llevan una clave de idempotencia: el CLI la imprime y la reusas con --clave si reintentas.

Para agentes de código

Con --json (o sin terminal) el CLI no pregunta nada: la salida estándar trae sólo JSON, los avisos van a la salida de errores y nunca incluye el secreto de una llave. Lo que necesita a una persona —iniciar sesión, crear la llave real, confirmar una operación real, solicitar una cuenta— sale con un código distinto de 0 y el comando que la persona tiene que correr en error.comando:

{ "error": { "codigo": "SIN_SESION", "mensaje": "…", "comando": "redcumbre login --json" } }

login --json entrega la URL para que la persona la abra y login --codigo <código> completa el inicio de sesión.

Llave de ValidaFirma

redcumbre llaves validafirma --empresa <slug> --alcance carpetas|cuenta [--modo prueba|real] [--json]

Crea en la empresa la llave con la que el CLI de ValidaFirma trabaja, y la deja en keys/validafirma-<empresa>-<alcance>-<modo>.json con permisos 0600. No habla con ValidaFirma, y no toca .env, .redcumbre/estado.json ni la llave del proyecto. La empresa tiene que tener ValidaFirma activo.

| Bandera | Valores | |---|---| | --empresa <slug> | Obligatoria. El identificador de la empresa (tenantSlug) | | --alcance <alcance> | Obligatoria. carpetas (carpetas y documentos) o cuenta (cuenta corporativa) | | --modo <modo> | prueba (por omisión) o real. La real la crea una persona en una terminal, escribiendo el slug | | --json | La salida estándar trae sólo el JSON de abajo |

Si el archivo ya existe y su llave sigue funcionando en esa empresa, con ese modo y ese rol, la reutiliza y no crea otra. Si no funciona, crea una nueva en su lugar.

{ "archivo": "keys/validafirma-agua-sur-carpetas-prueba.json", "empresa": { "slug": "agua-sur", "nombre": "Agua Sur" },
  "alcance": "carpetas", "modo": "prueba", "rol": "VALIDAFIRMA_API", "llaveId": "…", "resultado": "creada" }

| Clave | Qué trae | |---|---| | archivo | La ruta absoluta de la llave | | empresa | slug y nombre de la empresa | | alcance | carpetas o cuenta | | modo | prueba o real | | rol | El rol que la plataforma le dio a la llave | | llaveId | El id de la llave creada; null si se reutilizó | | resultado | creada, reutilizada o reemplazada |

Ningún campo trae el secreto de la llave. Cuando algo falla, el código de salida y error.codigo son:

| Caso | Salida | error.codigo | |---|---|---| | Sin sesión, sin terminal | 4 | SIN_SESION | | Tu cuenta no tiene permiso en la empresa | 6 | SIN_ROL | | La empresa no tiene ValidaFirma activo | 6 | VALIDAFIRMA_NO_ACTIVO | | Un alcance que el CLI no emite | 2 | ALCANCE_NO_EMITIDO | | Real sin terminal, o con terminal y otro texto que el slug | 3 | FALTA_CONFIRMACION | | La llave escrita no pasa la comprobación | 5 | LLAVE_RECHAZADA | | Falta una bandera obligatoria, --empresa vacía o un --modo que no existe | 2 | USO_INCORRECTO | | El archivo de la llave no se lee como una llave | 1 | ERROR_DEL_CLI | | La API no responde | 7 | SIN_CONEXION | | La API responde un error 5xx | 7 | API_NO_DISPONIBLE |

Las banderas, las claves de la salida y esta tabla son un contrato: no cambia sin una versión mayor del paquete.

Códigos de salida

| Código | Significa | |---|---| | 0 | Listo | | 1 | Error del CLI o del proyecto | | 2 | Uso incorrecto (comando, opción o valor que no existe) | | 3 | Falta la confirmación de una persona | | 4 | Falta iniciar sesión, o la sesión venció | | 5 | Falta la llave, o la API la rechaza | | 6 | La API respondió un error 4xx | | 7 | La API respondió un error 5xx o no respondió | | 8 | La llave es de otro modo (prueba en vez de real, o al revés) |

Sesión

redcumbre logout cierra la sesión y la revoca. La sesión se guarda en el llavero del sistema o, si no hay, en un archivo 0600 de tu carpeta de configuración — nunca en el proyecto. Con REDCUMBRE_SESION_EN_ARCHIVO=1 va al archivo aunque haya llavero (útil en contenedores y equipos compartidos).

Documentación: https://docs.redcumbre.cl/primeros-pasos/integrar-con-ia/