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

@roilab/crm-cli

v0.1.0

Published

CLI for humans and AI agents to drive the ROILab SEO+CRM platform. Always-JSON envelope, numeric exit codes, idempotent writes, device-flow auth.

Readme

@roilab/crm-cli

CLI for humans and AI agents to drive the ROILab SEO+CRM platform.

CLI para el SEO + CRM de ROILab, pensado tanto para humanos como para agentes de IA (Claude Code, Cursor, Windsurf). Envoltura JSON siempre, exit codes numéricos, escrituras idempotentes y login sin pegar API keys en texto plano (flujo de dispositivo tipo OAuth).

Instalación

Agentes (recomendado)

Sin instalación previa, siempre la última versión:

npx -y @roilab/crm-cli@latest <comando>

Humanos

Para dejar crm en el PATH:

npm i -g @roilab/crm-cli
crm --help

Actualiza con:

npm i -g @roilab/crm-cli@latest

El propio CLI comprueba una vez al día si hay una versión nueva en npm y avisa por stderr. Para forzar la comprobación, ejecuta crm doctor.

Primer login (30 segundos)

crm auth login --device-name mi-portatil
# Abre la URL que aparece en el navegador, aprueba.
crm auth whoami
crm doctor

El CLI guarda tokens rotativos en ~/.config/crm/credentials.json (modo 0600). Nunca se escribe una API key en claro en disco por esta vía.

Comandos

crm recall https://example.com/pricing
crm task list --status todo --domain dom_xyz --limit 20
crm task create --title "Arreglar H1 en /pricing" --domain dom_xyz --shadow
crm comment create --task tsk_abc --body "Desplegado en prod" --kind agent_log
crm domain metrics dom_xyz --start 2026-03-01 --end 2026-04-01 --markdown
crm review list --mine

crm --help imprime todos los sustantivos; crm <noun> --help imprime los verbos; la documentación completa vive en la app, pestaña Documentación, que se auto-genera desde el registro de endpoints — siempre refleja la versión servida.

Flags globales

Disponibles en cada comando:

  • --json — envoltura JSON completa (por defecto).
  • --quiet — solo data.
  • --ids-only — un id por línea.
  • --count — un único entero.
  • --markdown — resumen legible (no es JSON).
  • --jq <expr> — jq mini (.a, .a.b, .a[], .a[].b).
  • --shadow — fuerza que la escritura aterrice como propuesta pendiente de revisión humana.
  • --wait-for-approval --timeout 30m — bloquea hasta que un humano decida.
  • --idempotency-key <key> — idempotency key estable (automática en escrituras).

Seguridad

  • Sin scripts preinstall / postinstall / install — nada que se ejecute al instalar el paquete.
  • Auth por flujo de dispositivo: no se comparten secretos entre máquinas; el access token caduca en 1 h y el refresh token rota en cada uso.
  • Archivo de credenciales con permisos 0600, aislado por perfil.
  • Publicación con atestación de procedencia (npm publish --provenance) para que se pueda verificar el origen del tarball.

Licencia

MIT — ver LICENSE.