Quick answers.
Errors
"dash" runs the system shell instead of the CLI
Many Linux systems (Debian, Ubuntu) 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:
dash-cli setup
dash-cli commit
dash-cli prBoth dash and dash-cli are provided as binary names—use whichever works on your system.
Alternative: Fix your PATH to prioritize npm globals:
# Add to your .bashrc or .zshrc
export PATH="$(npm bin -g):$PATH""Please set your Groq API key"
dash config set GROQ_API_KEY=gsk_your_key_hereGet your key at console.groq.com/keys.
"No staged changes found"
git add .
dash commitOr:
dash commit --all"GitHub CLI (gh) not found"
Install from cli.github.com, then:
gh auth login
dash setupDon't want gh? Disable it:
dash config set gh_enabled=false"Request too large" (413)
Exclude files:
dash commit --exclude dist/ --exclude node_modules/Or commit in smaller batches.
"No commit messages were generated"
- Check your API key:
dash config get GROQ_API_KEY - Check staged changes:
git status - Check internet connection
Questions
Why Groq?
Fast, cheap, reliable. Results in seconds, not minutes.
Does dash send my code?
Only your git diff or commit log, not your full codebase. For large diffs, it sends a summary.
How much does it cost?
Groq pricing: groq.com/pricing. The default model is cheap.
Large diffs?
Dash auto-handles them. Creates summaries, includes code snippets, never hits limits.
Git hooks?
dash hook installThen git commit works normally. Dash generates the message.
CLI vs hook mode?
- CLI (
dash commit) - Interactive, review before commit - Hook (
dash hook install) - Auto-generates, opens in editor
Conventional commits?
dash commit --type conventionalOr set in config:
dash config set type=conventionalExclude files?
dash commit --exclude dist/ --exclude package-lock.jsonCustom prompts?
Create a .dash folder in your repository with these files:
.dash/commit.md- Custom commit message prompt.dash/pr.md- Custom PR description prompt
When these files exist, dash uses them instead of the built-in prompts.
Example .dash/commit.md:
# Commit Guidelines
Use present tense. Include ticket numbers.
Keep under 70 characters.Monorepo support: Dash searches up the directory tree to find .dash prompts. You can have global rules at the root and package-specific rules in subdirectories. When you run dash commit, it uses the nearest .dash folder it finds.
Works in monorepos?
Yes! Dash searches up the directory tree for .dash prompts, so you can have:
monorepo/
├── .dash/commit.md # Global rules for all packages
└── packages/
├── api/.dash/commit.md # API-specific rules
└── web/.dash/commit.md # Web-specific rulesRun dash commit anywhere, and it uses the nearest .dash folder.
GitHub required?
Only for dash pr and dash issue commands. dash commit and dash hook work without GitHub CLI.
Update dash?
npm update -g @koushik_xd/dash
dash --version