Documentación

Todo lo que hace AgentMeter, comando por comando. Si es tu primera vez, con agentmeter setup alcanza; vuelve aquí cuando quieras ajustar algo.

Instalar

Necesitas Node.js 18 o más reciente y git. Para leer Cursor u OpenCode hace falta Node 22.13 o más reciente, porque guardan sus sesiones en SQLite.

npm install -g https://agentmeter.si/cli/agentmeter.tgz

Para actualizar, corre el mismo comando. Para comprobar la versión: agentmeter help.

La terminal habla español o inglés y sigue el idioma de tu sistema. Para elegir uno, corre agentmeter lang es o agentmeter lang en. Eso solo cambia la terminal: cada informe tiene su propio idioma (mira Configuración).

Primeros pasos

ComandoQué hace
agentmeter setupAsistente: detecta tus proyectos y agentes, crea agentmeter.config.json, tu llave y tu cuenta.
agentmeter demoCrea un proyecto de ejemplo con datos ficticios para ver un informe sin tocar tu trabajo.
agentmeter doctorRevisa Node, git, la configuración, la llave, los agentes encontrados y la conexión con el servidor.

Si te invitaron, usa el comando con tu código: agentmeter setup --ref CODIGO. Tienes 30 días de Pro en vez de 14.

Configuración

AgentMeter lee agentmeter.config.json en la carpeta donde lo corres, o el archivo que indiques con --config. Un ejemplo completo:

{
  "author": "Cecilia Studio",
  "lang": "es",
  "idleMinutes": 15,
  "brand": {
    "color": "#5b45ff",
    "logo": "./logo.svg"
  },
  "privacy": {
    "hideCommitMessages": false,
    "hideAuthors": false,
    "redact": ["proyecto-secreto"]
  },
  "billing": {
    "currency": "BOB",
    "usdRate": 6.96,
    "mode": "none",
    "aiCost": "include",
    "aiMarkupPercent": 15,
    "taxPercent": 0,
    "dueDays": 15
  },
  "payment": {
    "methods": [
      { "type": "link", "label": "Tarjeta", "url": "https://pagos.ejemplo.com/acme" },
      { "type": "bank", "label": "Transferencia", "details": "Banco Unión · 1-234567" },
      { "type": "qr", "label": "QR", "image": "./qr.png" }
    ]
  },
  "agents": { "claude": "~/.claude/projects", "cursor": false },
  "clients": [
    {
      "slug": "acme",
      "name": "ACME Inc.",
      "paths": ["~/proyectos/acme-web"],
      "junit": ["~/proyectos/acme-web/reports/junit.xml"],
      "billing": { "mode": "fixed", "rate": 4500 }
    },
    {
      "slug": "brightside",
      "name": "Brightside Labs Inc.",
      "lang": "en",
      "paths": ["~/proyectos/brightside-app"],
      "billing": { "currency": "USD", "mode": "hourly", "rate": 45 }
    }
  ]
}
CampoPara qué sirve
authorTu nombre o el de tu agencia, como aparece en el informe.
langes o en. Idioma de los informes. Cada cliente puede tener el suyo, por ejemplo inglés para un cliente de Estados Unidos.
idleMinutesMinutos sin actividad a partir de los cuales una sesión se corta al calcular el tiempo activo.
authorsCorreos de git, o nombres en minúsculas, cuyos commits cuentan. Vacía: todos los commits del proyecto.
hideSecciones que no quieres mostrar: commits, tests, agents, cost, billing.
clientsUn bloque por cliente: slug, name, las carpetas del proyecto en paths, reportes de pruebas JUnit en junit y, si quieres, su propio lang, emails (a quién avisar al publicar), billing y hide.
agentsDónde buscar cada agente. Un texto o una lista de carpetas reemplaza la ubicación por defecto; false lo desactiva.
pricingPrecios propios por modelo, en USD por millón de tokens, para un modelo que AgentMeter no conoce. Ejemplo: {"mi-modelo": {"input": 1, "output": 4, "cacheRead": 0.1}}.

Informes

agentmeter report --client acme --period last-month --open
OpciónQué hace
--client slugEl cliente del informe. Si solo tienes uno, no hace falta.
--allUn informe por cada cliente.
--periodthis-month (por defecto), last-month, this-week, last-week, last-7, last-14, last-30 o un mes como 2026-09.
--from y --toFechas exactas, AAAA-MM-DD.
--openAbre el informe en tu navegador al terminar.
--dir carpetaDónde guardar el archivo.
--lang enCambia el idioma solo para este informe. El portal del cliente se muestra en el idioma del informe.
--no-stampFirma el informe pero no lo sella. No consume sellos de tu plan.

El informe es un único archivo .html que funciona sin internet. Lleva dentro los datos, tu firma y, si lo sellaste, el sello del servidor. Puedes enviarlo por correo o WhatsApp como cualquier archivo.

Agentes compatibles

