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

@koushik_xd/dash

v1.5.5

Published

AI-powered Git CLI for commit messages, PRs, and issues

Readme

Dash CLI

AI-powered Git CLI for commit messages, PRs, and GitHub workflows.

Install

npm install -g @koushik_xd/dash

Then run:

dash setup

Note: If you have the system shell dash installed (common on Debian/Ubuntu), use dash-cli instead of dash for all commands.

Requirements

Quick start

dash config set GROQ_API_KEY=gsk_your_key_here

dash setup

git add .
dash commit

dash pr

Commands

dash commit

dash commit [-g <n>] [-x <files>] [-a] [-t <type>]

| Flag | Description | | ----------------------- | ---------------------------- | | -g, --generate <n> | Generate n messages (max: 5) | | -x, --exclude <files> | Exclude files | | -a, --all | Stage all tracked files | | -t, --type <type> | Use conventional format |

Examples:

dash commit
dash commit --all
dash commit --exclude dist/ --generate 3
dash commit --type conventional

dash pr

dash pr [create|list|view|merge] [flags]

| Subcommand | Description | | ---------- | ---------------- | | create | Create/edit PR | | list | List open PRs | | view | View current PR | | merge | Merge current PR |

Create flags:

| Flag | Description | | --------------------- | --------------- | | -b, --base <branch> | Base branch | | -d, --draft | Create as draft |

Merge flags:

| Flag | Description | | -------------- | ------------ | | -s, --squash | Squash merge | | -m, --merge | Merge commit | | -r, --rebase | Rebase merge |

Examples:

dash pr
dash pr --draft --base develop
dash pr list
dash pr merge --squash

dash issue

dash issue list [-s <state>] [-l <n>]

| Flag | Description | | --------------------- | ------------------------ | | -s, --state <state> | open, closed, all | | -l, --limit <n> | Max issues (default: 20) |

Examples:

dash issue list
dash issue list --state all --limit 10

dash config

dash config <get|set> <key=value...>

Examples:

dash config set GROQ_API_KEY=gsk_xxx
dash config set model=llama-3.3-70b-versatile
dash config get GROQ_API_KEY model

dash hook

dash hook <install|uninstall>

Installs git hook for auto-message generation.

dash setup

dash setup

Checks dependencies and configures GitHub CLI integration.

Configuration

Config stored in ~/.dash:

| Option | Default | Description | | -------------- | ------------------ | ------------------ | | GROQ_API_KEY | - | API key (required) | | model | openai/gpt-oss-20b | AI model | | generate | 1 | Commit suggestions | | type | - | Use conventional | | max-length | 100 | Max message length | | locale | en | Message language | | timeout | 10000 | API timeout (ms) | | gh_enabled | true | Enable gh features |

Custom prompts

Create a .dash folder in your repository:

  • .dash/commit.md - Overrides commit prompt
  • .dash/pr.md - Overrides PR prompt

When these files exist, dash uses them instead of the built-in prompts.

Monorepo support: Dash searches up the directory tree, so you can have:

monorepo/
├── .dash/commit.md              # Root rules
└── packages/
    ├── api/.dash/commit.md      # API rules
    └── web/.dash/commit.md      # Web rules

Each package can have its own prompts.

Environment variables

| Variable | Description | | -------------- | ----------- | | GROQ_API_KEY | API key | | HTTPS_PROXY | HTTP proxy |

GitHub CLI

Requires gh:

  • dash pr
  • dash issue

Works without gh:

  • dash commit
  • dash hook
  • dash config
  • dash setup

Troubleshooting

"dash" runs the system shell instead of the CLI

Many Linux systems (Debian, Ubuntu, etc.) have /usr/bin/dash (the Debian Almquist Shell) installed. If your npm bin directory is lower in PATH priority, the system shell runs instead.

Solution: Use dash-cli instead of dash:

dash-cli setup
dash-cli commit
dash-cli pr

Both dash and dash-cli are provided as binary names. Use whichever works on your system.

Alternative: Fix your PATH to prioritize npm globals:

# Check where dash resolves to
which dash

# Check npm global bin location
npm bin -g

# Add npm bin to PATH (in .bashrc/.zshrc)
export PATH="$(npm bin -g):$PATH"

Development

git clone https://github.com/koushikxd/dash-cli.git
cd dash/packages/cli

pnpm install
pnpm build
pnpm dev
pnpm test

Structure

packages/cli/
├── src/
│   ├── commands/      # Command implementations
│   ├── utils/         # Git, config, API helpers
│   ├── errors.ts
│   └── index.ts
├── tests/
└── dist/

Contributing

  1. Fork it
  2. Create a feature branch
  3. Make changes
  4. Run tests: pnpm test
  5. Use dash to commit: dash commit
  6. Use dash for PR: dash pr

Acknowledgments

Inspired by noto by Sithija Nelusha Silva.

License

MIT