Metadata-Version: 2.4
Name: cutback
Version: 0.1.0.dev0
Summary: Independent, evidence-aware AI application cost observation and optimization
Project-URL: Homepage, https://github.com/CutbackAI/cutback
Project-URL: Repository, https://github.com/CutbackAI/cutback
Project-URL: Issues, https://github.com/CutbackAI/cutback/issues
Project-URL: Documentation, https://github.com/CutbackAI/cutback/tree/main/docs
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Requires-Dist: pathspec<2,>=1
Requires-Dist: pydantic<3,>=2.12
Requires-Dist: pyyaml<7,>=6
Requires-Dist: typer<1,>=0.20
Provides-Extra: instrumentation
Requires-Dist: httpx<1,>=0.28; extra == 'instrumentation'
Requires-Dist: opentelemetry-api<2,>=1.38; extra == 'instrumentation'
Provides-Extra: openai
Requires-Dist: httpx<1,>=0.28; extra == 'openai'
Requires-Dist: openai==2.29.0; extra == 'openai'
Requires-Dist: opentelemetry-api<2,>=1.38; extra == 'openai'
Provides-Extra: server
Requires-Dist: alembic<2,>=1.17; extra == 'server'
Requires-Dist: fastapi<1,>=0.120; extra == 'server'
Requires-Dist: psycopg[binary]<4,>=3.2; extra == 'server'
Requires-Dist: sqlalchemy<3,>=2.0.44; extra == 'server'
Requires-Dist: uvicorn<1,>=0.38; extra == 'server'
Description-Content-Type: text/markdown

# Cutback

Discover AI call sites locally, without API keys or sending source to an LLM. An experimental metadata-only SDK and customer-owned collector/PostgreSQL pipeline are included for local development.

**Pre-alpha development release.** This is the initial foundation, not the complete optimization product. It does not yet run optimization experiments, verify semantic quality, provide a dashboard, or implement production deployment operations. Runtime contracts are tested with synthetic provider responses; live provider and production acceptance are not claimed. See [current status](https://github.com/CutbackAI/cutback/blob/main/docs/progress.md).

```sh
python -m pip install --pre cutback
cutback --help
cutback scan /path/to/your/python/project --format table
cutback scan /path/to/your/python/project --format json
```

The scanner discovers supported OpenAI and Anthropic Python call sites, model/source/prompt references, unresolved values, and a small offline pricing seed. Historical usage, actual spend, latency and quality remain unknown from source alone. It parses source without executing it. No account, provider key, paid request, or external control plane is needed.

For development from the repository:

```powershell
uv sync --all-extras --dev --locked
uv run cutback --help
uv run cutback doctor --json
uv run cutback scan examples/fastapi-mixed-providers --format json
uv run pytest
```

Optional extras: `cutback[openai]` (pinned experimental SDK adapter) and `cutback[server]` (self-hosted collector). Read the compatibility and operational limitations before enabling either.

See [quickstart](https://github.com/CutbackAI/cutback/blob/main/docs/quickstart.md), [local deployment](https://github.com/CutbackAI/cutback/blob/main/docs/deployment.md), [provider compatibility](https://github.com/CutbackAI/cutback/blob/main/docs/providers.md), and [security](https://github.com/CutbackAI/cutback/security/policy). Apache-2.0. No calls home or implicit paid inference. Independent of any commercial account or cloud vendor.

