Skip to main content

Oh My Agentic Score

Measure and visualize your agentic coding performance

Based on IndyDevDan's Thread-Based Engineering framework

PyPI License Python Docs


"If you can't measure it, you can't improve it."

In the age of AI-assisted development, agentic coding — the ability to collaborate effectively with AI agents — is becoming an essential skill for every developer. But how do you know if you're actually getting better at it? You can't improve what you can't measure.

Oh My Agentic Score (OMAS) was born from this belief. Inspired by IndyDevDan's brilliant Thread-Based Engineering framework, this project provides a concrete, data-driven way to measure and visualize your agentic coding performance.

OMAS analyzes your Claude Code session logs and scores your performance across four dimensions: parallelism, autonomy, density, and trust. Track your growth from basic conversations to fully autonomous Z-threads — and push yourself to become a better agentic developer.

Installation

One-line install (recommended)

curl -fsSL https://raw.githubusercontent.com/HwangTaehyun/oh-my-agentic-score/main/install.sh | bash

Homebrew (macOS)

brew install HwangTaehyun/tap/oh-my-agentic-score

pip / uv

pip install oh-my-agentic-score

# or with uv (faster)
uv tool install oh-my-agentic-score

Quick Start

# Scan all Claude Code sessions
omas scan

# View your report
omas report

# Launch interactive dashboard
omas dashboard

Cloud Ranking (Optional)

Upload your scores and compare with other developers at oh-my-agentic-score.com:

# 1. Authenticate via GitHub
omas auth login

# 2. Scan & upload in one step
omas dashboard              # auto-scans, exports, uploads, and launches dashboard

# Or upload manually
omas upload                 # upload to cloud
omas upload --dry-run       # preview what will be uploaded

# 3. Check your ranking
#    Visit https://oh-my-agentic-score.com

All uploads are privacy-safe — project paths are hashed (SHA-256), no source code is ever transmitted.

Features

Four-Dimension Scoring (0-10 scale)

Dimension Thread What It Measures
More P-thread Concurrent sessions running simultaneously (cross-session parallelism)
Longer L-thread Autonomous work duration without human intervention (idle gaps capped at 30min)
Thicker B-thread Work density (sub-agent depth, orchestration breadth, tool calls per minute, AI-written lines bonus)
Fewer Z-thread Human checkpoint reduction (ratio-only, trivial delegations excluded, Plan Mode AskUser exempt)

Seven Thread Types

Sessions are classified into one of seven thread types (highest priority first):

Z-thread  Zero-touch    Minimal human input, maximum autonomous work
B-thread  Big           Nested sub-agents (agents spawning agents)
L-thread  Long          30+ minutes autonomous stretch, 50+ tool calls
F-thread  Fusion        Similar tasks distributed to multiple agents
P-thread  Parallel      2+ concurrent agent execution paths
C-thread  Chained       Multiple human checkpoints with work between each
Base      Default       Standard conversation

CLI Commands

omas scan                    # Scan all sessions, build metrics DB
omas analyze <session-id>    # Analyze a single session
omas report                  # Full report with comparison metrics
omas trend                   # Score trends over time
omas export                  # Export JSON for dashboard
omas dashboard               # Launch Next.js dashboard
omas list                    # List discovered sessions
omas tui                     # Interactive TUI (via Trogon)
omas auth login              # OAuth login (GitHub)
omas auth status             # Check auth status
omas upload --dry-run        # Preview cloud upload

Next.js Dashboard

Interactive web dashboard with:

  • Radar chart across all 4 dimensions
  • Thread type distribution pie chart
  • Score trends over time
  • Per-project breakdown
  • Session detail views

Fair Comparison System

To prevent short test sessions from skewing scores:

  • Minimum Thresholds: Sessions must have 5+ min duration, 10+ tool calls, 1+ human messages
  • Weighted Scoring: Longer, more complex sessions get proportionally more weight
  • Consistency Score: Measures score stability across recent sessions
  • Composite Rank: weighted_score * 0.8 + consistency * 0.2

Textual TUI

Interactive terminal UI powered by Textual and Trogon:

omas tui    # Opens form-based CLI interface

Architecture

Claude Code JSONL logs (~/.claude/projects/)
        │
        ▼
   omas scan          Parse & analyze all sessions
        │
        ├─► SQLite DB (~/.omas/metrics.db)     Local storage (always)
        │
        ├─► metrics.json                        Dashboard data
        │
        └─► Cloud upload (optional)             Background sync
             └─► upload_queue.json              Retry queue on failure

Offline-First Design

  • Analysis results always save to local SQLite first
  • Cloud upload is automatic but optional
  • Network failures queue data for retry (max 5 attempts)
  • Dashboard works entirely from local data

