Taste

Taste is powered by our meta neuro-symbolic AI model taste-1 with continuous reinforcement learning (RL). We combine reasoning with neural intuition to create an invisible architecture of your choices, structures, patterns and tooling preferences.

  • Continuously learning side learns the texture of your code (explicit & implicit feedback).
  • Meta Neuro-Symbolic AI model taste-1 enforces the invisible logic of your choices.
  • Reflective Context Engineering of a self-aware RL feedback loop to build skills.

✓ 10x faster coding, 2x faster code reviews, 5x fewer bugs.

The taste-1 model is the core of our taste architecture. To build your taste profile it:

  • Learns from you — every accept, reject, and edit becomes a signal
  • Thinks like you — learns patterns and micro-decisions you'd never document
  • Grows with you — a continuous learning loop that never goes stale

Unlike traditional coding assistants that rely on generic best practices, Taste builds a personalized model of your team's code review patterns, style preferences, and architectural choices. It observes how you write, review, and merge code to develop an intuitive understanding of your quality standards and design philosophy.

Once installed, just start coding. Taste learning runs in the background and builds your profile from every interaction.

Taste sharing and portability

The architecture of Taste is fundamentally built around the principle that taste should be transferable and composable. Your learned preferences aren't locked in a single project. They can be used across all your projects, shared with your team, and composed together to match your workflow. You can view and manage everything in the Command Code Studio.

Taste learning runs in the background, learning from your interactions. You can turn it on or off at two scopes — per project and for your user account — from the /taste panel inside Command Code.

Changing settings from /taste

Run /taste to open the Taste Settings panel. It has two rows:

  • This project — writes .commandcode/settings.json (committed, shared with your team)
  • User — writes ~/.commandcode/config.json (applies to all your projects)

Where taste is set

Command Code checks these files in order of priority to determine whether taste learning is enabled:

PrioritySet inAffectsShared with team?
1.commandcode/settings.local.jsonlocal setup onlyNo, personal, not committed
2.commandcode/settings.jsonthis projectYes, committed
3~/.commandcode/config.json (User row)all your projects
4(unset)on by default

To disable taste learning for a project, add the following to .commandcode/settings.local.json:

{ "tasteLearning": false }

The override in .commandcode/settings.local.json will take precedence over the project-level setting.

Sharing and managing taste profiles is as simple as using Git. The npx taste CLI tool is your primary interface for pulling, pushing, listing, and composing taste models, which you can view in the Command Code Studio.

This unified interface lets you push your learned preferences to the Command Code Studio, pull taste from teammates or the community, and compose multiple taste profiles to match your workflow.

1

Push taste to studio

You can push your taste to the Command Code Studio and share it with your team.

Push taste to studio

npx taste push --all
2

Pull taste from studio

You can pull a taste profile from the Command Code Studio to your different projects.

Pull taste from studio

npx taste pull
3

List all taste profiles

You can list all the taste profiles available in the Command Code Studio.

List all taste profiles

npx taste list
4

Open a specific taste profile

You can open a specific taste profile in Command Code Studio.

Open a specific taste profile

npx taste open <package>

This pushes your entire project's taste to commandcode.ai/username/taste, and pulls taste from remote to your local project:

Push project taste to remote

npx taste push --all

Pull taste from remote

npx taste pull username/project-name

A taste package is a collection of learnings organized by category (e.g., cli, typescript, architecture). Each package contains a taste.md file with preferences and patterns Command Code has learned.

Taste packages are of three types:

Project

Project specific taste packages are automatically learned and stored in your project.

  • Path: .commandcode/taste/
  • Use case: Learnings unique to this codebase

Global

Your personal taste packages accessible across all projects on your machine. Use the -g flag to push/pull global packages.

  • Path: ~/.commandcode/taste/
  • Use case: Your personal taste that follows you across projects

Remote

Taste packages on cloud under your profile at commandcode.ai.

  • Path: commandcode.ai/username/taste
  • Use case: Team sharing, backup, sync across machines, public packages
Info

By default npx taste push and npx taste pull interact with your remote packages.

File structure

File structure for project and global taste packages:

Project packages

your-project/ └── .commandcode/ └── taste/ ├── taste.md # Main taste file ├── cli/ │ └── taste.md # CLI-specific learnings ├── typescript/ │ └── taste.md # TypeScript preferences └── architecture/ └── taste.md # Architecture patterns

Global packages

~/.commandcode/ └── taste/ ├── cli/ │ └── taste.md ├── react/ │ └── taste.md └── testing/ └── taste.md

You can either push/pull your entire project taste or individual packages.

Project taste (push --all)

When you use push --all, Command Code pushes your entire project's taste as a single unit:

