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

@ichri77/xtokencounter

v1.0.0

Published

Librería TypeScript/Node.js universal para contar tokens, calcular costos base y establecer precios de venta con márgenes para OpenAI, Anthropic, DeepSeek y Google Gemini

Readme

🪙 xTokenCounter

Librería universal en TypeScript / Node.js para contar tokens, calcular costos oficiales en tiempo real de OpenAI (ChatGPT), Anthropic (Claude), DeepSeek y Google Gemini, y aplicar márgenes de ganancia personalizables para cobrar a tus clientes finales.


📦 Instalación

npm install xtokencounter

o si estás en desarrollo local dentro de tu monorepo/proyectos:

npm link

🌐 1. Sincronización de Precios en Tiempo Real (Remote Sync)

Si mañana DeepSeek, OpenAI, Claude o Google cambian sus precios, tu aplicación los actualizará automáticamente en tiempo real sin necesidad de modificar código ni re-desplegar tu servidor.

import { syncLLMPricing, calculateCost } from 'xtokencounter';

// Al iniciar tu servidor (Express, NestJS, Next.js, Fastify):
await syncLLMPricing(); // Sincroniza el catálogo más reciente con caché automática de 24h

// Todos los cálculos posteriores usarán los precios del mercado actualizados:
const cost = calculateCost('deepseek-v3', { inputTokens: 10000, outputTokens: 2000 }, { percentageMargin: 25 });

🛡️ Mecanismo Fail-Safe (Resiliencia ante Fallos de Red)

Si el servidor remoto o la red no responden, la librería mantiene las últimas tarifas registradas en memoria o sus valores de respaldo locales sin lanzar excepciones ni detener la ejecución de tu aplicación.

🏢 Usar tu propio Endpoint de Precios (Enterprise / Privado)

Puedes apuntar la sincronización a tu propio servidor o API interna:

await syncLLMPricing('https://api.tuempresa.com/v1/llm-pricing.json');

⚙️ 2. Modificación Manual de Precios al Instante

Si deseas cambiar o probar una tarifa personalizada para un modelo en tiempo de ejecución:

import { globalPricingRegistry, calculateCost } from 'xtokencounter';

// Actualizar manualmente el precio de DeepSeek V3 en 1 línea:
globalPricingRegistry.setPricing({
  model: 'deepseek-v3',
  provider: 'deepseek',
  inputPricePerM: 0.10,       // $0.10 USD por millón de tokens de entrada
  outputPricePerM: 0.20,      // $0.20 USD por millón de tokens de salida
  cachedInputPricePerM: 0.01, // $0.01 USD por millón de tokens en caché
});

// A partir de esta línea, calculateCost usará la nueva tarifa:
const result = calculateCost('deepseek-v3', { inputTokens: 5000, outputTokens: 1000 });

⚡ 3. Inicio Rápido y Uso General

Cálculo de Costo y Facturación por Modelo

import { calculateCost } from 'xtokencounter';

// OpenAI GPT-4o (+20% ganancia)
const openaiCost = calculateCost('gpt-4o', { inputTokens: 1000, outputTokens: 400 }, { percentageMargin: 20 });

// Anthropic Claude 3.5 Sonnet (+25% ganancia)
const claudeCost = calculateCost('claude-3-5-sonnet', { inputTokens: 2000, outputTokens: 800 }, { percentageMargin: 25 });

// DeepSeek R1 (+30% ganancia)
const deepseekCost = calculateCost('deepseek-r1', { inputTokens: 5000, outputTokens: 1500 }, { percentageMargin: 30 });

// Google Gemini 2.0 Flash (+20% ganancia)
const geminiCost = calculateCost('gemini-2.0-flash', { inputTokens: 3000, outputTokens: 600 }, { percentageMargin: 20 });

console.log(`Costo real OpenAI: $${openaiCost.totalBaseCostUSD} USD | Cobro al cliente: $${openaiCost.clientPriceUSD} USD`);
console.log(`Costo real Claude: $${claudeCost.totalBaseCostUSD} USD | Cobro al cliente: $${claudeCost.clientPriceUSD} USD`);
console.log(`Costo real DeepSeek: $${deepseekCost.totalBaseCostUSD} USD | Cobro al cliente: $${deepseekCost.clientPriceUSD} USD`);

📥 4. Extracción Automática desde SDKs Oficiales

Soporta las estructuras de respuesta oficiales de los SDKs / REST APIs de OpenAI, Anthropic, DeepSeek y Gemini:

