Setup Smithy CLI

April 28, 2026 ยท View on GitHub

A GitHub Action that installs the Smithy CLI onto your Actions runner. It works on Linux, macOS, and Windows, caches the CLI binary to avoid redundant downloads, and automatically caches Maven dependencies when your smithy-build.json declares them.

Usage

Add the action to any workflow step. The simplest form installs the latest release:

steps:
  - uses: actions/checkout@v4
  - uses: smithy-lang/setup-smithy-cli@v1
  - run: smithy build

To pin a specific version:

steps:
  - uses: actions/checkout@v4
  - uses: smithy-lang/setup-smithy-cli@v1
    with:
      version: '1.56.0'
  - run: smithy build

If your smithy-build.json lives somewhere other than the repository root, point the action at it so Maven dependency caching works correctly:

steps:
  - uses: actions/checkout@v4
  - uses: smithy-lang/setup-smithy-cli@v1
    with:
      config: path/to/smithy-build.json
  - run: smithy build

The installed version is available as an output for downstream steps:

steps:
  - uses: actions/checkout@v4
  - id: smithy
    uses: smithy-lang/setup-smithy-cli@v1
  - run: echo "Installed ${{ steps.smithy.outputs.cli-version }}"

Inputs

NameRequiredDefaultDescription
versionNoLatest releaseSmithy CLI version to install. A leading v prefix is stripped automatically.
configNosmithy-build.jsonPath to smithy-build.json used for Maven dependency caching.

Outputs

NameDescription
cli-versionThe resolved version string that was installed.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.