Privacy

  • Project paths are hashed before cloud upload (no directory names exposed)
  • Session IDs retained for deduplication only
  • No source code or file contents are ever transmitted

How It Works

OMAS parses Claude Code's JSONL session logs from ~/.claude/projects/. For each session:

  1. Parser extracts tool calls, user messages, sub-agent events, and token usage
  2. Metrics compute four independent dimension scores using log-normalized scaling
  3. Classifier determines the thread type using priority-based rules
  4. Storage persists to SQLite for historical tracking
  5. Display renders via Rich terminal UI or Next.js dashboard

Key Algorithms

  • Cross-session sweep-line for peak concurrent session detection (parallelism) — avoids over-counting from pairwise overlap
  • Linear agent counting for density scoring (total agents capped at 10, plus AI-written lines bonus)
  • Activity-based autonomy measurement (measures to Claude's last activity, not next human message)
  • Idle gap capping at 30 minutes to prevent inflated autonomy scores from idle periods
  • Jaccard similarity for fusion thread detection
  • P90 percentile scoring for autonomy — 90th percentile of autonomous stretches, excluding outliers
  • Log normalization (log1p(x) * k) for unbounded metrics (0-10 scale; k=2.5 for autonomy, k=2.0 for trust)
  • Trivial delegation filter excludes simple human commands (≤5 tool calls) from trust ratio
  • Plan Mode awareness exempts AskUserQuestion during planning from penalty
  • Human message filtering with 24 automated patterns + minimum length (3 chars)

Improving Your Score

Base → C-thread    Use 3+ conversation turns with work between each
C    → P-thread    Request parallel tasks ("analyze these 3 files simultaneously")
P    → L-thread    Give detailed instructions, let Claude work 30+ minutes
L    → B-thread    Use teams/worktrees for deep sub-agent hierarchies
B    → Z-thread    One command, full feature implementation, auto-approve

Key tips:

  • Write a detailed CLAUDE.md with project conventions
  • Give complete requirements upfront instead of incremental instructions
  • Enable auto-approve for permissions to avoid interruptions
  • Use Agent tool for independent parallel work

Development

git clone https://github.com/HwangTaehyun/oh-my-agentic-score.git
cd oh-my-agentic-score
uv sync
uv run omas --help

Dashboard (Dev Mode)

When running from a git clone, the bundled dashboard is not included. Build the static export first, then omas dashboard serves it via a pure Python HTTP server (no Node.js runtime needed after build):

# 1. Build the dashboard static export (one-time, or after source changes)
cd dashboard
npm install   # or: bun install
npm run build # generates dashboard/out/
cd ..

# 2. Scan sessions and launch dashboard
uv run omas scan
uv run omas dashboard

Note: omas dashboard automatically runs scan + export before launching. If dashboard/out/ exists, it serves via Python's built-in HTTP server. If dashboard/out/ is missing and node_modules/ exists, it falls back to npx next dev.

See CONTRIBUTING.md for full development setup.

Documentation

Full documentation is available at hwangtaehyun.github.io/oh-my-agentic-score.

Credits

Tip

Be with us!

Issues  Found a bug or have a feature idea? Open an issue — all feedback is welcome.

Email  Reach out directly for questions, suggestions, or collaboration.

GitHub Follow  Follow @HwangTaehyun on GitHub for more projects.

License

MIT - Taehyun Hwang

Metadata

Release files for oh-my-agentic-score 0.8.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oh-my-agentic-score 0.8.7
File Size Uploaded Provenance
oh_my_agentic_score-0.8.7.tar.gz 687.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for oh-my-agentic-score 0.8.7
File Interpreter ABI Platform
oh_my_agentic_score-0.8.7-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / oh_my_agentic_score-0.8.7.tar.gz

Download URL oh_my_agentic_score-0.8.7.tar.gz
Size 687.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ec5a492735038013638c69554dcbbc53cf1a01a09fbe4d81f810d8e3018fcb2c
BLAKE2b-256 checksum
How to use checksums
5ac004d831df3d24ba645b148d87d6ba06c8605811fc573944671e5210c320dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / oh_my_agentic_score-0.8.7-py3-none-any.whl

Download URL oh_my_agentic_score-0.8.7-py3-none-any.whl
Size 501.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eba68f27b55267a6087cbefe4fd918b9e82ca65a81ed71341d3cb2e04e4579be
BLAKE2b-256 checksum
How to use checksums
5b00e852a20f1100968e18cab783f531c814cfcd6203bc91f919c5ee77bd0e53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Security for oh-my-agentic-score 0.8.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for oh_my_agentic_score-0.8.7.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.8.7 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page