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 PolyForm Noncommercial license

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:

Terminal running 'uvx cc-steer stats' — 2,792 steering events counted across five 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. 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

cc_steer-0.11.0.tar.gz (119.9 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.11.0-py3-none-any.whl (142.2 kB view details)

Uploaded Python 3

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

Hashes for cc_steer-0.11.0.tar.gz
Algorithm Hash digest
SHA256 6a73fc09453cc225fce642c5e290f6164caf76e8f28f9c68e62288c6d499232d
MD5 8c65ae5a786c9fabdb77fd6d3f93f2b3
BLAKE2b-256 7eea6573f04203c573b4af68f94d3388201b643417112ab542654bb37e8a0849

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_steer-0.11.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.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

Hashes for cc_steer-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a225dc25c7e759d7d8962aeb1f11ee99cf4115fe8b4cfc28b448b7b61c3c3f64
MD5 b30bf5ada1e59e6ff102dd40c52de065
BLAKE2b-256 deda4f8a0a6af2817fd8a126307df81f8c260858709eb40def3620660feaf1ce

See more details on using hashes here.

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

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