Complete reference for all Goal commands and options.
These options can be used with any Goal command:
| Option | Short | Description |
|---|---|---|
--config PATH |
-c PATH |
Path to goal.yaml config file |
--markdown |
Β | Use markdown output format (default) |
--ascii |
Β | Use ASCII output format |
--help |
-h |
Show help message |
--version |
Β | Show version and exit |
goal (default)Run the interactive push workflow.
goal [OPTIONS]
Options:
--bump, -b {patch,minor,major}: Version bump type (default: patch)--yes, -y: Skip all prompts (run automatically)--all, -a: Automate all stages including tests, commit, push, and publish--dry-run: Show what would be done without doing itExamples:
goal # Interactive workflow
goal --bump minor # Interactive with minor bump
goal --yes # Automatic workflow
goal --all # Full automation
goal --dry-run # Preview changes
goal pushAdd, commit, tag, and push changes to remote.
goal push [OPTIONS]
Options:
--bump, -b {patch,minor,major}: Version bump type (default: patch)--no-tag: Skip creating git tag--no-changelog: Skip updating changelog--no-version-sync: Skip syncing version to project files--message, -m TEXT: Custom commit message--dry-run: Show what would be done without doing it--yes, -y: Skip all prompts--split: Create separate commits per change type--ticket TEXT: Ticket prefix for commit titlesExamples:
goal push # Interactive
goal push --yes # Automatic
goal push --bump minor # Minor version bump
goal push -m "Custom message" # Custom message
goal push --split # Split by type
goal push --no-tag # No git tag
goal push --dry-run # Preview
goal initInitialize Goal in current repository.
goal init [OPTIONS]
Options:
--force, -f: Overwrite existing goal.yamlCreates:
VERSION file with initial versionCHANGELOG.md with templategoal.yaml with auto-detected settingsExamples:
goal init # Initialize if not exists
goal init --force # Regenerate config
goal configView or manage user configuration stored in ~/.goal.
goal config [OPTIONS]
Options:
--reset: Reset configuration and run setup again--show: Show current configuration (default)Configuration includes:
Examples:
goal config # Show current configuration
goal config --reset # Reset and reconfigure
What it shows:
======================================================================
π Goal User Configuration
======================================================================
Config file: /home/tom/.goal
Current settings:
Author name: Tom Sapletta
Author email: info@softreck.com
License: Apache License 2.0 (Apache-2.0)
π‘ Tip: Run 'goal config --reset' to reconfigure
goal statusShow current git status and version info.
goal status [OPTIONS]
Options:
--markdown/--ascii: Output format (default: markdown)Shows:
goal versionShow or bump version.
goal version [OPTIONS]
Options:
--type, -t {patch,minor,major}: Version bump type (default: patch)Examples:
goal version # Show current and next versions
goal version --bump minor # Show next minor version
goal check-versionsValidate version consistency across project files, README badges, and published registry versions.
goal check-versions [OPTIONS]
Options:
--update-badges: Update README badges if they donβt match current versionBehavior:
Examples:
goal check-versions # Check all versions
goal check-versions --update-badges # Check and update badges
Output:
π Version Check for v2.1.33
Detected project types: python
π¦ Registry Versions:
β
python: Version 2.1.33 is up to date
π·οΈ README Badges:
β
Badges are up to date
π Local Version Files:
β
pyproject.toml: 2.1.33
β
All version files are consistent
π Summary:
β
All versions are consistent and ready for publishing!
goal publishPublish the current version to package registries.
goal publish [OPTIONS]
Options:
--yes, -y: Skip confirmation prompts--dry-run: Show what would be published without doing itBehavior:
dist/)Examples:
goal publish # Interactive
goal publish --yes # Automatic
Note: If a Makefile with a publish target exists, goal publish will use make publish instead.
goal commitGenerate a smart commit message for current changes.
goal commit [OPTIONS]
Options:
--detailed, -d: Generate detailed commit message with body--unstaged, -u: Analyze unstaged changes instead of staged--markdown/--ascii: Output format (default: markdown)--ticket TEXT: Ticket prefix for commit titleExamples:
goal commit # Simple message
goal commit --detailed # Detailed message with body
goal commit --unstaged # Analyze unstaged changes
goal configManage goal.yaml configuration.
goal config showShow current configuration.
goal config show [OPTIONS]
Options:
--key, -k KEY: Show specific config key (dot notation)Examples:
goal config show # Show full config
goal config show -k project # Show project section
goal config show -k git.commit.strategy # Show specific key
goal config getGet a configuration value.
goal config get KEY
Arguments:
KEY: Configuration key (dot notation)Examples:
goal config get project.name
goal config get versioning.files
goal config setSet a configuration value.
goal config set KEY VALUE
Arguments:
KEY: Configuration key (dot notation)VALUE: Value to set (JSON parsed for complex types)Examples:
goal config set git.commit.scope "my-app"
goal config set versioning.bump_rules.minor 100
goal config set versioning.files '["VERSION", "pyproject.toml:version"]'
goal config validateValidate goal.yaml configuration.
goal config validate
Returns:
goal config updateUpdate goal.yaml based on project detection.
goal config update
Updates:
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Invalid arguments |
| 3 | Git repository not found |
| 4 | Configuration error |
| 5 | Tests failed (when using βyes) |
| Variable | Description |
|---|---|
PYPI_TOKEN |
PyPI authentication token |
NPM_TOKEN |
npm authentication token |
CARGO_REGISTRY_TOKEN |
Cargo registry token |
GITHUB_TOKEN |
GitHub token for releases |
Goal looks for goal.yaml in this order:
--config# Make changes...
goal # Interactive commit and push
goal --all --bump patch # Full automation
goal push -m "fix: critical bug" --yes
goal push --no-tag --no-changelog # No release on feature branch
goal push --split # Separate commits by type
goal -c staging.yaml --all # Use staging config