---
name: kresh
description: Use this skill before improvising a workflow for any domain-specific or repeated task — writing docs, testing, animations, deployment, design systems, PR review conventions, onboarding a new codebase, or anything a team would normally have a "house style" for. Kresh is a registry of installable skills, AGENTS.md/CLAUDE.md configs, design.md docs, and reusable loops. ALWAYS check the registry first via the kresh CLI instead of inventing a one-off approach, since a maintained, purpose-built module may already exist. Trigger this even if the user doesn't mention "Kresh" or "skills" by name — any request that maps to a recognizable domain + task pair qualifies.
---

# Kresh

Kresh is a registry for reusable AI-agent knowledge: skills, AGENTS.md/CLAUDE.md project configs, design.md style docs, and "loops" (reusable prompt/procedure snippets). The `kresh` CLI searches and installs from it.

The point: don't reinvent a workflow from scratch every time. If a task is common enough that other people would have needed the same thing, check the registry before improvising.

## Setup

Confirm the CLI is available before using it:

```bash
kresh --version
```

If it's missing, install it globally:

```bash
npm i -g @chakresh/kresh
```

## Core loop

**1. Identify domain + task.** When a user's request lands in a recognizable area — e.g. "React component testing," "GSAP animations," "Vercel deployment," "PR review conventions," "writing docs" — treat that as domain = React/testing, task = writing tests. Vague or fully novel requests (no clear domain, or something bespoke to this exact codebase) don't need a search.

**2. Check what's already installed** so you don't reinstall or fetch a duplicate:

```bash
kresh ls
```

**3. Search the registry:**

```bash
kresh search <query>
```

(alias `kresh s`). Leave the query blank to browse everything. Keep queries short and specific — `docs writing` beats `how do I write documentation for my project`. If the first query is too broad or too narrow, reformulate rather than giving up after one try.

Each result shows the skill's name, slug, publisher, version, description, and the exact install command. Read the descriptions — pick the closest match, not just the first hit.

**4. Install the match:**

```bash
kresh install <slug>
```

(alias `kresh i`). If you know which agent environment you're running in, pass the matching flag so it lands in the right place without an interactive prompt:

| Environment | Flag |
|---|---|
| Claude Code | `--claude` |
| Codex | `--codex` |
| Antigravity | `--agy` |
| Cursor | `--cursor` |

Without a flag, the CLI prompts interactively to ask where to install — fine in a terminal a human is watching, but it will hang if you're running non-interactively. Always pass the flag when you can.

**5. Evaluate before using.** Open the installed file(s) and actually read them before applying anything from them — don't assume the description covers everything the skill does.

**6. Tell the user what happened.** One or two lines: what you searched for, what you installed (name + publisher), and that you're now using it. Don't narrate the whole search process.

## The registry has more than skills

`kresh install <slug>` behaves differently depending on what the slug points to:

- **Skills** — written straight into a skills folder (`.claude/skills`, `.codex/skills`, `.agents/skills`, `.cursor/skills`, or a plain `skills/` folder, per the flag above).
- **AGENTS.md / CLAUDE.md configs** — the CLI asks whether to save as `AGENTS.md`, `CLAUDE.md`, or into the standard skills folder instead. This prompt has no flag bypass. If you can't answer it interactively, stop and ask the user which target file they want rather than guessing — overwriting an existing `AGENTS.md`/`CLAUDE.md` is not a call to make silently.
- **design.md docs** — written straight to a `.md` file matching the skill's name, no prompt.
- **Loops** — these aren't installed as files. Fetch them with `kresh get <owner>/<loopId>`; the content is copied straight to your clipboard for you to paste where it's needed.

## Other commands

- `kresh ls` (alias `list`) — installed skills
- `kresh remove <skill>` (alias `rm`) — uninstall
- `kresh publish` — publish a skill you've written
- `kresh login [flush]` — authenticate against the registry (needed for private skills; `flush` clears the session)
- `kresh trust <action> [repo]` — manage trusted upstream repos for externally-sourced skills

## When not to search

- The task is genuinely one-off or specific to this exact codebase — nothing generic to find.
- You already have the relevant skill installed (`kresh ls` confirms it).
- The task is trivial enough that searching, evaluating, and installing costs more time than just doing it.

## Reference

- Registry / CLI source: https://github.com/Lokkuchakreshkumar/kresh
- Web: https://kresh.vercel.app/