Skip to content

dotoricode/tink-harness

Repository files navigation

Tink Hero Banner

Tink

A small harness layer for Claude Code

Tink helps Claude Code choose the right harness, keep run state visible, and improve the harness set as you work.

Tink is knit in reverse: untying tangled workflows and knitting better ones back together. It also nods to Tinker Bell, the small helper at your side.

CI License GitHub stars


Why I made this

New coding harnesses show up almost every day. Many of them are genuinely useful.

At first, I tried them one by one and kept the ones that fit me. But the more I mixed them, the more my environment got tangled. Resetting everything again and again was tiring, so I ended up falling back to a skill-based workflow that I could understand and control.

Then I used Hermes Agent for a while. What stayed with me was the way it gets better through use: repeated work turns into reusable skills, mistakes become memory, and the system slowly adapts to the person using it.

Tink started from a simple question:

Could Claude Code grow with me in the same way?

Not by adding a big framework. Not by running more agents. Just by helping Claude choose the right harness for the current task, create one when nothing fits, and improve the set over time.

Install

Claude Code plugin install:

/plugin marketplace add dotoricode/tink-harness
/plugin install tink@tink-harness
/reload-plugins
/tink:setup

Update

Claude Code plugin users:

/plugin marketplace update tink-harness
/plugin update tink@tink-harness
/reload-plugins

If update does not find the latest version, uninstall and install again:

/plugin uninstall tink@tink-harness
/plugin install tink@tink-harness

Standalone compatibility installer:

npx github:dotoricode/tink-harness install

To update an existing standalone install (keeps user-modified files):

npx github:dotoricode/tink-harness update

Commands

Tink keeps the command surface small.

Tink is plugin-first. Commands are namespaced under tink, so the public surface stays /tink:* and avoids generic command conflicts.

/tink:cast

cast means to place the first loops on the needle (코잡기, Cast on). In knitting, casting on is the very first step — it sets the foundation for everything that follows.

In Tink, cast is the main path. It reads the task, chooses or drafts the right harness, runs Stitch (Stitch) as a lightweight internal quality check, creates .tink/current/ as the visible workbench, and starts the first safe step after approval.

Use it when the task is more than a quick answer.

/tink:frog

frog means to rip out stitches (풀시오, Frogging). In knitting, frogging unravels rows that went wrong — the name comes from the sound of pulling out yarn, "rip it, rip it."

In Tink, frog looks for harnesses that are unused, overlapping, too broad, or no longer worth their context cost. It proposes cleanup, but does not delete without approval.

Use it when the harness set starts to feel noisy.

/tink:weave

weave means to weave in the ends (실오라기 정리, Weave in). In knitting, weaving in secures the loose threads left after finishing, giving the work its final shape.

In Tink, weave improves an existing harness using real use, failures, and corrections. It should make the next run clearer, safer, or easier to verify.

Use it when a harness is useful but slightly wrong.

Other commands

  • /tink:setup: choose language, install scope, git tracking, and hook policy.
  • /tink:list: inspect available harnesses and recent usage signals.
  • /tink:update: detect install source and show the safe update command.

How it works

Tink uses files you can inspect:

  • .tink/harnesses/: reusable task harnesses
  • .tink/current/: the current run state
  • .tink/runs/: compact records from finished, blocked, canceled, or replaced runs
  • .tink/memory/: approved mistakes, preferences, and lessons

The important rule is approval.

Tink may suggest a harness, a memory entry, a cleanup, or an improvement. Stitch runs once before run state is committed and surfaces exactly one proposal when there is a high-impact quality or safety branch. Soft gates let you continue with recorded assumptions; hard gates (irreversible or external-side-effect actions) require explicit approval or cancel. Reusable State Save Gate is a separate gate entirely: current-run approval does not authorize saving to .tink/harnesses/, .tink/memory/, .claude/, or any file that affects future installs — those each need their own approval.

What Tink is not

Tink is not:

  • a coding agent
  • a workflow engine
  • a multi-agent runtime
  • a prompt library
  • a replacement for Claude Code

It is a small harness layer for Claude Code.

Status

Current version: 0.1.4.

Tink is pre-v1 and being hardened toward v1.0.0. Version policy and release checks are tracked in VERSIONING.md, and notable changes are tracked in CHANGELOG.md.

The current focus is install reliability, simple docs, visible run state, and a release path that can be verified from a clean repo.

Scope model in v1.0: repo (project .tink/) and global (~/.tink/). Layered merging of global + repo + local (following the Claude Code settings pattern) is planned for v1.1.

License

MIT