AgentMeter lee los registros que cada agente ya guarda en tu computadora. No instala nada en ellos ni intercepta tu tráfico.

AgenteClave en agentsDónde busca
Claude Codeclaude~/.claude/projects
Codexcodex~/.codex/sessions o $CODEX_HOME/sessions
Gemini CLIgemini~/.gemini/tmp
Qwen Codeqwen~/.qwen/tmp
OpenCodeopencode~/.local/share/opencode o $OPENCODE_DATA_DIR
Copilot CLIcopilot~/.copilot/session-state o $COPILOT_HOME
Cline, Roo Code, Kilo CodeclineEl almacenamiento de la extensión en VS Code, Cursor, Windsurf, VSCodium y Trae
CursorcursorLa carpeta de usuario de Cursor
Cualquier otrogeneric~/.agentmeter/logs, ver formato genérico

El costo de IA se calcula con los precios públicos de cada modelo (Claude, GPT, Gemini, GLM y otros). Si el agente informa su propio costo y el modelo no está en la tabla, se usa ese valor. Es una estimación de referencia, no la factura de tu proveedor.

Cobro y marca

El bloque billing agrega al informe una sección de cobro con total, impuestos y fecha de vencimiento.

CampoValores
modenone, fixed (monto fijo), per-delivery (por entrega) u hourly (por hora activa, redondeada a 15 minutos).
rateEl monto fijo, por entrega o por hora, en tu moneda.
currencyCódigo de 3 letras: USD, BOB, EUR…
usdRateCuántas unidades de tu moneda vale 1 USD. Se usa para convertir el costo de IA.
aiCostinclude cobra el costo de IA como una línea más; exclude no lo cobra.
aiMarkupPercentMargen sobre el costo de IA, en porcentaje.
taxPercent, taxLabelImpuesto y su nombre, por ejemplo 13 e IVA.
dueDays, notesDías para pagar y una nota libre.

En payment.methods pones cómo te pagan: link (solo enlaces https), bank (texto con tus datos) o qr (una imagen PNG, JPG o WebP). Van firmados dentro del informe: si alguien cambia tu cuenta por la suya, la verificación falla.

