/usage
Token usage tracking, cost estimation, and usage analytics
$ npx -y skills add alsk1992/CloddsBot --skill usage --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition โ
- You can call itInvoke it directly when you want it.
- Slash command
/usage
Context preview
The summary Claude sees to decide when to auto-load this skill.
Token usage tracking, cost estimation, and usage analytics
SKILL.md
usage.SKILL.mdname: usage
description: "Token usage tracking, cost estimation, and usage analytics"
emoji: "๐"
Usage - Complete API Reference
Track token usage, estimate costs, and analyze AI consumption across sessions and users.
---
Chat Commands
View Usage
/usage Current session usage
/usage today Today's total usage
/usage week This week's usage
/usage month This month's usage
Detailed Breakdown
/usage breakdown [today] Cost breakdown by model
/usage by-model Usage by AI model (alias)
/usage by-user Usage by user
/usage history [days] Historical usage (default 7 days)
/usage estimate <model> <in> <out> Estimate cost for tokens
/usage user <id> [today] User-specific usage
Management
/usage reset Clear all usage data
---
TypeScript API Reference
Create Usage Service
import { createUsageService } from 'clodds/usage';
const usage = createUsageService({
// Storage
storage: 'sqlite', // 'sqlite' | 'postgres' | 'memory'
dbPath: './usage.db',
// Pricing (per 1M tokens)
pricing: {
'claude-3-opus': { input: 15.00, output: 75.00 },
'claude-3-sonnet': { input: 3.00, output: 15.00 },
'claude-3-haiku': { input: 0.25, output: 1.25 },
'gpt-4': { input: 30.00, output: 60.00 },
'gpt-4o': { input: 5.00, output: 15.00 },
},
// Footer mode
footerMode: 'tokens', // 'off' | 'tokens' | 'full'
});Record Usage
// Record a request
await usage.record({
userId: 'user-123',
sessionId: 'session-456',
model: 'claude-3-sonnet',
inputTokens: 1500,
outputTokens: 800,
durationMs: 2300,
cached: false,
});Get Session Usage
const session = await usage.getSessionUsage('session-456');
console.log(`Session: ${session.sessionId}`);
console.log(`Requests: ${session.requests}`);
console.log(`Input tokens: ${session.inputTokens.toLocaleString()}`);
console.log(`Output tokens: ${session.outputTokens.toLocaleString()}`);
console.log(`Total tokens: ${session.totalTokens.toLocaleString()}`);
console.log(`Est. cost: $${session.estimatedCost.toFixed(4)}`);
console.log(`Duration: ${session.totalDurationMs}ms`);Get User Usage
const user = await usage.getUserUsage('user-123', {
period: 'month', // 'day' | 'week' | 'month' | 'all'
});
console.log(`User: ${user.userId}`);
console.log(`Sessions: ${user.sessions}`);
console.log(`Total tokens: ${user.totalTokens.toLocaleString()}`);
console.log(`Est. cost: $${user.estimatedCost.toFixed(2)}`);Get Total Usage
const total = await usage.getTotalUsage({
from: '2024-01-01',
to: '2024-01-31',
});
console.log(`Total requests: ${total.requests}`);
console.log(`Total tokens: ${total.totalTokens.toLocaleString()}`);
console.log(`Total cost: $${total.estimatedCost.toFixed(2)}`);Usage by Model
const byModel = await usage.getUsageByModel({
period: 'month',
});
for (const [model, stats] of Object.entries(byModel)) {
console.log(`${model}:`);
console.log(` Requests: ${stats.requests}`);
console.log(` Tokens: ${stats.totalTokens.toLocaleString()}`);
console.log(` Cost: $${stats.cost.toFixed(2)}`);
}Format Footer
// Get formatted usage footer for messages
const footer = usage.formatFooter({
inputTokens: 1500,
outputTokens: 800,
model: 'claude-3-sonnet',
});
// Output: "Tokens: 1.5k in / 800 out | Cost: ~$0.02"Format Summary
// Get formatted summary
const summary = await usage.formatSummary({
userId: 'user-123',
period: 'today',
});
console.log(summary);
// "Today: 15 requests | 45k tokens | ~$0.85"Estimate Cost
// Estimate cost for a request
const cost = usage.estimateCost({
model: 'claude-3-opus',
inputTokens: 5000,
outputTokens: 2000,
});
console.log(`Estimated cost: $${cost.toFixed(4)}`);---
Model Pricing (per 1M tokens)
| Model | Input | Output | |-------|-------|--------| | **claude-3-opus** | $15.00 | $75.00 | | **claude-3-sonnet** | $3.00 | $15.00 | | **claude-3-haiku** | $0.25 | $1.25 | | **gpt-4** | $30.00 | $60.00 | | **gpt-4o** | $5.00 | $15.00 | | **gpt-4o-mini** | $0.15 | $0.60 |
---
Footer Modes
| Mode | Output | |------|--------| | `off` | No usage shown | | `tokens` | `Tokens: 1.5k in / 800 out` | | `full` | `Tokens: 1.5k in / 800 out | Cost: ~$0.02` |
---
Budget Alerts
// Set monthly budget
usage.setBudget({
userId: 'user-123',
monthly: 50.00, // $50/month
alertAt: [0.5, 0.8, 0.95], // Alert at 50%, 80%, 95%
});
// Check budget status
const budget = await usage.checkBudget('user-123');
console.log(`Budget: $${budget.limit}`);
console.log(`Used: $${budget.used.toFixed(2)} (${budget.percent}%)`);
console.log(`Remaining: $${budget.remaining.toFixed(2)}`);---
Best Practices
1. **Monitor regularly** โ Check usage weekly 2. **Set budgets** โ Prevent unexpected costs 3. **Use appropriate models** โ Haiku for simple tasks 4. **Cache when possible** โ Reduce duplicate queries 5. **Review by user** โ Identify heavy users
Read more
name: usage description: "Token usage tracking, cost estimation, and usage analytics" emoji: "๐"
Usage - Complete API Reference
Track token usage, estimate costs, and analyze AI consumption across sessions and users.
---
Chat Commands
View Usage
/usage Current session usage /usage today Today's total usage /usage week This week's usage /usage month This month's usage
Detailed Breakdown
/usage breakdown [today] Cost breakdown by model /usage by-model Usage by AI model (alias) /usage by-user Usage by user /usage history [days] Historical usage (default 7 days) /usage estimate <model> <in> <out> Estimate cost for tokens /usage user <id> [today] User-specific usage
Management
/usage reset Clear all usage data
---
TypeScript API Reference
Create Usage Service
import { createUsageService } from 'clodds/usage';
const usage = createUsageService({
// Storage
storage: 'sqlite', // 'sqlite' | 'postgres' | 'memory'
dbPath: './usage.db',
// Pricing (per 1M tokens)
pricing: {
'claude-3-opus': { input: 15.00, output: 75.00 },
'claude-3-sonnet': { input: 3.00, output: 15.00 },
'claude-3-haiku': { input: 0.25, output: 1.25 },
'gpt-4': { input: 30.00, output: 60.00 },
'gpt-4o': { input: 5.00, output: 15.00 },
},
// Footer mode
footerMode: 'tokens', // 'off' | 'tokens' | 'full'
});Record Usage
// Record a request
await usage.record({
userId: 'user-123',
sessionId: 'session-456',
model: 'claude-3-sonnet',
inputTokens: 1500,
outputTokens: 800,
durationMs: 2300,
cached: false,
});Get Session Usage
const session = await usage.getSessionUsage('session-456');
console.log(`Session: ${session.sessionId}`);
console.log(`Requests: ${session.requests}`);
console.log(`Input tokens: ${session.inputTokens.toLocaleString()}`);
console.log(`Output tokens: ${session.outputTokens.toLocaleString()}`);
console.log(`Total tokens: ${session.totalTokens.toLocaleString()}`);
console.log(`Est. cost: $${session.estimatedCost.toFixed(4)}`);
console.log(`Duration: ${session.totalDurationMs}ms`);Get User Usage
const user = await usage.getUserUsage('user-123', {
period: 'month', // 'day' | 'week' | 'month' | 'all'
});
console.log(`User: ${user.userId}`);
console.log(`Sessions: ${user.sessions}`);
console.log(`Total tokens: ${user.totalTokens.toLocaleString()}`);
console.log(`Est. cost: $${user.estimatedCost.toFixed(2)}`);Get Total Usage
const total = await usage.getTotalUsage({
from: '2024-01-01',
to: '2024-01-31',
});
console.log(`Total requests: ${total.requests}`);
console.log(`Total tokens: ${total.totalTokens.toLocaleString()}`);
console.log(`Total cost: $${total.estimatedCost.toFixed(2)}`);Usage by Model
const byModel = await usage.getUsageByModel({
period: 'month',
});
for (const [model, stats] of Object.entries(byModel)) {
console.log(`${model}:`);
console.log(` Requests: ${stats.requests}`);
console.log(` Tokens: ${stats.totalTokens.toLocaleString()}`);
console.log(` Cost: $${stats.cost.toFixed(2)}`);
}Format Footer
// Get formatted usage footer for messages
const footer = usage.formatFooter({
inputTokens: 1500,
outputTokens: 800,
model: 'claude-3-sonnet',
});
// Output: "Tokens: 1.5k in / 800 out | Cost: ~$0.02"Format Summary
// Get formatted summary
const summary = await usage.formatSummary({
userId: 'user-123',
period: 'today',
});
console.log(summary);
// "Today: 15 requests | 45k tokens | ~$0.85"Estimate Cost
// Estimate cost for a request
const cost = usage.estimateCost({
model: 'claude-3-opus',
inputTokens: 5000,
outputTokens: 2000,
});
console.log(`Estimated cost: $${cost.toFixed(4)}`);---
Model Pricing (per 1M tokens)
| Model | Input | Output | |-------|-------|--------| | **claude-3-opus** | $15.00 | $75.00 | | **claude-3-sonnet** | $3.00 | $15.00 | | **claude-3-haiku** | $0.25 | $1.25 | | **gpt-4** | $30.00 | $60.00 | | **gpt-4o** | $5.00 | $15.00 | | **gpt-4o-mini** | $0.15 | $0.60 |
---
Footer Modes
| Mode | Output | |------|--------| | `off` | No usage shown | | `tokens` | `Tokens: 1.5k in / 800 out` | | `full` | `Tokens: 1.5k in / 800 out | Cost: ~$0.02` |
---
Budget Alerts
// Set monthly budget
usage.setBudget({
userId: 'user-123',
monthly: 50.00, // $50/month
alertAt: [0.5, 0.8, 0.95], // Alert at 50%, 80%, 95%
});
// Check budget status
const budget = await usage.checkBudget('user-123');
console.log(`Budget: $${budget.limit}`);
console.log(`Used: $${budget.used.toFixed(2)} (${budget.percent}%)`);
console.log(`Remaining: $${budget.remaining.toFixed(2)}`);---
Best Practices
1. **Monitor regularly** โ Check usage weekly 2. **Set budgets** โ Prevent unexpected costs 3. **Use appropriate models** โ Haiku for simple tasks 4. **Cache when possible** โ Reduce duplicate queries 5. **Review by user** โ Identify heavy users
Open Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.
Repo: alsk1992/CloddsBot
Other skills on cloddsbot.
- /acp
Enable agent-to-agent commerce with on-chain escrow, cryptographic agreements, and service discovery.
Open skill - /agentbets
AgentBets - AI-native prediction markets on Solana
Open skill - /ai-strategy
AI Strategy - natural language to trades
Open skill - /alerts
Create and manage price alerts for prediction markets
Open skill - /analytics
Performance attribution, trade analytics, and strategy optimization
Open skill - /arbitrage
Automated cross-platform arbitrage detection and monitoring
Open skill