Push project taste

npx taste push --all
  • Bundles all packages from your project together
  • Project name is derived from your current directory
  • Pushed to remote under your namespace

Individual package (push <package>)

When you push a specific package, only that single package is uploaded:

Push individual package

npx taste push cli npx taste push myorg/cli
  • Pushes one package at a time
  • You choose the namespace (personal or organization)
  • Great for sharing specific learnings with others

Complete reference for all npx taste commands. Manage your taste packages across project, global, and remote.

CommandDescription
npx taste pushPush project or individual packages to remote or global
npx taste pullPull packages from remote or global
npx taste listList all available packages
npx taste lintValidate package format and structure
npx taste openOpen packages in your default editor
Info

npx taste and cmd taste are equivalent. cmd taste requires global installation (npm i -g command-code). We recommend using npx taste.

taste push

Push taste packages from your local project to remote or global.

Basic usage

npx taste push [package] [options]

Options

OptionShortDescription
--allPush entire project taste (all packages bundled together)
--global-gPush to global (~/.commandcode/taste)
--overwriteReplace target completely without merging
--publicMake package publicly discoverable (remote only)

Targets

Remote is the default — pushes to cloud under your profile at commandcode.ai/username/taste (use case: team sharing, backup, sync across machines, public packages). Use -g to push to your global packages at ~/.commandcode/taste/ instead (use case: personal taste that follows you across projects).

Push to remote

# Push project taste npx taste push --all # Push individual package npx taste push cli npx taste push myorg/cli

Push to global

npx taste push cli -g

Examples

Push project

npx taste push --all

Bundles all your project's taste packages and uploads them to commandcode.ai/username/taste. Your team can then pull with npx taste pull username/project-name.

Push individual

npx taste push cli

Prompts you to select a namespace (personal or organization), then uploads only the cli package. If you have push access to multiple accounts, you get prompted.

Push with namespace

npx taste push myteam/cli

Uploads the cli package directly to the myteam namespace without prompting.

Push public

npx taste push cli --public

Uploads the package and makes it publicly discoverable by other Command Code users.

Overwrite

npx taste push cli --overwrite

Completely replaces the remote package without merging. By default, push intelligently merges learnings.

Merge behavior

By default, taste push intelligently merges your local learnings with existing remote/global content:

  • New learnings are added
  • Updated learnings (changed confidence) are updated
  • Identical learnings remain unchanged

Use --overwrite to skip merging and completely replace the target.

Output

Example output

✓ Pushed project taste to commandcode.ai/aa/taste (3 packages, 15 learnings)

Individual package output

✓ Pushed 'cli' to commandcode.ai/aa/taste (2 learnings added, 1 updated, 3 unchanged)

taste pull

Pull taste packages from remote or global to your project.

Basic usage

npx taste pull <namespace>/<package> [options]

Options

OptionShortDescription
--global-gPull from global (~/.commandcode/taste)
--allPull all packages (global only)
--overwriteReplace local package without merging

Targets

Remote is the default — pull from cloud under your profile or others' profiles at commandcode.ai/username/taste (use case: get taste from teammates, sync across machines, pull public packages). Use -g to pull from your global packages at ~/.commandcode/taste/ instead.

Pull from remote

# Pull project taste npx taste pull ahmadawais/my-project # Pull individual package npx taste pull ahmadawais/cli

Pull from global

# Pull specific package npx taste pull cli -g # Pull all global packages npx taste pull --all -g

Examples

Pull project

npx taste pull teammate/awesome-project

Downloads all taste packages from teammate/awesome-project to your local project.

Pull individual

npx taste pull ahmadawais/cli

Downloads only the cli package from ahmadawais's profile.

Pull from global

npx taste pull cli -g

Copies the cli package from ~/.commandcode/taste/ to your current project.

Pull all global

npx taste pull --all -g

Copies all packages from your global to the current project.

Overwrite

npx taste pull ahmadawais/cli --overwrite

Completely replaces your local cli package with the remote version.

Merge behavior

By default, taste pull intelligently merges remote learnings with your local content:

  • New learnings from remote are added locally
  • Updated learnings (changed confidence) are updated
  • Identical learnings remain unchanged

Use --overwrite to skip merging and completely replace local content.

Output

Example output

✓ Pulled 'cli' from saqib (1 learning added, 2 unchanged) Saved to: .commandcode/taste/cli/taste.md

taste list

List all available taste packages.

Basic usage

npx taste list [options]

Options

OptionShortDescription
--global-gList packages from global (~/.commandcode/taste)
--remoteList packages from your remote profile at commandcode.ai

Scopes