En brand defines tu color (#RRGGBB) y tu logo (PNG, JPG, WebP o SVG de hasta 150 KB; los SVG con scripts se rechazan). Se usan en el informe y, en planes pagos, en el portal.

Privacidad del informe

Además, antes de firmar, AgentMeter borra automáticamente lo que parezca un secreto: llaves de Anthropic, OpenAI, GitHub, AWS, Stripe y Slack, tokens JWT, llaves privadas, URLs con contraseña y asignaciones como password=. El resumen del comando te dice cuántos encontró.

Verificar un informe

Cualquiera puede comprobar un informe, sin cuenta: arrastrándolo en agentmeter.si o con el CLI.

agentmeter verify informe.html --key 7FB9-4803-4C89-8F42 --online

La verificación vuelve a generar el informe desde sus datos y lo compara byte por byte con lo que se ve, revisa la firma del emisor y, si tiene sello, la firma del servidor. --key exige que la huella del emisor sea la que esperas. --online confirma además que el sello figura en el registro público.

Sellos y registro público

La firma prueba quién hizo el informe. El sello prueba cuándo existía. Al sellar, el CLI envía solo la huella SHA-256 del informe y tu firma; el servidor la anota en un registro encadenado, donde cada entrada incluye la huella de la anterior, y lo firma con su llave. Nadie, ni siquiera AgentMeter, puede insertar o borrar entradas viejas sin romper la cadena.

agentmeter audit

Descarga el registro completo y comprueba cada eslabón y cada firma.

Portal del cliente

Con un plan pago puedes publicar un informe sellado en un enlace privado. Tu cliente lo abre, lo revisa, lo aprueba o pide cambios, y avisa cuando te pagó.

ComandoQué hace
agentmeter publish informe.html --to [email protected]Sube el informe, te da el enlace del portal y le manda un aviso por correo a tu cliente (hasta 5 correos separados por coma). Si el cliente tiene emails en tu configuración, no hace falta --to.
agentmeter sharesTus portales, visitas, aprobaciones y avisos de pago.
agentmeter paid <portal>Confirma que recibiste el pago. Opcional: --method y --reference.
agentmeter shares delete <portal>Borra el portal y el informe del servidor. El sello sigue en el registro público.

Al publicar sí subes el informe (no tu código) para que el cliente lo vea. Quien tenga el enlace puede abrirlo; compártelo solo con tu cliente.

Cómo funciona el pago

  1. Pones tus medios de pago en payment.methods (enlace, cuenta o QR). Van dentro del informe y quedan firmados.
  2. Tu cliente te paga directo con esos medios. AgentMeter no recibe ni retiene ese dinero y no cobra comisión.
  3. En el portal, tu cliente pulsa Ya pagué y deja la referencia. Te llega como aviso en agentmeter shares.
  4. Cuando ves el dinero en tu cuenta, corres agentmeter paid <portal>. El portal y el panel de tu cliente lo muestran como pagado, y suma a tu perfil público.

Panel del cliente

Tus clientes entran a agentmeter.si/cliente con un código que llega a su correo y ven todas las entregas que recibieron de todos sus proveedores: qué falta aprobar, qué falta pagar y quién tiene dominio verificado. Una entrega aparece en su panel cuando la publicas con su correo, o cuando la aprueba o informa un pago desde el portal.

Cuenta y llave

Tu cuenta es una llave Ed25519 que se crea en tu computadora. No hay contraseña de usuario en el servidor: te identificas firmando con tu llave.

ComandoQué hace
agentmeter register --name "..." --email ...Crea tu cuenta. setup lo hace por ti.
agentmeter whoamiPlan, sellos usados este mes y tu enlace de referidos.
agentmeter email verify CÓDIGOConfirma tu correo con el código de 6 dígitos que te enviamos. Hasta confirmarlo no puedes sellar ni publicar. agentmeter email resend manda uno nuevo.
agentmeter keyMuestra tu huella, que es como te reconocen tus clientes.
agentmeter key protectCifra tu llave con una contraseña (scrypt y AES-256-GCM).
agentmeter key backup --out archivo.jsonExporta una copia cifrada de tu llave.
agentmeter key import archivo.jsonRestaura la llave en otra computadora.

Haz un respaldo. Si pierdes tu llave sin respaldo, nadie puede recuperarla, tampoco AgentMeter. Puedes crear una cuenta nueva, pero tendrá otra huella.

Perfil y dominio

agentmeter profile --handle cecilia-studio --public --headline "Desarrollo web con agentes"
agentmeter domain add ceciliastudio.com
agentmeter domain verify ceciliastudio.com

El perfil público muestra cuántas entregas selladas, aprobadas y pagadas tienes, en agentmeter.si/p/tu-nombre, con una insignia para tu web. El dominio se verifica con un registro TXT en _agentmeter.tudominio.com. Después tu perfil y tu portal muestran tu dominio verificado junto a tu huella.

Equipos y panel

Con el plan Agencia (hasta 5 personas) o Empresa, el dueño invita al equipo y todos comparten plan y dominio.

ComandoQué hace
agentmeter teamMiembros, asientos e invitaciones pendientes.
agentmeter team inviteCrea un código de invitación de un solo uso, válido 7 días.
agentmeter team join CODIGOEntra al equipo.
agentmeter team remove HUELLA, leaveSaca a alguien o sales tú.
agentmeter orgAbre el panel del equipo: entregas, costo de IA y retorno por persona, proyecto, agente y modelo, con exportación CSV.

Al panel solo llegan cifras resumidas de cada informe sellado: proyecto, periodo, commits, líneas, pruebas, minutos, sesiones, costo y modelos. Nunca código ni mensajes.

Planes y pagos

agentmeter upgrade --plan pro --open

Planes: pro, founder y agency. Se abre el pago seguro de Polar; el plan se activa en segundos. Polar actúa como vendedor registrado: emite el recibo y cobra los impuestos que correspondan. Para el plan Empresa, o para pagar por transferencia, escribe a [email protected].

Variables de entorno

VariablePara qué sirve
AGENTMETER_APIOtro servidor de AgentMeter. Solo acepta https (o localhost para pruebas).
AGENTMETER_PASSPHRASELa contraseña de tu llave, para usarla en scripts sin que te la pida.
AGENTMETER_NEW_PASSPHRASELa contraseña nueva al proteger o respaldar la llave en scripts.
AGENTMETER_HOMECarpeta base para el formato genérico (por defecto ~/.agentmeter).
AGENTMETER_LANGIdioma de la terminal, es o en. Tiene prioridad sobre agentmeter lang.
NO_COLOR, FORCE_COLORApagan o fuerzan los colores en la terminal.

Formato genérico de registro

Si usas un agente que AgentMeter todavía no lee, escribe sus eventos en archivos .jsonl dentro de ~/.agentmeter/logs, una línea JSON por evento:

{"ts": "2026-10-10T14:02:11Z", "agent": "mi-agente", "session": "s1", "cwd": "/home/ana/proyectos/acme", "type": "prompt"}

{"ts": "2026-10-10T14:02:30Z", "agent": "mi-agente", "session": "s1", "type": "request", "model": "glm-5", "input": 12000, "cachedInput": 8000, "output": 900}

{"ts": "2026-10-10T14:03:05Z", "agent": "mi-agente", "session": "s1", "type": "tool", "name": "edit", "file": "src/app.js"}

Campos obligatorios: ts y session. Tipos: prompt, request (con tokens) y tool (con archivo, para atribuir commits al agente). cwd relaciona la sesión con el proyecto del cliente.

Seguridad

Si encuentras una vulnerabilidad, escríbenos a [email protected] antes de publicarla. Respondemos en menos de 72 horas y te damos crédito si quieres.