MCPcopy
hub / github.com/phuryn/claude-usage / cmd_stats

Function cmd_stats

cli.py:261–387  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

259
260
261def cmd_stats():
262 conn = require_db()
263 conn.row_factory = sqlite3.Row
264
265 # Session-level info (count, date range)
266 session_info = conn.execute("""
267 SELECT
268 COUNT(*) as sessions,
269 MIN(first_timestamp) as first,
270 MAX(last_timestamp) as last
271 FROM sessions
272 """).fetchone()
273
274 # All-time totals from turns (more accurate — per-turn model attribution)
275 totals = conn.execute("""
276 SELECT
277 SUM(input_tokens) as inp,
278 SUM(output_tokens) as out,
279 SUM(cache_read_tokens) as cr,
280 SUM(cache_creation_tokens) as cc,
281 COUNT(*) as turns
282 FROM turns
283 """).fetchone()
284
285 # By model from turns (each turn has the actual model used)
286 by_model = conn.execute("""
287 SELECT
288 COALESCE(model, 'unknown') as model,
289 SUM(input_tokens) as inp,
290 SUM(output_tokens) as out,
291 SUM(cache_read_tokens) as cr,
292 SUM(cache_creation_tokens) as cc,
293 COUNT(*) as turns,
294 COUNT(DISTINCT session_id) as sessions
295 FROM turns
296 GROUP BY model
297 ORDER BY inp + out DESC
298 """).fetchall()
299
300 # Top 5 projects from turns (join with sessions for project name)
301 top_projects = conn.execute("""
302 SELECT
303 COALESCE(s.project_name, 'unknown') as project_name,
304 SUM(t.input_tokens) as inp,
305 SUM(t.output_tokens) as out,
306 COUNT(*) as turns,
307 COUNT(DISTINCT t.session_id) as sessions
308 FROM turns t
309 LEFT JOIN sessions s ON t.session_id = s.session_id
310 GROUP BY s.project_name
311 ORDER BY inp + out DESC
312 LIMIT 5
313 """).fetchall()
314
315 # Subagent totals (subagent tokens are included in the all-time totals above)
316 subagent = conn.execute("""
317 SELECT
318 COUNT(*) as turns,

Callers

nothing calls this directly

Calls 5

require_dbFunction · 0.85
calc_costFunction · 0.85
hrFunction · 0.85
fmtFunction · 0.85
fmt_costFunction · 0.85

Tested by

no test coverage detected