This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Reason given by maintainers: Project renamed to cc-steer — install cc-steer instead (https://pypi.org/project/cc-steer/)
Your best training data is rotting in ~/.claude. cc-pushback mines every correction, interrupt, and rejected plan from your transcripts into judge-refined, TRL-ready SFT/DPO/KTO pairs on HuggingFace.
Get started
uvx cc-pushback scan
One pass over ~/.claude/projects fills ~/.cc-pushback/feedback.db with every correction you typed, every plan you rejected, and every inline review comment — conversational context included. stats shows what landed:
Driving with an agent? Paste this:
Run `uvx cc-pushback scan` to mine my Claude Code transcripts into ~/.cc-pushback/feedback.db.
Then run `uvx cc-pushback stats` and report how much pushback was collected per source kind.
Docs: https://yasyf.github.io/cc-pushback/
Use cases
Build a training set from feedback you already gave
You've spent months telling Claude "no, not like that", and that signal evaporates as transcripts rotate out. Judge the corpus, then distill the accepted events into atomic pairs grounded in the code they complain about:
uvx cc-pushback triage
uvx cc-pushback refine
uvx cc-pushback enrich
uvx cc-pushback pairs prints the deliverable: training pairs distilled from your own pushback, each carrying the conversational window and code evidence behind it.
See what you actually push back on, across every project
Your taste is mostly tacit — you notice a rule when it's violated. The corpus makes it legible:
uvx cc-pushback list --source plan_review
On my machine the split is 698 mid-session corrections, 219 rejected plans, 41 review comments, and 22 interrupts. Another machine's history folds in too: mirror it with rsync and point scan --transcripts at it (repeatable, so several mirrors fold into one scan).
Push a private SFT/DPO/KTO dataset to your HuggingFace namespace
A judged corpus in SQLite trains nothing. Export projects it into TRL-ready configs:
uvx cc-pushback export --push
traces: train 1156 test 115
sft: train 499 test 67
dpo: train 363 test 44
kto: train 1156 test 115
Four configs land as per-split parquet in a private <hf-user>/cc-pushback-traces, next to a generated dataset card. Splits group on the session hash, so a session never straddles train and test.
More in the docs
- Incremental scanning — content digests and one-transaction commits make re-scans cheap and interrupt-safe — scan
- Judge, audit, eval — prompt-versioned triage, a seeded audit sample, and mechanical metrics with no LLM calls — triage
- Pair dashboard — browse refined pairs and their full lineage in a local web UI — view-samples
- Python API — drive the scanner and the feedback store from your own code — reference
Status: alpha — the pipeline runs end to end; the judge prompt still iterates (v5 today).
Read the docs for the full guide. Licensed under PolyForm Noncommercial 1.0.0.
Metadata
Release files for cc-pushback 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cc_pushback-0.8.1.tar.gz | 64.5 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cc_pushback-0.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 141.5 kB
Release files / cc_pushback-0.8.1.tar.gz
| Download URL | cc_pushback-0.8.1.tar.gz |
|---|---|
| Size | 64.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
027d06ce4e62ccd5b4670e6437d01e527c613008d5f84613071177afb4d4ce0a
|
|
BLAKE2b-256 checksum How to use checksums |
7441be20a436949c5aca547498c95b0562afc6ac223aee2cc74c68eb53560f8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.
Transparency logRelease files / cc_pushback-0.8.1-py3-none-any.whl
| Download URL | cc_pushback-0.8.1-py3-none-any.whl |
|---|---|
| Size | 76.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc030cd2d9e60715aac9f81378517b71bee3e3c182de7199dac2dee8a1fc444b
|
|
BLAKE2b-256 checksum How to use checksums |
6e5423325b9ad73f68d7bd63a11176e11b0afdbd9d2ca866b3882f537c65b692
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.
Transparency logSecurity for cc-pushback 0.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for cc_pushback-0.8.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.