npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

kevin-copilot

v0.3.2

Published

Make GitHub Copilot responses terse — across VS Code Chat, Copilot CLI, cloud agent, and code review. One command drops AGENTS.md, copilot-instructions.md, chat modes, and prompts into your repo. Measured 40–75% fewer response tokens without hurting corre

Readme

kevin-copilot

Make GitHub Copilot talk like Kevin. VS Code Chat, Copilot CLI, cloud agent, code review — every response, not just chat. One command. Measured 40–75% fewer response tokens. Zero hit to correctness.

npm license node copilot

"Why waste time say lot word when few word do trick?" — Kevin Malone, accounting department, Dunder Mifflin Scranton


npx kevin-copilot init

Done. Open Copilot anywhere — VS Code Chat, copilot CLI, cloud agent, PR review. Ask thing. Get answer. No filler. No "Great question!". No closing paragraph explaining what it just said.


Problem

Default Copilot:

Great question! To reverse a string in Python, you can use slicing. Here's how you would do it: s[::-1]. This works by specifying a step of -1, which iterates through the string from end to start. Let me know if you'd like more examples or have any other questions!

You wanted s[::-1]. You paid tokens for 56 other words.

Kevin:

s[::-1] — slice step -1.

Same answer. 85% fewer tokens. Kevin save you token. Kevin hero.


Measured savings (not vibes)

Three-arm eval. 10-prompt suite. Each Kevin mode must beat a generic "be terse" control by ≥5 percentage points and clear an absolute reduction threshold. Otherwise the eval fails and the CI gate fails and Kevin is sad.

| Mode | Target | Measured | vs. generic-terse | |------|--------|----------|-------------------| | lite | ≥40% | 66.5% | +7.8 pp | | full | ≥60% | 79.3% | +20.6 pp | | ultra | ≥75% | 88.8% | +30.0 pp |

This is better than Kevin's chili. Reproduce with npm run evals in the source repo. Full report at evals/report.md.


Install

# zero-install — run directly
npx kevin-copilot init

# or install globally
npm install -g kevin-copilot
kevin-copilot init

# or as a dev dependency
npm install --save-dev kevin-copilot
npx kevin-copilot init
# pick voice level
kevin-copilot init --intensity full

# see what it would do, touch nothing
kevin-copilot init --dry-run

# merge into existing AGENTS.md / copilot-instructions.md
kevin-copilot init --merge

Requires Node 18+. Writes 9 files. Idempotent. If you already have an AGENTS.md or .github/copilot-instructions.md, use --merge — it wraps Kevin inside sentinel markers so you can re-run it without making a mess. Kevin is careful with documents. He learned this after Keleven.

Uninstall

kevin-copilot uninstall

# preview what would be removed
kevin-copilot uninstall --dry-run

Removes every file Kevin installed. If you used --merge, the sentinel block is stripped and your original content stays. Customized files are skipped. Empty directories are cleaned up. Kevin leaves no crumbs. Except chili crumbs.

Update

# pull latest templates and re-install
kevin-copilot update

# update with a different intensity
kevin-copilot update --intensity ultra

Removes old files (including legacy chatmodes), then re-installs with the latest templates. One command. Kevin upgrades.


The three Kevins

| Mode | Voice | Cap | |------|-------|-----| | Kevin Lite | Short paragraphs. No preamble. No sign-off. | ~120 words | | Kevin Full | Fragments. Bullets. Articles optional. | ~60 words | | Kevin Ultra | label: value or code-only. No prose at all. | ~25 words | | Kevin Accountant | Spreadsheet-terse. Numbers forward. Line-item reviews. | ~40 words |

Lite is Kevin in a meeting. Full is Kevin at his desk. Ultra is Kevin carrying a pot of chili. Accountant is Kevin doing the books — every answer reads like a ledger entry.


Where Kevin shows up

Kevin writes to two tiers of files — what GitHub Copilot itself reads.

Tier 1 — always-on, every surface

AGENTS.md and .github/copilot-instructions.md are loaded automatically by Copilot wherever instructions are supported. No mode picker, no slash command, no opt-in. You install once, every response gets shorter.

| Surface | Honors AGENTS.md | Honors copilot-instructions.md | |---|:---:|:---:| | VS Code Copilot Chat | ✅ | ✅ | | Copilot CLI (copilot / gh copilot) | ✅ | ✅ | | Copilot coding agent (cloud) | ✅ | ✅ | | Copilot code review | — | ✅ | | Inline code completion (ghost text) | — | — |

Inline ghost-text completion ignores instruction files on every tool — that's a platform limit, not a Kevin limit. Everywhere else Copilot actually writes prose, Kevin shortens it.

Tier 2 — VS Code Chat extras

These are VS Code–specific features layered on top. They won't surface in the CLI or cloud agent, but they're handy in the editor.

Custom agents → dropdown picker. Top of Copilot Chat panel, there's an agent dropdown. After init, you'll see:

  • Kevin Lite
  • Kevin Full
  • Kevin Ultra
  • Kevin Accountant

Pick one. That's it. Everything you ask in that thread inherits the voice.

Slash prompts → type / in chat.

  • /kevin-commit — conventional-commit message from staged diff. No body unless needed.
  • /kevin-review — single-line PR comments: L42: bug: null deref on empty input. guard with if (!x) return.
  • /kevin-help — quick reference card.

Runtime steering (say it in chat)

  • talk like Kevin — engage voice even in default mode
  • fewer words — step down one level (lite → full → ultra)
  • stop Kevin — back to default Copilot voice

The token receipt

Every substantive prose reply ends with one line:

— saved ~N tokens vs baseline

Best estimate. No math required. Omitted for commit messages, PR review comments, help output, and pure code answers (don't break syntax highlighting over a joke).

This is the only footer. Kevin does not add "Let me know if you have any questions!". Kevin assumes you will have questions. Kevin will answer them when they arrive. Kevin is not worried.


What it writes

AGENTS.md
.github/
  copilot-instructions.md
  agents/
    kevin-lite.agent.md
    kevin-full.agent.md
    kevin-ultra.agent.md
    kevin-accountant.agent.md
  prompts/
    kevin-commit.prompt.md
    kevin-review.prompt.md
    kevin-help.prompt.md

Nine files. One purpose. Shorter Copilot.


Flags

init flags

| Flag | Effect | |------|--------| | --target <dir> | Where to write. Default: . | | --intensity lite\|full\|ultra | Voice level. Default: lite | | --force | Overwrite on conflict | | --merge | Append Kevin between sentinel markers. Idempotent. | | --dry-run | Print planned writes, touch nothing |

--force and --merge are mutually exclusive. Like Kevin and diets.

Change modes anytime — re-run init with a different --intensity plus --force or --merge.

uninstall flags

| Flag | Effect | |------|--------| | --target <dir> | Where to remove from. Default: . | | --dry-run | Print planned removals, touch nothing |


Prior art & inspiration

Kevin stands on the shoulders of shorter people:

Kevin is Copilot-first. Caveman is Claude-first. You can use both. Both do trick. Few word.


FAQ

Does this hurt correctness? No. Correctness always wins over style. Kevin is not allowed to skip reasoning, drop warnings, or omit safety checks. Kevin is terse, not reckless. Kevin has made mistakes with money. He is not making them with your code.

Does it work in the copilot CLI? Yes. AGENTS.md and .github/copilot-instructions.md are read by Copilot CLI, cloud agent, and VS Code Chat alike. Run copilot from a Kevin-initialized repo and you get terse answers. Chat modes and slash prompts are VS Code Chat extras on top — they don't appear in the CLI, but they don't need to; the instructions already shortened everything.

Does it work in Cursor / Cline / Claude Code / Windsurf? AGENTS.md is honored by most modern agent surfaces. The .github/copilot-instructions.md, .agent.md, and .prompt.md files are GitHub Copilot–specific. Kevin's custom agents won't appear in other tools, but the instructions still flatten output noticeably.

Can I uninstall Kevin? Yes. npx kevin-copilot uninstall. Removes all Kevin files. If you used --merge, only the Kevin sentinel block is removed — your original content stays. Run --dry-run first to see what it'll do. Kevin respects boundaries. Eventually.

Can I change intensity later? Yes. npx kevin-copilot init --intensity ultra --force or --merge. Kevin adapts. He once switched from chili to cookies. He can switch modes.

What if my repo already has AGENTS.md? Use --merge. Sentinel markers. Safe to re-run. Kevin will not overwrite your work. He is not that kind of Kevin.

Why is it called Kevin? Because Kevin Malone, a fictional accountant, delivered the thesis of this entire project in one line on a television show and nobody has improved on it since: "Why waste time say lot word when few word do trick."

This repo is a fan project. The Office, Dunder Mifflin, and the character Kevin Malone are property of their respective owners (NBCUniversal). No endorsement, affiliation, or ownership is implied. Kevin Malone did not sign off on this. Kevin Malone is eating chili.

Is this a joke? The README is a joke. The savings are not.


Development

git clone https://github.com/shyamsridhar123/kevin-copilot
cd kevin-copilot
npm install
npm run build
npm test        # 49 tests
npm run evals   # three-arm reduction eval, exits non-zero on regression

Verify the numbers yourself

npm run evals

Tokenizes 10 prompts × 5 arms (baseline, generic-terse, lite, full, ultra) using gpt-tokenizer (cl100k_base). Computes per-prompt and aggregate reduction percentages. Writes a full report to evals/report.md. Exits non-zero if any Kevin mode falls below its threshold or fails to beat the generic-terse control by ≥5 percentage points. No API calls, no credentials — runs entirely offline.

PRs welcome. Keep them short. Kevin would.


License

MIT. See LICENSE.