drost-ai/tinker-ai-skill
Machine LearningTurns your Claude Code session transcripts into a fine-tuned LoRA model runnable locally via llama.cpp.
What it does
This repository packages an Agent Skill that takes coding-agent session transcripts and walks an agent through the full fine-tuning pipeline: collect Claude Code transcripts, normalize and anonymize them, slice to the model context length, build a supervised dataset, train a LoRA on Tinker, sample checkpoints, merge the adapter, and export a quantized GGUF served by llama.cpp. The stated goal is a model that follows your own repositories, conventions and debugging style.
The method is described as the production pipeline behind the Tess family, published as open weights (Tess-4-27B, Tess-4.5-27B with GGUF builds) (10). The deliverable here is a nine-step SKILL.md, eleven scripts, six reference notes, and a synthetic transcript generator for dry runs (17).
The skill is aimed at developers who already work with Claude Code (or can emit a compatible message schema from another agent) and are willing to pay Tinker for training tokens.
Quick start
Installing as a skill means cloning into the directory name tinker-ai-skill, which git clone produces by default. For Claude Code, the personal path is ~/.claude/skills/tinker-ai-skill/; Codex uses ~/.agents/skills/tinker-ai-skill/ and OpenCode ~/.config/opencode/skills/tinker-ai-skill/ (24).
The README gives a five-minute dry run that uses only synthetic data (20):
git clone https://github.com/drost-ai/tinker-ai-skill.git ~/.claude/skills/tinker-ai-skill
cd ~/.claude/skills/tinker-ai-skill
uv venv && source .venv/bin/activate && uv pip install -r requirements.txt
python scripts/make_sample_transcript.py --out ./demo-claude-projects --turns 14 --long-results
python scripts/collect_sessions.py --claude-dir ./demo-claude-projects --data-dir ./demo-data --min-bytes 1000
python scripts/normalize_sessions.py --data-dir ./demo-data
python scripts/anonymize_sessions.py --data-dir ./demo-data --name "Taylor Quintrell"
python scripts/build_dataset.py --data-dir ./demo-data --model Qwen/Qwen3.6-35B-A3B --max-len 8192 \
--system-prompt-file assets/system-prompt.md
python scripts/train_tinker.py --data-dir ./demo-data --name qwen3.6-35b-a3b-8k
The final command without --train is an offline smoke test that prints a decoded training row, token count and resolved configuration; adding --train launches a real Tinker run, after which export_checkpoint.py and make_gguf.sh produce a GGUF (22).
For real sessions, the README recommends first raising Claude Code's transcript retention ("cleanupPeriodDays": 3650 in ~/.claude/settings.json, since the default deletes after 30 days), copying .env.example with TINKER_API_KEY and WANDB_API_KEY, and writing identity.json for anonymization (23).
Requirements and constraints
- Python 3.11+ and uv (or pip),
tinker-cookbook>=0.6.0andwandb. - A Tinker API key is required; a W&B key is optional but recommended. Steps 8–9 need a built llama.cpp checkout and disk for the base model plus the merged copy (28).
- Training is billed per token by Tinker. At November 2026 prices, one epoch of ~100 rows (~5M tokens) is roughly $6 on Qwen3.6-35B-A3B, while ~1,000 rows (~45M tokens) is roughly $55 (26). The smoke test prints token counts before a paid launch; see the price list for current rates.
- Sessions from agents other than Claude Code must first be emitted in the documented message schema and can continue from step 2 (28).
- Anonymization is designed to fail on leaks rather than write a leaky file, and
data/,demo-*/,runs/,export/,wandb/and.envare git-ignored, but anonymized rows should still be reviewed before training (35). - Licensed MIT; author Migel Tissera; Tinker and tinker-cookbook are Thinking Machines Lab products, and this skill is an independent guide built on them (36).
HotRepo's take
The repository has no recorded GitHub daily rank, and the only snapshot is a new-listing record for 2026-11-08: 106 stars and 19 forks, all gained within the roughly eight-hour window from 2026-11-07T16:50Z to 2026-11-08T00:45Z. One snapshot and one day of data cannot establish a trend, so the more informative signal is the scope of the content: a full nine-step pipeline with scripts, reference notes and a synthetic dry-run path, backed by the author's published Tess weights, rather than a generic SFT tutorial. That combination is what makes it credible to evaluate for anyone considering self-hosted fine-tuning from their own coding sessions.
Written by AI from the project's README, updated . The project's own docs are the source of truth.