Skip to main content

Your best training data is rotting in ~/.claude.

Project description

cc-steer

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.

CI PyPI License: PolyForm Noncommercial

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, and every inline review comment — conversational context included. stats shows what landed:

Terminal running 'uvx cc-steer stats' — 980 steering events counted across four source kinds

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: training pairs distilled from your own steering, each carrying the conversational window and code evidence behind it.

See how you actually steer, across every project

Your taste is mostly tacit — you notice a rule when it's violated. The corpus makes it legible:

uvx cc-steer 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-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 — 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 (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

cc_steer-0.9.0.tar.gz (68.4 kB view details)

Uploaded Source

Built Distribution

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

cc_steer-0.9.0-py3-none-any.whl (80.5 kB view details)

Uploaded Python 3

File details

Details for the file cc_steer-0.9.0.tar.gz.

File metadata

  • Download URL: cc_steer-0.9.0.tar.gz
  • Upload date:
  • Size: 68.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_steer-0.9.0.tar.gz
Algorithm Hash digest
SHA256 66d84fd0a22a3bafa3a20110f0a73440430816f37bea259bd8164b7da2d71bea
MD5 583f3a7c8d6f04dd80e54362d31110e8
BLAKE2b-256 1b9bf7cf204b26803c9c3e800355a8a24204611f636e5a280e650c3361ac2992

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_steer-0.9.0.tar.gz:

Publisher: release-pypi.yml on yasyf/cc-steer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_steer-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: cc_steer-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 80.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_steer-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cad3c2ef4de52f0eb432b8a49318bf834a22633877aa5dbea8c9349316007b45
MD5 6a9585ead6c1ffbc6366aeebf1573e22
BLAKE2b-256 9932d62ea306db02e29df1bda694054c3457b1bf83b66104f73c6c5cd5efdfd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_steer-0.9.0-py3-none-any.whl:

Publisher: release-pypi.yml on yasyf/cc-steer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page