By default, taste list shows packages in your current project's .commandcode/taste/ directory. Use -g to list your global packages at ~/.commandcode/taste/, or --remote to list packages stored on cloud under your profile at commandcode.ai/username/taste.

List project packages

npx taste list

List global packages

npx taste list -g

List remote packages

npx taste list --remote

Output

The command displays:

  • Package name: The taste package identifier
  • Public badge: [public] for publicly discoverable packages
  • Stats: Star count (★) and download count (↓) for public packages
  • Learning count: Number of learnings in the package
  • Last updated: When the package was last modified

Example output

Taste Packages Stored locally in .commandcode/taste cli (8 learnings, updated 2 hours ago) typescript (5 learnings, updated 1 day ago) architecture (12 learnings, updated just now) Total: 3 packages, 25 learnings

Remote output example

Taste Packages Stored on commandcode.ai/aa/taste my-project (15 learnings, updated 1 hour ago) cli [public] ★5 ↓12 (8 learnings, updated 2 days ago) Total: 2 packages, 23 learnings

taste lint

Validate taste file format and structure. This command checks your taste files for errors and warnings before pushing.

Basic usage

npx taste lint <package>

Arguments

ArgumentDescription
[package]Package name to lint. Optional if using --all.

Options

OptionShortDescription
--global-gLint packages from global (~/.commandcode/taste)
--allLint all packages

Examples

Lint single package

npx taste lint cli

Validates the cli taste package in your local project.

Lint all local

npx taste lint --all

Validates all taste packages in your local project's .commandcode/taste directory.

Lint global

npx taste lint cli -g

Validates the cli package from your global.

Lint all global

npx taste lint --all -g

Validates all packages in your global at ~/.commandcode/taste.

Output

The command provides detailed validation results:

Example output (valid)

taste.md ✓ File is valid cli/taste.md ✓ File is valid Summary: 0 errors, 0 warnings across 2 files ✓ All 2 taste files are valid

Example output (with errors)

cli/taste.md ✗ 2 errors found Line 5: Invalid confidence value (must be between 0 and 1) Line 12: Missing required header Summary: 2 errors, 0 warnings across 1 file ✗ Validation failed

What gets validated

CheckDescription
Markdown structureProper header hierarchy and formatting
Required fieldsPresence of required metadata and sections
Confidence valuesValues must be between 0 and 1
Header formatCorrect header syntax and naming
File encodingValid UTF-8 encoding

Behavior

  • Validates both main taste.md and category-specific taste files
  • Supports automatic header migration for legacy format files
  • Errors indicate problems that must be fixed before pushing
  • Warnings indicate potential issues but don't block operations

taste open

Open a taste package in your default editor. This command provides quick access to edit your taste files directly.

Basic usage

npx taste open <package>

Arguments

ArgumentDescription
<package>Required. The name of the package to open.

Options

OptionShortDescription
--global-gOpen package from global (~/.commandcode/taste)

Examples

Open local

npx taste open cli

Opens the cli taste package from your local project in your default editor.

Open global

npx taste open cli -g

Opens the cli package from your global at ~/.commandcode/taste.

Output

Example output

✓ Opened 'cli' taste package from project

Editor configuration

The command uses your system's default editor set via the $EDITOR environment variable. If not configured, you'll see setup instructions:

Editor setup

# VS Code echo 'export EDITOR="code"' >> ~/.zshrc # Vim echo 'export EDITOR="vim"' >> ~/.zshrc # Nano echo 'export EDITOR="nano"' >> ~/.zshrc # Sublime Text echo 'export EDITOR="subl"' >> ~/.zshrc

After adding the export, restart your terminal or run source ~/.zshrc.

Behavior

  • Opens the taste file in your default editor
  • For category-specific files: Opens at line 1
  • For main taste.md files: Searches for the category heading and opens at that line
  • Automatically navigates to the correct location in the file
Tip

After editing a taste file, use npx taste lint to validate your changes before pushing.

Share your project taste with the team

1

Push your project taste

Push all your project's learnings to remote.

Push project

npx taste push --all
2

Team members pull

Others can pull the project taste to their local setup.

Pull from remote

npx taste pull username/project-name

Use your taste across projects (via global)

1

Push to global

Save a package to your global for use in any project.

Push to global

npx taste push cli -g
2

Pull in another project

In a different project, pull from global.

Pull from global

npx taste pull cli -g

Backup and sync via remote

1

Push to your profile

Back up your taste to commandcode.ai.

Push to remote

npx taste push --all
2

Access from anywhere

Pull your taste on any machine.

Pull from remote

npx taste pull username/project-name

  • Build something cool with Command Code and see your taste in action
  • View and manage your packages in the Command Code Studio
  • Join our Discord community for feedback, requests, and support.