launchr is a configuration-driven CLI that turns typed flags into URLs and opens them in your default browser.
launchr requires Node.js 20+.
Install globally:
npm install -g launchr-cli
launchr helpRun without installing globally:
npx launchr-cli helpLocal development instructions are in CONTRIBUTION.md.
- Configuration-driven custom commands defined in JSON.
- Interactive command creation with
launchr addfor command metadata, URL template, and parameter definitions. - Typed runtime parameters with support for
string,integer,boolean, andsingle-choice-list. - Short-flag interface for all parameters (for example
-q,-e,-t). - Optional interactive mode with
-i/--interactivefor prompting missing required parameters. - Dynamic help and usage output for both built-in and custom commands.
- URL templating with named placeholders (for example
{query}) mapped to parameter keys. - Automatic config bootstrap prompt when the config file does not exist.
- Strong validation for config schema, placeholder integrity, unknown flags, required values, types, and allowed values.
launchr
launchr help
launchr list
launchr add
launchr --interactive <custom-command> [flags]
launchr <custom-command> help
launchr <custom-command> [flags]launchr init remains available as a deprecated alias in v1.x and will be removed in v2.0.0.
Configuration is stored at:
~/.launchr-configurations/launchr-commands.json
If the file is missing, launchr prompts to create it. If you decline, the CLI exits with:
Configuration file is required to use this CLI.
Generate the completion function:
mkdir -p ~/.zsh/completions
launchr completion zsh > ~/.zsh/completions/_launchrAdd this to ~/.zshrc if it is not already present:
fpath=(~/.zsh/completions $fpath)
autoload -Uz compinit
compinitAfter reloading your shell, launchr <TAB> completes built-in commands and your saved command names from ~/.launchr-configurations/launchr-commands.json.
Use -i or --interactive before the custom command to prompt for missing required parameters instead of exiting immediately:
launchr -i grafana -q errorThis keeps the default behavior strict for scripts and automation, while still allowing interactive data entry in a terminal.
{
"grafana": {
"description": "some useful information",
"url": "https://grafana.com/{environments}/{query}/{timeframe}",
"parameters": {
"environments": {
"type": "single-choice-list",
"flag": "e",
"defaultValue": "staging",
"required": true,
"values": ["staging", "production"]
},
"query": {
"type": "string",
"flag": "q",
"defaultValue": "error",
"required": true
},
"timeframe": {
"type": "single-choice-list",
"flag": "t",
"defaultValue": "5m",
"required": true,
"values": ["5m", "10m", "1h", "6h"]
}
}
}
}launchr list
launchr grafana help
launchr grafana -e production -q error -t 5m
launchr -i grafana -q error