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
| Comando | Qué hace |
|---|---|
agentmeter setup | Asistente corto: si lo corres dentro de un proyecto configura ese; te pide tu nombre, tu tarifa (por ejemplo 50 USD por hora) y dónde te pagan, y crea tu llave y tu cuenta. Con --full también pregunta logo, color, idioma, impuestos y plazo de pago. |
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 setup guarda tu configuración en ~/.agentmeter/agentmeter.config.json, así que puedes correr AgentMeter desde cualquier carpeta; los informes se guardan en ~/Informes AgentMeter. Si una carpeta tiene su propio agentmeter.config.json, ese tiene prioridad, y con --config eliges otro archivo. 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 }
}
]
}
| Campo | Para qué sirve |
|---|---|
author | Tu nombre o el de tu agencia, como aparece en el informe. |
lang | es o en. Idioma de los informes. Cada cliente puede tener el suyo, por ejemplo inglés para un cliente de Estados Unidos. |
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 lang, emails (a quién avisar al publicar), 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. El portal del cliente se muestra en el idioma del 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. |
La forma fácil es desde la terminal: agentmeter billing cambia tu tarifa, moneda y plazo de pago (por defecto todo va en dólares), y agentmeter payment agrega o quita medios de pago: eliges cuenta bancaria, PayPal u otro enlace, o QR, y te pregunta solo lo de ese medio. Lo que configures también se ve en tu cuenta web, en agentmeter.si/es/account, pero solo se cambia desde la terminal: así nadie que entre a tu correo puede cambiar a dónde te pagan.
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 --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 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.
Cómo funciona el pago
- Pones tus medios de pago en
payment.methods(enlace, cuenta o QR). Van dentro del informe y quedan firmados. - Tu cliente te paga directo con esos medios. AgentMeter no recibe ni retiene ese dinero y no cobra comisión.
- En el portal, tu cliente pulsa Ya pagué y deja la referencia. Te llega como aviso en
agentmeter shares. - 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/es/client 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 también tiene una versión web en agentmeter.si/es/account: entras con un código que llega a tu correo, sin contraseñas, o con agentmeter panel. La sesión dura 12 horas. Los informes se siguen generando y firmando desde la terminal, porque la llave vive en tu computadora.
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 panel | Abre tu cuenta en el navegador con un enlace de un solo uso que vence en 10 minutos. Ahí ves tus portales, confirmas pagos, revisas tu plan y lo mejoras. |
agentmeter email verify CÓDIGO | Confirma 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 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 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.
| 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 transferencia, escribe a [email protected].
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). |
AGENTMETER_LANG | Idioma de la terminal, es o en. Tiene prioridad sobre agentmeter lang. |
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 [email protected] antes de publicarla. Respondemos en menos de 72 horas y te damos crédito si quieres.