๐Ÿš€ gogo

A simple task runner. Define tasks in YAML, run them from anywhere.

๐Ÿ“„

Simple YAML Config

Define tasks with commands, dependencies, variables, and environment in a single gogo.yaml file.

๐Ÿ‘๏ธ

Watch Mode

Watch source files and automatically re-run tasks when they change.

โšก

Incremental Builds

Source checksums skip tasks that are already up to date.

๐Ÿ”—

Dependencies

Tasks can depend on other tasks, with concurrent execution of independent dependencies.

๐Ÿ”

Secrets

Inject secrets from 1Password into tasks using op:// references.

๐Ÿ“ฆ

Includes

Split large task files into namespaced modules across subdirectories.

Quick Example

# gogo.yaml
tasks:
  # Build the project
  build:
    cmd: go build ./...

  # Run all tests
  test:
    deps: [build]
    cmd: go test ./...
    sources:
      - "*.go"
      - "cmd/*.go"

  # Format and lint
  lint:
    cmds:
      - gofmt -w .
      - golangci-lint run
gogo build       # run the build task
gogo test        # run tests (builds first)
gogo -w test     # watch and re-run tests on changes
gogo -l          # list tasks with descriptions