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.
Primeros pasos
| Comando | Qué hace |
|---|---|
agentmeter setup | Asistente: detecta tus proyectos y agentes, crea agentmeter.config.json, tu llave y tu cuenta. |
agentmeter demo | Crea un proyecto de ejemplo con datos ficticios para ver un informe sin tocar tu trabajo. |
agentmeter doctor | Revisa 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": "Estudio Andino",
"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 Simple", "image": "./qr.png" }
]
},
"agents": { "claude": "~/.claude/projects", "cursor": false },
"clients": [
{
"slug": "acme",
"name": "ACME S.R.L.",
"paths": ["~/proyectos/acme-web"],
"junit": ["~/proyectos/acme-web/reports/junit.xml"],
"billing": { "mode": "fixed", "rate": 4500 }
}
]
}
| Campo | Para qué sirve |
|---|---|
author | Tu nombre o el de tu agencia, como aparece en el informe. |
lang | es o en. Idioma del informe. |
idleMinutes | Minutos sin actividad a partir de los cuales una sesión se corta al calcular el tiempo activo. |
authors | Correos de git, o nombres en minúsculas, cuyos commits cuentan. Vacía: todos los commits del proyecto. |
hide | Secciones que no quieres mostrar: commits, tests, agents, cost, billing. |
clients | Un bloque por cliente: slug, name, las carpetas del proyecto en paths, reportes de pruebas JUnit en junit y, si quieres, su propio billing y hide. |
agents | Dónde buscar cada agente. Un texto o una lista de carpetas reemplaza la ubicación por defecto; false lo desactiva. |
pricing | Precios 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ón | Qué hace |
|---|---|
--client slug | El cliente del informe. Si solo tienes uno, no hace falta. |
--all | Un informe por cada cliente. |
--period | this-month (por defecto), last-month, this-week, last-week, last-7, last-14, last-30 o un mes como 2026-09. |
--from y --to | Fechas exactas, AAAA-MM-DD. |
--open | Abre el informe en tu navegador al terminar. |
--dir carpeta | Dónde guardar el archivo. |
--lang en | Cambia el idioma solo para este informe. |
--no-stamp | Firma 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.
| Agente | Clave en agents | Dónde busca |
|---|---|---|
| Claude Code | claude | ~/.claude/projects |
| Codex | codex | ~/.codex/sessions o $CODEX_HOME/sessions |
| Gemini CLI | gemini | ~/.gemini/tmp |
| Qwen Code | qwen | ~/.qwen/tmp |
| OpenCode | opencode | ~/.local/share/opencode o $OPENCODE_DATA_DIR |
| Copilot CLI | copilot | ~/.copilot/session-state o $COPILOT_HOME |
| Cline, Roo Code, Kilo Code | cline | El almacenamiento de la extensión en VS Code, Cursor, Windsurf, VSCodium y Trae |
| Cursor | cursor | La carpeta de usuario de Cursor |
| Cualquier otro | generic | ~/.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.
| Campo | Valores |
|---|---|
mode | none, fixed (monto fijo), per-delivery (por entrega) u hourly (por hora activa, redondeada a 15 minutos). |
rate | El monto fijo, por entrega o por hora, en tu moneda. |
currency | Código de 3 letras: USD, BOB, EUR… |
usdRate | Cuántas unidades de tu moneda vale 1 USD. Se usa para convertir el costo de IA. |
aiCost | include cobra el costo de IA como una línea más; exclude no lo cobra. |
aiMarkupPercent | Margen sobre el costo de IA, en porcentaje. |
taxPercent, taxLabel | Impuesto y su nombre, por ejemplo 13 e IVA. |
dueDays, notes | Dí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
privacy.hideCommitMessages: oculta los mensajes de commit y deja solo fecha y cambios.privacy.hideAuthors: oculta los nombres de quienes hicieron cada commit.privacy.redact: lista de palabras o expresiones regulares que se reemplazan en todo el 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ó.
| Comando | Qué hace |
|---|---|
agentmeter publish informe.html | Sube el informe y te da el enlace del portal. |
agentmeter shares | Tus 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.
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.
| Comando | Qué hace |
|---|---|
agentmeter register --name "..." --email ... | Crea tu cuenta. setup lo hace por ti. |
agentmeter whoami | Plan, sellos usados este mes y tu enlace de referidos. |
agentmeter key | Muestra tu huella, que es como te reconocen tus clientes. |
agentmeter key protect | Cifra tu llave con una contraseña (scrypt y AES-256-GCM). |
agentmeter key backup --out archivo.json | Exporta una copia cifrada de tu llave. |
agentmeter key import archivo.json | Restaura 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 estudio-andino --public --headline "Desarrollo web con agentes"
agentmeter domain add estudioandino.com
agentmeter domain verify estudioandino.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.
| Comando | Qué hace |
|---|---|
agentmeter team | Miembros, asientos e invitaciones pendientes. |
agentmeter team invite | Crea un código de invitación de un solo uso, válido 7 días. |
agentmeter team join CODIGO | Entra al equipo. |
agentmeter team remove HUELLA, leave | Saca a alguien o sales tú. |
agentmeter org | Abre 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 QR desde Bolivia, escribe a hola@agentmeter.si.
Variables de entorno
| Variable | Para qué sirve |
|---|---|
AGENTMETER_API | Otro servidor de AgentMeter. Solo acepta https (o localhost para pruebas). |
AGENTMETER_PASSPHRASE | La contraseña de tu llave, para usarla en scripts sin que te la pida. |
AGENTMETER_NEW_PASSPHRASE | La contraseña nueva al proteger o respaldar la llave en scripts. |
AGENTMETER_HOME | Carpeta base para el formato genérico (por defecto ~/.agentmeter). |
NO_COLOR, FORCE_COLOR | Apagan 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
- Informes firmados con Ed25519 sobre el SHA-256 del JSON canónico.
- Llave privada guardada solo en tu computadora, opcionalmente cifrada.
- El CLI fija la llave pública del servidor en tu primer registro y avisa si cambia.
- El CLI solo habla con el servidor por https.
- Los informes publicados se muestran aislados (sandbox), sin scripts.
Si encuentras una vulnerabilidad, escríbenos a seguridad@agentmeter.si antes de publicarla. Respondemos en menos de 72 horas y te damos crédito si quieres.