Skip to main content

cat-claws

Agent-SDK backends for the CatLLM ecosystem: classify text through a Claude subscription (Claude Agent SDK) or a ChatGPT subscription (openai-codex SDK) instead of per-token API billing.

(Distribution name cat-claws; imports as catclaws. Source repo: cat-agent.)

Status: alpha, under active development. See MASTERPLAN.md for the design and step tracker, and OPENAI_MASTERPLAN.md for the Codex backend's execution record.

Install

Each backend's SDK is an extra — install the one(s) you use:

pip install "cat-claws[claude]"   # Claude backend (claude-agent-sdk)
pip install "cat-claws[codex]"    # Codex backend (openai-codex, bundles the codex binary)
pip install "cat-claws[claude,codex]"  # both

A bare pip install cat-claws installs neither SDK; calls then return a clear per-row install hint instead of classifying.

Design in one paragraph

One row = one sealed, fresh-context agent call (no tools, single turn, no settings/AGENTS.md/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

import catclaws

# Claude subscription (requires Claude Code installed and logged in):
df = catclaws.classify(
    input_data=["I moved for a new job", "Rent got too expensive"],
    categories=["Employment", "Cost of living", "Other"],
    description="Why did you move?",
    agent="claude",                 # default; user_model=None -> claude-sonnet-5
)

# ChatGPT subscription (requires `codex login`; the SDK bundles the binary):
df = catclaws.classify(
    input_data=["I moved for a new job", "Rent got too expensive"],
    categories=["Employment", "Cost of living", "Other"],
    description="Why did you move?",
    agent="codex",                  # user_model=None -> gpt-5.5
)

No API key needed for either backend. Engine users reach the same adapters via catstack.classify(..., model_source="claude-agent") / model_source="codex-agent".

Notes for agent="codex": reasoning is explicitly set per call (thinking_budget=0 → effort "none"), so your ~/.codex/config.toml defaults are never silently inherited; image/PDF input is not yet supported on the codex backend (use agent="claude" or an API provider).

Methodology note

The two backends answer the same frozen prompt. On the 24-row synthetic parity run (2026-07-11, benchmarks/parity_run.py) claude-sonnet-5 and gpt-5.5 agreed on 96/96 cells (Cohen's kappa 1.000, 0 errors). Synthetic one-liners are easy; expect some divergence on real survey text — measure and disclose per study (benchmarks/RESULTS.md holds the running record), and never tune the prompt to force agreement.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cat_claws-0.3.1.tar.gz (62.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cat_claws-0.3.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file cat_claws-0.3.1.tar.gz.

File metadata

  • Download URL: cat_claws-0.3.1.tar.gz
  • Upload date:
  • Size: 62.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.14

File hashes

Hashes for cat_claws-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1a54cbcab2521872aef5b059f5a1ed065bcfaeae14a81a45da7e3752492f804c
MD5 93fefd905ed6b46e36fbcc4a098d0525
BLAKE2b-256 3127d908d321c13e767d6aa4c5f4b0bda22012c932d593022df77a5385439db3

See more details on using hashes here.

File details

Details for the file cat_claws-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: cat_claws-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.14

File hashes

Hashes for cat_claws-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 22006294398a93496a5ab09912f1c8158e0e36bad5be427190664233dd9ce9eb
MD5 8ecbfb6f7f5e4abaa7d4f693c2ab66f4
BLAKE2b-256 8f28221e5d38b41565a5767667e97894b72dd7970a1e8526b5379ef305ec1d7d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

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