AI News HubLIVE
In-site rewrite4 min read

Show HN: Zero-config session-taste packer for AI agents

taste is a zero-configuration tool that compresses AI agent context by 97% (from 56K to 1.9K tokens) and automatically learns coding patterns from git history and session logs, enabling agents to write code that matches the user's style.

SourceHacker News AIAuthor: dvcoolarun

Notifications You must be signed in to change notification settings

Fork 0

Star 1

BranchesTags

Open more actions menu

Folders and files

NameName

Last commit message

Last commit date

Latest commit

History

13 Commits

13 Commits

assets

assets

docs

docs

examples

examples

.agent-taste.json

.agent-taste.json

.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

install.sh

install.sh

taste

taste

Repository files navigation

Zero-config. Auto-learns. Just works.

97% smaller context · Auto-learns your style · Works with any agent

Compresses AI agent context from 56K tokens to 1.9K tokens. Learns your coding patterns from git history and session logs. Results vary by project size and session history.

Install

The most effort taste will ever ask of you:

One-Line Install (Recommended)

curl -fsSL https://raw.githubusercontent.com/dvcoolarun/taste-ai/main/install.sh | bash

Manual Install

git clone https://github.com/dvcoolarun/taste-ai.git cd taste-ai chmod +x taste cp taste ~/.local/bin/

Verify Installation

taste help

Quick Start

1. Navigate to any project

cd ~/my-project

2. Generate context

taste

3. Start your agent

opencode .

How It Works

┌─────────────────────────────────────────────────────────┐ │ Data Collection │ │ - Last 3-5 session logs │ │ - Last 3-5 prompt logs │ │ - Git diffs (last 3-5 commits) │ │ - Current taste config │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ Summary Creation │ │ - Compact format (18KB typical) │ │ - Token-efficient structure │ │ - Essential information only │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ Agent Analysis │ │ - Calls opencode or claude │ │ - Uses pattern extraction prompt │ │ - Returns structured patterns │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ Pattern Extraction │ │ - NAMING conventions → TASTE.md │ │ - ARCHITECTURE patterns → TASTE.md │ │ - IMPORTS style → TASTE.md │ │ - ERROR_HANDLING patterns → TASTE.md │ │ - STYLE preferences → TASTE.md │ │ - BANNED_PATTERNS → .agent-taste.json │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ Auto-Update │ │ - Positive patterns → TASTE.md │ │ - Banned patterns → .agent-taste.json │ │ - Preserve existing patterns │ │ - Avoid duplicates │ └─────────────────────────────────────────────────────────┘

Lazy, not negligent: validation, error handling, security, and accessibility patterns are never skipped.

You know the problem. You start an AI agent session. It reads your entire project: session logs, git diffs, READMEs, config files. It writes code that doesn't match your style. It wastes tokens and produces generic, bloated code.

taste puts a stop to that. It learns your patterns. It compresses your context. It makes your agents write code like you do.

Before / after

You ask for a rate limiter. Your agent reads 56K tokens of context, installs a library, writes a generic implementation, and asks about your Redis setup.

With taste:

taste

Creates .session-doc.md with 1.9K tokens

Agent reads your patterns, writes code your way

More examples in examples/.

Numbers

Five metrics, one goal: make your agents write better code with less context.

Metric Without taste With taste Improvement

Token usage 56,000 1,950 97% reduction

Context quality Generic Project-specific Better

Pattern learning Manual Automatic Zero-config

Agent support Single Multiple 3+ agents

Setup time Hours Seconds Instant

97% smaller context, auto-learns your style, and works with any agent. Every pattern taste learns is marked in the code with confidence scores. Reproduce it yourself: run taste learn in any project. Method and raw numbers: benchmarks/. Real-world examples: examples/.

That is the byproduct, not the pitch. These are average numbers, and they vary by project. Larger projects with more session history see better compression. Smaller projects with less history see smaller savings. And all of this is iterative: each time you run taste learn, it learns more patterns, which makes the next compression better. The rule was never "fewest tokens." It is: learn only what the project needs, and never skip validation, error handling, security, or accessibility. The context ends up small because it is necessary, not trimmed, and that is the part that stays useful. Better code quality is a side effect of learning your style, and that is the part that matters.

Usage

Pack Context

In any project directory

taste

Generates .session-doc.md with compressed context

Learn Patterns

Analyze last 3 sessions and learn patterns

taste learn

Analyze last 5 sessions

taste learn --depth 5

Show patterns without updating files

taste learn --dry-run

Initialize Taste Config

Create default .agent-taste.json

taste init

Show Current Config

Display current taste configuration

taste show

Commands

Command What it does

taste Pack session context into .session-doc.md

taste pack [file] Pack to specific output file

taste init Create default .agent-taste.json

