Metadata-Version: 2.4
Name: absolutelyright
Version: 0.2.0a7
Summary: analytics over your claude code session transcripts
Author-email: zzstoatzz <thrast36@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: analytics,claude,claude-code,cli,transcripts
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: cyclopts>=4.17.0
Requires-Dist: textual-plotext>=1.0.1
Requires-Dist: textual>=8.2.7
Requires-Dist: watchdog>=6.0.0
Description-Content-Type: text/markdown

# absolutelyright

analytics over your claude code session transcripts.

claude code keeps a jsonl transcript of every session under `~/.claude/projects/`.
absolutelyright separates what you actually typed from harness noise (tool results,
slash-command expansions, subagent sidechains) and tells you things like:

- your most-repeated literal prompts (everyone has a "make the PR description not suck")
- how often you open with `no` / `wait` / `stop` / `actually`
- where your prompts, interrupts, and output tokens go, per project
- which tools claude leans on, and what hours you really work

## install

```bash
uv tool install absolutelyright
```

## usage

```bash
absolutelyright report            # the whole picture, human-formatted
absolutelyright prompts --pretty  # most-repeated literal prompts
absolutelyright hours --pretty    # prompts by local hour of day
absolutelyright overview --days 7 # recent only
```

machine-readable by default — lists are ndjson, single results are one json
object — so output pipes straight into jq or an agent:

```bash
absolutelyright projects | jq -r '.project'
```

note: claude code prunes local transcripts (30 days by default, see
`cleanupPeriodDays`), so absolutelyright sees a rolling window, not all time.

## library

```python
from absolutelyright import load_sessions, repeated_prompts

sessions = load_sessions(days=30)
for text, count in repeated_prompts(sessions, top=10):
    print(count, text)
```
