Your best training data is rotting in ~/.claude.
Project description
Your best training data is rotting in ~/.claude. cc-steer 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-steer scan
One pass over ~/.claude/projects fills ~/.cc-steer/feedback.db with every correction you typed, every plan you rejected, every question you answered, and every inline review comment, conversational context included. stats shows what landed:
Driving with an agent? Paste this:
Run `uvx cc-steer scan` to mine my Claude Code transcripts into ~/.cc-steer/feedback.db.
Then run `uvx cc-steer stats` and report how much steering was collected per source kind.
Docs: https://yasyf.github.io/cc-steer/
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, the corrective ones grounded in the code they fault:
uvx cc-steer triage
uvx cc-steer refine
uvx cc-steer enrich
uvx cc-steer pairs prints the deliverable. Each training pair is distilled from your own steering and carries the conversational window and code evidence behind it.
See how you actually steer, across every project
Your taste is mostly tacit, and you notice a rule only when it's violated. The corpus makes it legible:
uvx cc-steer list --source plan_review
On my machine the split is 1,840 answered questions, 714 mid-session corrections, 212 rejected plans, 21 interrupts, and 5 review comments. Another machine's history folds in too. Mirror it with rsync and point scan --transcripts at it; scans are repeatable, so several mirrors fold into one corpus.
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-steer 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-steer-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 explains how content digests and one-transaction commits keep re-scans cheap and interrupt-safe.
- Triage, audit, and eval cover prompt-versioned judging, a seeded audit sample, and mechanical metrics that need no LLM calls.
- view-samples serves a local dashboard for browsing refined pairs and their full lineage.
- The Python API drives the scanner and the feedback store from your own code.
cc-steer is alpha. The pipeline runs end to end, and the judge prompt still iterates (v6 today).
Read the docs for the full guide. Licensed under PolyForm Noncommercial 1.0.0.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cc_steer-0.11.0.tar.gz.
File metadata
- Download URL: cc_steer-0.11.0.tar.gz
- Upload date:
- Size: 119.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a73fc09453cc225fce642c5e290f6164caf76e8f28f9c68e62288c6d499232d
|
|
| MD5 |
8c65ae5a786c9fabdb77fd6d3f93f2b3
|
|
| BLAKE2b-256 |
7eea6573f04203c573b4af68f94d3388201b643417112ab542654bb37e8a0849
|
Provenance
The following attestation bundles were made for cc_steer-0.11.0.tar.gz:
Publisher:
release-pypi.yml on yasyf/cc-steer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cc_steer-0.11.0.tar.gz -
Subject digest:
6a73fc09453cc225fce642c5e290f6164caf76e8f28f9c68e62288c6d499232d - Sigstore transparency entry: 2165036743
- Sigstore integration time:
-
Permalink:
yasyf/cc-steer@ef32a70a6f439d0ccac2fc305123145d16278dbc -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/yasyf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@ef32a70a6f439d0ccac2fc305123145d16278dbc -
Trigger Event:
push
-
Statement type:
File details
Details for the file cc_steer-0.11.0-py3-none-any.whl.
File metadata
- Download URL: cc_steer-0.11.0-py3-none-any.whl
- Upload date:
- Size: 142.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a225dc25c7e759d7d8962aeb1f11ee99cf4115fe8b4cfc28b448b7b61c3c3f64
|
|
| MD5 |
b30bf5ada1e59e6ff102dd40c52de065
|
|
| BLAKE2b-256 |
deda4f8a0a6af2817fd8a126307df81f8c260858709eb40def3620660feaf1ce
|
Provenance
The following attestation bundles were made for cc_steer-0.11.0-py3-none-any.whl:
Publisher:
release-pypi.yml on yasyf/cc-steer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cc_steer-0.11.0-py3-none-any.whl -
Subject digest:
a225dc25c7e759d7d8962aeb1f11ee99cf4115fe8b4cfc28b448b7b61c3c3f64 - Sigstore transparency entry: 2165036776
- Sigstore integration time:
-
Permalink:
yasyf/cc-steer@ef32a70a6f439d0ccac2fc305123145d16278dbc -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/yasyf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@ef32a70a6f439d0ccac2fc305123145d16278dbc -
Trigger Event:
push
-
Statement type: