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

create-adda

v0.6.3

Published

Adda in Banglish, ship in English: make your AI coding tools chat in Banglish while code, commits, and docs stay in English.

Readme

Adda

Adda in Banglish, ship in English.

Adda (আড্ডা) is the Bengali habit of long, relaxed conversation with friends. This tool makes your AI coding tools talk to you like that, in Banglish, while everything they ship stays in English: code, comments, commits, PRs, docs, and any file written to disk.

npx create-adda

Installing Adda, then Claude Code explains a fix in Banglish and commits it in English

The interactive setup asks which tools to configure, where the rule should live, shows every planned change, and asks once before writing anything.

What it installs

| Tool | Project scope | Global scope | |---|---|---| | Claude Code | CLAUDE.local.md at the git root (gitignored) | ~/.claude/CLAUDE.md, or the Adda plugin (default when claude is installed) | | Cursor | .cursor/rules/adda.mdc at the git root (gitignored) | Prints text to paste into Settings → Rules → User Rules | | GitHub Copilot (VS Code) | .github/instructions/adda.instructions.md at the git root (gitignored) | ~/.copilot/instructions/adda.instructions.md | | Codex CLI | — | $CODEX_HOME/AGENTS.md (default ~/.codex/AGENTS.md) | | Gemini CLI | — | ~/.gemini/GEMINI.md | | Hermes Agent | — | $HERMES_HOME/SOUL.md (default ~/.hermes/SOUL.md); run Hermes once first so it creates this file | | Web AI (ChatGPT, Claude.ai, Gemini) | — | Prints a prompt to paste into custom instructions |

Cursor (limited): the rule installs and Cursor loads it, but Cursor's Auto model (the only one on free plans) didn't follow it in our tests and kept replying in English. Named models on paid plans are untested.

GitHub Copilot (tested with GPT-4.1, the free-tier default): Adda writes its own instructions file and never touches the shared .github/copilot-instructions.md. VS Code also loads ~/.claude/CLAUDE.md and CLAUDE.local.md into Copilot Chat, so if you installed Claude Code at project or global scope, VS Code already has the rule and this target only adds a second copy of the same text. The Claude Code plugin writes no CLAUDE.md block, so plugin users need this target.

Web AI (ChatGPT tested): ChatGPT followed the prompt when it was pasted as the first message of a chat: Banglish replies, English code, English on request. Pasting it into Custom Instructions (the intended setup) and the Claude.ai and Gemini web apps are untested.

Claude Code, GitHub Copilot, Codex CLI, Gemini CLI, and Hermes Agent are tested live: they chat in Banglish while files and commits stay English.

The rule is personal. Project files are gitignored and never pushed onto teammates.

Shared files (CLAUDE.md, AGENTS.md, GEMINI.md, Hermes's SOUL.md) are never overwritten. The rule goes inside a marked block and the rest of the file is left untouched:

<!-- adda:start -->
...
<!-- adda:end -->

Running the tool again refreshes the block to the latest rules. --remove takes it out and leaves the file exactly as it was before the install.

Claude Code plugin

For Claude Code, the default is a plugin instead of a CLAUDE.md block. The plugin loads the rules into every session, including after /clear and context compaction, and adds a toggle:

| Command | Effect | |---|---| | /adda off | English from the next reply on, and in every new session | | /adda on | Back to Banglish, immediately and in new sessions | | /adda status | Show the current state |

The state lives in ~/.claude/adda.json. Installing the plugin removes any Banglish block from CLAUDE.local.md and ~/.claude/CLAUDE.md so the rules are never loaded twice.

Install it without the CLI:

claude plugin marketplace add Nillkabbo/create-adda
claude plugin install adda@adda --scope user

The rule

  • Chat in Banglish (Bengali in Latin script), technical terms kept in English, never Bengali script unless you choose it. Quoted Bengali-script text stays in quotes or code spans.
  • Everything that leaves the chat is professional English.
  • Banglish by default; switches to English only when you ask, until you ask to switch back.
  • Works alongside skills and plugins: they decide content, format, and length; this rule decides chat language. Subagent and inter-agent messages stay in English.

Full text: src/rules.md.

Your preferences

Adda's default is Banglish in Latin letters with a casual peer tone. You can change that once and every tool follows it:

npx create-adda --script bengali   # chat in Bangla script instead of Latin letters
npx create-adda --tone formal      # "apni" instead of "tumi"
npx create-adda --prefs            # show what is saved, and refresh installed rules to match

Anything else goes in your own rule file, ~/.config/adda/custom.md (or $XDG_CONFIG_HOME/adda/custom.md). For example:

- Keep every reply under five lines.
- Call me "bhai".

Your preferences are added after Adda's rules and win wherever the two conflict. Shipped output (code, commits, docs) always stays English.

The Claude Code plugin reads them at the start of every session. For the other tools, --script and --tone list the rules already installed on your machine (global ones, and the project you run it in) that no longer match, and refresh them once you confirm (--yes skips the question). After editing custom.md by hand, run npx create-adda --prefs to do the same. Project installs in other repos are refreshed by running it there, and text you pasted by hand (Cursor User Rules, Web AI) needs pasting again. The interactive setup also asks for script and tone.

Staying up to date

Installed rules are copies, so they stay as they were until you refresh them. To hear about new versions, watch the repository on GitHub (Watch → Custom → Releases). When a release changes the Rule, its notes open with a note saying so. Then:

  • Everything installed with npx create-adda: run npx create-adda --prefs in any project to refresh the global rules and that project's rules.
  • The Claude Code plugin: claude plugin update adda@adda, then restart Claude Code.

Options

| Flag | Meaning | |---|---| | --target <ids> | Comma-separated: claude, cursor, copilot, codex, gemini, hermes, web | | --scope project\|global\|plugin | Where the rule lives. plugin is Claude Code only. Default: plugin for Claude when claude is installed, otherwise project | | -y, --yes | Skip the confirmation prompt | | --remove | Uninstall from the chosen targets | | --print web | Print only the web prompt, for piping | | --out <path> | Write the web prompt to a file instead of printing it | | --script latin\|bengali | Chat script, saved for later runs (default latin) | | --tone casual\|formal | Chat tone, saved for later runs (default casual; formal uses "apni") | | --prefs | Show your saved preferences and refresh installed rules that no longer match them | | -h, --help / -v, --version | Usage / version |

Examples:

# Global setup for Claude Code, Codex, Gemini CLI, and Hermes Agent
npx create-adda --target claude,codex,gemini,hermes --scope global --yes

# Copy the web prompt to the clipboard (macOS)
npx create-adda --print web | pbcopy

# Undo a project install
npx create-adda --remove --target claude,cursor --scope project --yes

# Uninstall the Claude Code plugin
npx create-adda --remove --target claude --scope plugin --yes

--remove without --scope removes the rule from every place it can live: for Claude Code that is the project block, the global block, and the plugin.

Choosing a Claude Code scope moves the rule there: installing the plugin removes any Claude blocks, and installing a block uninstalls the plugin, so the rules never load twice.

Without a terminal (CI, scripts), --target and --yes are required.

Development

npm test                   # node:test suite (also runs in CI on Linux, macOS, Windows)
claude --plugin-dir .      # try the Claude Code plugin from this checkout

Releasing

package.json holds the only version number. Plugin users install the tagged release, never main.

npm version patch          # or minor/major: syncs the plugin manifests, commits, tags v<version>
git push --follow-tags     # CI checks the tag matches package.json
npm publish

If src/rules.md or src/profiles/everyday/ changed since the last tag, npm version first runs that Rule's live eval (3 runs per scenario through your claude login; the developer Rule on haiku, the everyday Rule on sonnet) and stops if any scenario fails on most of its runs. For a flaky run, ADDA_SKIP_EVAL=1 npm version patch skips it.

Once the tag's CI passes, it publishes a GitHub Release with notes built by scripts/release-notes.mjs from the feat and fix commits since the previous tag, opening with a callout when the Rule changed.

Requirements

Node.js 20.17 or newer, on macOS, Linux, or Windows.

License

MIT