CLI Reference
Synopsis
Section titled “Synopsis”ahoy [flags] [command] [args...]Global flags
Section titled “Global flags”| Flag | Short | Description |
|---|---|---|
--file <path> |
-f |
Use a specific config file instead of searching for .ahoy.yml |
--verbose |
Enable verbose output | |
--version |
Print the Ahoy version and exit | |
--help |
-h |
Show help |
Built-in commands
Section titled “Built-in commands”ahoy config v3
Section titled “ahoy config ”Management commands for your Ahoy configuration.
ahoy config init [url]
Section titled “ahoy config init [url]”Downloads a starter .ahoy.yml into the current directory. Without a URL it fetches the official examples file (30+ ready-to-use commands). Pass a custom URL to download your own template.
ahoy config init # Download official examplesahoy config init https://... # Download a custom templateahoy config init --force # Overwrite an existing .ahoy.ymlahoy config validate
Section titled “ahoy config validate”Checks your .ahoy.yml (and any imported files) for common issues:
- Unsupported or missing fields
- Missing import files (not marked
optional: true) - Features that require a newer version of Ahoy
ahoy config validateErrors are always shown. Warnings are shown in verbose mode (--verbose). The validator also provides actionable suggestions when it finds a problem.
ahoy help
Section titled “ahoy help”ahoy help # Root help listingahoy help <command> # Help for a specific commandDeprecated: ahoy init
Section titled “Deprecated: ahoy init”ahoy init still works but is deprecated. It redirects to ahoy config init with a notice. Prefer ahoy config init in any new scripts or documentation.
Config file discovery
Section titled “Config file discovery”Ahoy searches for .ahoy.yml in the following order:
- The file specified by
--file/-f .ahoy.ymlin the current directory.ahoy.ymlin each parent directory, up to the filesystem root
The directory containing the found config file becomes the working directory for all commands.
Passing arguments to commands
Section titled “Passing arguments to commands”Arguments after the command name are passed through as bash positional parameters:
ahoy greet World # $1 = "World"ahoy copy a.txt b.txt # $1 = "a.txt", $2 = "b.txt"ahoy run npm test # $@ = "npm test"Shell completion
Section titled “Shell completion”# Generate and install the completion scriptmkdir -p ~/.bash_completion.dahoy --generate-bash-completion > ~/.bash_completion.d/ahoyecho '. ~/.bash_completion.d/ahoy' >> ~/.bashrcsource ~/.bashrcUse the dedicated plugin at ahoy-cli/zsh-ahoy. See the Shell Autocompletion guide for setup instructions.
Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 |
Success |
1 |
General error (command failed, config not found, etc.) |
Ahoy passes the exit code of the underlying command through unchanged.
Environment variables set by Ahoy v3
Section titled “Environment variables set by Ahoy ”Ahoy injects the following variables into every command’s environment:
| Variable | Value |
|---|---|
AHOY_COMMAND_NAME |
The name of the command being run |
AHOY_CMD |
Path to the ahoy binary |
These are available to any script invoked through Ahoy.