taste show Show current taste config

taste learn Learn patterns from recent sessions (agent-assisted)

taste help Show help

Learn Options

Flag Description

--depth N Analyze last N sessions (default: 3)

--model MODEL Model to use for analysis (overrides TASTE_MODEL)

--dry-run Show patterns without updating files

Pattern Learning

Pattern Categories

Category What It Learns Output Location

NAMING Function naming conventions (snake_case, camelCase, etc.) TASTE.md

ARCHITECTURE Project structure patterns, dependency management TASTE.md

IMPORTS Import style, ordering, lazy vs eager imports TASTE.md

ERROR_HANDLING Try/catch patterns, error propagation TASTE.md

STYLE Code formatting, function length, comments TASTE.md

BANNED_PATTERNS What NOT to do, with reasons .agent-taste.json

Banned Patterns

taste learns both positive patterns (what to do) and negative patterns (what NOT to do). Banned patterns are extracted from user corrections, past mistakes, and feedback.

Example banned patterns:

{ "banned_patterns": [ "--single-process_Chromium_flag_on_macOS (reason: causes crashes, documented failure)", "hardcoding_connection_URLs_or_env_specific_values (reason: caused 'Queue service unavailable' failure)", "jumping_to_implementation_before_design_alignment (reason: wasted work when pricing model wasn't confirmed)", "removing_comments_during_code_rewrites (reason: user explicitly called out and expects preservation)", "using_browser_only_Node_APIs_in_subprocess (reason: ErrorEvent caused ReferenceError)" ] }

Why banned patterns matter:

Specific - Not generic ("don't use classes") but concrete ("don't use --single_process_Chrome_flag")

Actionable - Clear reasons that explain WHY it's banned

Learned from mistakes - "was replaced with page.setContent" shows historical context

Platform-aware - "crashes on macOS" shows environment-specific knowledge

How banned patterns work:

Agent extracts BANNED_PATTERNS from session data

Patterns are written to .agent-taste.json as a JSON array

When you run taste, banned patterns are included in .session-doc.md

Agents read the banned patterns and avoid those patterns

Confidence Scores

Each pattern includes a confidence score (0-1):

0.9-1.0: Very high confidence (seen multiple times)

0.8-0.9: High confidence (seen consistently)

0.7-0.8: Medium confidence (seen occasionally)

0.6-0.7: Low confidence (seen once or twice)

TASTE_MODEL env > default

Global Config

Create ~/.config/taste/base.json for global settings:

{ "flavor": "Standard idiomatic development", "banned_patterns": [], "style": "Prefer clarity over brevity" }

Project Config

Create .agent-taste.json in your project root:

{ "flavor": "Functional TypeScript, strict types, zero dependencies", "banned_patterns": [ "classes", "any", "console.log" ], "style": "Implicit returns, max 20 lines per function" }

After running taste learn, banned patterns are automatically populated:

{ "flavor": "Standard idiomatic development", "banned_patterns": [ "--single-process_Chromium_flag_on_macOS (reason: causes crashes, documented failure)", "hardcoding_connection_URLs_or_env_specific_values (reason: caused 'Queue service unavailable' failure)", "jumping_to_implementation_before_design_alignment (reason: wasted work when pricing model wasn't confirmed)", "removing_comments_during_code_rewrites (reason: user explicitly called out and expects preservation)", "using_browser_only_Node_APIs_in_subprocess (reason: ErrorEvent caused ReferenceError)" ], "style": "Prefer clarity over brevity", "learned": {} }

FAQ

Does it need a config file? No. An optional .agent-taste.json or TASTE.md can be created, but nothing is required. taste works with zero configuration.

What if I really need that 120-line cache class? You don't. Insist anyway and taste will learn your pattern. Slowly. Correctly. While looking at you.

Does it scale? The context you never waste scales infinitely. Zero tokens wasted, zero generic code, 100% style matching since forever.

Why "taste"? You know exactly why.

Requirements

bash 4.0+

git

opencode or claude (for taste learn)

Future Features

Multi-agent support (claude, codex, commandcode)

Session auto-capture (daemon mode)

Global taste config (~/.config/taste/)

JSON output for agents

Integration with more agent harnesses

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Fork the repository

Create your feature branch (git checkout -b feature/amazing-feature)

Commit your changes (git commit -m 'Add amazing feature')

Push to the branch (git push origin feature/amazing-feature)

Open a Pull Request

License

MIT. The shortest license that works.

About

taste - Zero-config session-taste packer for AI agents

Topics

bash

cli

ai

optimization

opencode

context

tokens

developer-tools

agents

claude

Resources

Readme

License

MIT license

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

1 star

Watchers

0 watching

Forks

0 forks

Report repository

Releases

No releases published

Packages 0

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

Shell 100.0%