Metadata-Version: 2.4
Name: qualito
Version: 0.1.11
Summary: Quality metrics for AI-assisted development — measure and improve your Claude Code sessions
Project-URL: Homepage, https://qualito.ai
Project-URL: Repository, https://github.com/mp-web3/qualito
Project-URL: Issues, https://github.com/mp-web3/qualito/issues
Author: Mattia Papa
License-Expression: MIT
License-File: LICENSE
Keywords: ai,claude,delegation,mcp,quality
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Requires-Dist: click<8.3.2,>=8.1
Requires-Dist: sqlalchemy>=2.0
Provides-Extra: all
Requires-Dist: bcrypt>=4.0; extra == 'all'
Requires-Dist: charset-normalizer<3.4.7,>=3.0; extra == 'all'
Requires-Dist: email-validator>=2.0; extra == 'all'
Requires-Dist: fastapi<0.135.3,>=0.115; extra == 'all'
Requires-Dist: jinja2>=3.1; extra == 'all'
Requires-Dist: mcp<1.27,>=1.0; extra == 'all'
Requires-Dist: psycopg2-binary>=2.9; extra == 'all'
Requires-Dist: python-jose[cryptography]>=3.3; extra == 'all'
Requires-Dist: resend>=2.0; extra == 'all'
Requires-Dist: slowapi>=0.1.9; extra == 'all'
Requires-Dist: stripe<15.0.1,>=7.0; extra == 'all'
Requires-Dist: svix>=1.0; extra == 'all'
Requires-Dist: uvicorn<0.43,>=0.31; extra == 'all'
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff<0.15.9,>=0.4; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: mcp<1.27,>=1.0; extra == 'mcp'
Requires-Dist: uvicorn<0.43,>=0.31; extra == 'mcp'
Provides-Extra: postgres
Requires-Dist: psycopg2-binary>=2.9; extra == 'postgres'
Provides-Extra: server
Requires-Dist: bcrypt>=4.0; extra == 'server'
Requires-Dist: charset-normalizer<3.4.7,>=3.0; extra == 'server'
Requires-Dist: email-validator>=2.0; extra == 'server'
Requires-Dist: fastapi<0.135.3,>=0.115; extra == 'server'
Requires-Dist: jinja2>=3.1; extra == 'server'
Requires-Dist: mcp<1.27,>=1.0; extra == 'server'
Requires-Dist: psycopg2-binary>=2.9; extra == 'server'
Requires-Dist: python-jose[cryptography]>=3.3; extra == 'server'
Requires-Dist: resend>=2.0; extra == 'server'
Requires-Dist: slowapi>=0.1.9; extra == 'server'
Requires-Dist: stripe<15.0.1,>=7.0; extra == 'server'
Requires-Dist: svix>=1.0; extra == 'server'
Requires-Dist: uvicorn<0.43,>=0.31; extra == 'server'
Description-Content-Type: text/markdown

# Qualito

Quality metrics for AI-assisted development. Know if your Claude Code sessions are worth the cost.

[![PyPI](https://img.shields.io/pypi/v/qualito)](https://pypi.org/project/qualito/)
[![Python](https://img.shields.io/pypi/pyversions/qualito)](https://pypi.org/project/qualito/)
[![License](https://img.shields.io/github/license/mp-web3/qualito)](LICENSE)

## What it does

Qualito analyzes your Claude Code sessions and gives you a **DQI score** (Delegation Quality Index) — a composite metric that measures how effectively you're using AI assistance. It tracks cost, duration, success rate, and quality across every session.

- Import existing Claude Code sessions — no behavior change needed
- Score each session with a DQI composite (0-100)
- Track costs, detect incidents, monitor quality trends
- Set SLOs and get alerts when quality drops
- Run experiments to compare different approaches

## Quick Start

```bash
# Install and set up (imports your existing Claude Code sessions)
uvx qualito setup

# Or install permanently
uv tool install qualito
qualito setup
```

Every Claude Code user already has session data at `~/.claude/projects/`. Qualito reads it — you'll see your first scores in under 2 minutes.

## Cloud Dashboard

```bash
# Authenticate with qualito.ai
qualito login

# Push data to cloud
qualito sync

# Open dashboard
# → https://app.qualito.ai
```

**Free tier:** 3 workspaces. **Pro ($29/mo):** unlimited workspaces + quality scoring.

## CLI Commands

| Command | What it does |
|---------|-------------|
| `qualito setup` | First-time setup: import sessions, configure MCP, optional cloud sync |
| `qualito status` | See your local and cloud sync state |
| `qualito import` | Import Claude Code sessions for measurement (`--force` to re-process) |
| `qualito costs` | Analyze spending by workspace, model, and time |
| `qualito privacy` | View or change per-workspace sync privacy settings |
| `qualito audit list` | List flagged runs needing review |
| `qualito sync` | Push local sessions to the cloud dashboard |
| `qualito login` | Authenticate with the Qualito cloud |
| `qualito logout` | Remove cloud credentials |

## View your data

Qualito is CLI-first. Your data lives locally and is accessed through commands:

```bash
qualito status       # local + cloud breakdown with per-workspace tokens + cost
qualito costs        # detailed spend analysis
qualito privacy      # per-workspace sync privacy settings
qualito audit list   # flagged runs needing review
```

For a web UI with charts and history, sync to the cloud and view at
https://app.qualito.ai.

## Privacy

Qualito is local-first. Your session data lives on your machine, and you
control what syncs to the cloud on a per-workspace basis.

- Default: metadata only (counts, durations, types, scores)
- Opt in per workspace to sync full content for a richer dashboard
- Every sync scanned for secrets (AWS keys, API tokens, passwords, etc.)
- Server enforces your stated settings — defense in depth

See [docs/privacy.md](docs/privacy.md) for the full field-by-field breakdown.

## MCP Server

Use Qualito inline in your editor via MCP:

```json
{
  "mcpServers": {
    "qualito": {
      "command": "uvx",
      "args": ["qualito-mcp"]
    }
  }
}
```

Tools available: `qualito_setup`, `dqi_cost`, `dqi_patterns`, `dqi_warnings`, `dqi_templates`.

## Local Development

```bash
git clone https://github.com/mp-web3/qualito.git
cd qualito
uv sync --extra dev --extra server

# Run tests
uv run pytest
```

## License

MIT