import { extractUsageFromResponse, calculateCost } from 'xtokencounter';

// Ejemplo con respuesta de OpenAI (gpt-4o / o1 / o3-mini)
const openaiResponse = await openai.chat.completions.create({ model: 'gpt-4o', messages });
const openaiUsage = extractUsageFromResponse(openaiResponse);

// Ejemplo con respuesta de Anthropic Claude
const claudeResponse = await anthropic.messages.create({ model: 'claude-3-5-sonnet-20241022', messages });
const claudeUsage = extractUsageFromResponse(claudeResponse);

// Calcular cobro final al cliente
const billing = calculateCost('gpt-4o', openaiUsage, { percentageMargin: 25 });
console.log(`Precio final al cliente: $${billing.clientPriceUSD.toFixed(6)} USD`);

📈 5. Rastreador Analítico Multi-Proveedor (TokenTracker)

Agrupa el consumo acumulado de todos tus proveedores de IA por cliente, usuario o sesión:

import { TokenTracker } from 'xtokencounter';

const tracker = new TokenTracker({ percentageMargin: 20 });

// Registrar consumo de peticiones
tracker.trackUsage('gpt-4o', { inputTokens: 4000, outputTokens: 1200 }, { metadata: { userId: 'user_1' } });
tracker.trackUsage('claude-3-5-sonnet', { inputTokens: 6000, outputTokens: 1500 }, { metadata: { userId: 'user_2' } });
tracker.trackUsage('deepseek-r1', { inputTokens: 10000, outputTokens: 3000 }, { metadata: { userId: 'user_3' } });
tracker.trackUsage('gemini-2.0-flash', { inputTokens: 8000, outputTokens: 2000 }, { metadata: { userId: 'user_1' } });

// Generar informe analítico agrupado por proveedor y por modelo
const summary = tracker.getSummary();

console.log(`Peticiones Totales: ${summary.totalRequests}`);
console.log(`Costo Base Total (Proveedores): $${summary.totalBaseCostUSD.toFixed(4)} USD`);
console.log(`Total a Facturar a Clientes: $${summary.totalClientPriceUSD.toFixed(4)} USD`);
console.log(`Ganancia Neta: $${summary.totalProfitUSD.toFixed(4)} USD`);

console.log('📌 Agrupado por proveedor:', summary.byProvider);
console.log('📌 Agrupado por modelo:', summary.byModel);

🤖 Catálogo de Modelos e Integración

| Proveedor | Modelo | Entrada / 1M Tokens | Salida / 1M Tokens | Caché / 1M | | :--- | :--- | :--- | :--- | :--- | | OpenAI | gpt-4o | $2.50 USD | $10.00 USD | $1.25 USD | | OpenAI | gpt-4o-mini | $0.15 USD | $0.60 USD | $0.075 USD | | OpenAI | o1 | $15.00 USD | $60.00 USD | $7.50 USD | | OpenAI | o3-mini / o1-mini | $1.10 USD | $4.40 USD | $0.55 USD | | Anthropic | claude-3-5-sonnet | $3.00 USD | $15.00 USD | $0.30 USD | | Anthropic | claude-3-5-haiku | $1.00 USD | $5.00 USD | $0.10 USD | | Anthropic | claude-3-opus | $15.00 USD | $75.00 USD | $1.50 USD | | DeepSeek | deepseek-v3 / chat | $0.14 USD | $0.28 USD | $0.014 USD | | DeepSeek | deepseek-r1 / reasoner| $0.55 USD | $2.19 USD | $0.14 USD | | Google | gemini-2.0-flash | $0.10 USD | $0.40 USD | $0.025 USD | | Google | gemini-1.5-pro | $1.25 USD ($2.50 >128k) | $5.00 USD ($10.00 >128k) | $0.3125 USD |


⚙️ Opciones de Facturación y Ganancias (MarkupConfig)

  • percentageMargin: Porcentaje de recargo extra sobre el costo base (ej: 25 para +25%).
  • fixedFeePerRequestUSD: Fee fijo adicional en USD por cada llamada a la API (ej: $0.002).
  • feePer1kTokensUSD: Tarifa fija adicional por cada 1,000 tokens procesados.
  • costMultiplier: Multiplicador directo sobre el costo base (ej: 1.5 equivale a 150% del costo base).
  • currency: Moneda del informe (USD por defecto).

📄 Licencia

MIT © xFORCE DEV TEAM