Metadata-Version: 2.4
Name: cat-claws
Version: 0.1.0
Summary: Claude Agent SDK backend for the CatLLM ecosystem — classify text through a Claude subscription instead of per-token API billing.
Project-URL: Source, https://github.com/chrissoria/cat-agent
Author-email: Chris Soria <chrissoria@berkeley.edu>
License-Expression: GPL-3.0-or-later
Keywords: agent-sdk,classification,claude,llm,survey
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: cat-stack>=2.0.1
Requires-Dist: claude-agent-sdk>=0.1.0
Requires-Dist: pandas
Description-Content-Type: text/markdown

# cat-claws

Agent-CLI backend for the [CatLLM ecosystem](https://github.com/chrissoria/cat-llm):
classify text through a **Claude subscription** (via the Claude Agent SDK)
instead of per-token API billing. An OpenAI Codex adapter is planned.

*(Distribution name `cat-claws`; imports as `catclaws`. Source repo:
[cat-agent](https://github.com/chrissoria/cat-agent).)*

**Status: alpha, under active development.** See `MASTERPLAN.md` for the
design and step tracker.

## Install

```bash
pip install cat-claws
```

## Design in one paragraph

One row = one sealed, fresh-context agent call (no tools, single turn, no
settings/CLAUDE.md loading), using cat-stack's validated classification
prompt byte-for-byte. The model answers in JSON; parsing and the wide 0/1
output matrix reuse cat-stack's existing machinery. Throughput comes from
concurrent one-shot calls, never from shared conversations or
corpus-in-one-prompt (which would contaminate rows and break research
validity).

## Quick start (Phase 1)

```python
import catclaws

df = catclaws.classify(
    input_data=["I moved for a new job", "Rent got too expensive"],
    categories=["Employment", "Cost of living", "Other"],
    user_model="claude-sonnet-5",   # any model your Claude login can use
    description="Why did you move?",
)
```

Requires [Claude Code](https://code.claude.com/docs) installed and logged in
(`claude` on PATH). No API key needed.
