Dash works great by default. Configure it when you need to.
How it works
Configuration lives in ~/.dash. Don't edit it manually—use these commands:
dash config get <key>
dash config set <key>=<value>Examples:
dash config get GROQ_API_KEY
dash config set model=llama-3.3-70b-versatileSet multiple at once:
dash config set generate=3 locale=enOptions
GROQ_API_KEY
Required. Get it from console.groq.com/keys.
dash config set GROQ_API_KEY=gsk_your_key_heremodel
Default: openai/gpt-oss-20b
Which AI model to use. You can change models using the dedicated model command or via config.
Using the model command (recommended):
dash modelThis opens an interactive prompt to select from popular models or enter a custom one. It also shows the Groq models documentation link.
Quick commands:
dash model list
dash model set llama-3.3-70b-versatileUsing config:
dash config set model=llama-3.3-70b-versatilePopular models:
llama-3.3-70b-versatile- Best qualityllama-3.1-8b-instant- Fast responsesmixtral-8x7b-32768- Large context window (good for big diffs)gemma2-9b-it- Google modelopenai/gpt-oss-20b- Default
Browse all available models at console.groq.com/docs/models.
generate
Default: 1
How many commit messages to generate (max: 5). More options = more tokens used.
dash config set generate=3type
Default: none
Use conventional for conventional commit format:
dash config set type=conventionalClear it:
dash config set type=max-length
Default: 100
Max characters for commit messages (20-200).
dash config set max-length=72locale
Default: en
Language for messages. Use ISO 639-1 codes (en, es, ja, etc).
dash config set locale=jatimeout
Default: 10000 (10 seconds)
API timeout in milliseconds.
dash config set timeout=20000gh_enabled
Default: true
Disable GitHub CLI features if you don't have gh installed.
dash config set gh_enabled=falseproxy
HTTP/HTTPS proxy for API requests.
dash config set proxy=http://proxy.example.com:8080Custom prompts
Override the default AI behavior with your own rules. Create a .dash folder in your repository root with these files:
.dash/commit.md
Custom prompt for commit messages. When this file exists, dash uses it instead of the built-in system prompt.
# Commit Message Guidelines
## Format
Use conventional commits: type: description
## Style Rules
- Use present tense
- Keep under 70 characters
- Include ticket numbers when available
## Examples
- feat: add user authentication
- fix: resolve login redirect bug (#123).dash/pr.md
Custom prompt for pull requests. Overrides the default PR generation prompt.
# Pull Request Guidelines
## Title Format
type: concise description (max 72 chars)
## Description Structure
### Summary
What changed and why
### Changes
- List specific changes
- Include component names
### Testing
How changes were verified
### Related Issues
Fixes #123Monorepo support
Dash searches up the directory tree to find .dash prompts. This works perfectly in monorepos:
monorepo/
├── .dash/
│ ├── commit.md # Root-level prompts
│ └── pr.md
├── packages/
│ ├── api/
│ │ └── .dash/
│ │ └── commit.md # API-specific prompts
│ └── web/
│ └── .dash/
│ └── commit.md # Web-specific promptsWhen you run dash commit in packages/api/, it uses packages/api/.dash/commit.md. If not found, it searches up and uses the root .dash/commit.md.
This lets you have:
- Global rules at the root
- Team-specific rules in each package
- Project-specific rules in subdirectories
Environment variables
Override config with environment variables:
export GROQ_API_KEY="your-key"
export HTTPS_PROXY="http://proxy:8080"Flag priority
Command flags override config:
dash commit --generate 3This uses 3 even if your config says 1.
Examples
dash config set GROQ_API_KEY=gsk_xxx generate=3
dash config set type=conventional max-length=72
dash config get model locale