Open Source · Local-first · Git-native

Teach AI your coding style.
Once.

Stop re-explaining your preferences every session. taste-capture hooks into git, mines your edits to AI-generated code, and automatically injects your constraints into future AI sessions.

Get started free View on GitHub
~/projects/my-app
# AI wrote 40 lines. You edited 8 of them.
# taste-capture sees the diff automatically.

git commit -m "feat: add auth middleware"
[taste-capture] Analyzing diff for style deviations...
[taste-capture] Found 3 new constraints:
Never use barrel exports (index.ts re-exports)
Prefer explicit error types over `any` in catch blocks
Use named exports, not default exports in lib/
[taste-capture] CONSTRAINTS.md updated. 12 rules active.

# Next Claude session gets these injected automatically.

Your edits are the signal

Every time you change AI-generated code, that's your taste speaking. taste-capture mines that signal automatically.

1

Install the git hook

One command installs a post-commit hook. Works with any editor, any AI assistant.

2

Code normally

Use Cursor, Claude, Copilot — whatever you use. taste-capture watches in the background.

3

Constraints auto-detected

When you edit AI-generated blocks, a local model analyzes the diff and extracts the rule you applied.

4

Injected into next session

CONSTRAINTS.md is automatically prepended to your system prompt next time. AI already knows your rules.

What constraints look like

Automatically inferred from your actual edits — not written by you.

Architecture

Never create barrel exports (index.ts re-exports). Import directly from source files.

Inferred from 3 edits · 4 days ago
Style

Use 2-space indentation. Never mix tabs and spaces. Trailing newline required.

Inferred from 7 edits · 2 weeks ago
Naming

React components: PascalCase filenames. Hooks: camelCase with `use` prefix. No default exports from hooks.

Inferred from 5 edits · 1 week ago
Testing

Tests live alongside source files as `*.test.ts`, not in a `/tests` directory. No mocking the database.

Inferred from 2 edits · 3 days ago

Start free. Scale with your team.

Local processing means zero marginal cost. Pay only for team sync and automation.

Open Source
$0
forever

Full local pipeline. Your constraints stay on your machine.

  • git hook + CONSTRAINTS.md
  • Local Llama-3 diff analysis
  • Up to 10 constraints per repo
  • CLI to view/edit constraints
  • Team sync
  • Auto PR review
  • Shared constraint library
Clone on GitHub
Managed
$50/mo
per team

Auto PR review on every pull request. Taste enforced at scale.

  • Everything in Cloud Sync
  • Unlimited constraints
  • Automated PR review bot
  • Constraint violation comments
  • Slack / GitHub notifications
  • Priority support

Questions

Does my code leave my machine on the free tier?

No. The free tier runs entirely locally using a local Llama-3-8B model. Diffs are analyzed on your machine, constraints stay in your repo. Nothing is sent to our servers.

How does it know what the AI wrote vs. what I wrote?

It doesn't need to. The git hook tracks staged changes before and after your manual edits. The delta — what you changed relative to the AI's output — is the signal. You mark AI-assisted commits with a flag (or we auto-detect Cursor/Copilot metadata).

Which AI assistants does this work with?

All of them. taste-capture is AI-agnostic — it works at the git layer, not the IDE layer. Claude Code, Cursor, GitHub Copilot, Codeium — if you commit the code, we can analyze the diff.

What model is used for analysis?

Llama-3-8B running locally via Ollama. No API keys, no internet required. Cloud Sync and Managed tiers use the same local model — your diffs never leave your machine even on paid plans.

Can I edit the generated constraints?

Yes. Run taste-capture edit to open your CONSTRAINTS.md in your editor. Add, remove, or rewrite any constraint. Changes sync to your team immediately on Cloud Sync+.

How does team sync work?

On Cloud Sync, constraints are stored in our API (SQLite, keyed by repo URL). Every team member's local hook fetches the latest constraints before each session. Merges are last-write-wins per constraint ID.

Stop repeating yourself to AI.

Install the hook. Let your edits do the teaching.