---
schema_version: 1
route: /t/heroku.md
tool: "heroku"
---

# sincecutoff.com /t/heroku — Heroku CLI

- name: Heroku CLI
- kind: cli
- children: none
- homepage: <https://github.com/heroku/cli>

Changes to the tools coding agents drive, since a model's training cutoff, each linked to its first-party source. Check installed versions and limitations before acting; a cutoff date does not establish what a model knows.
Original editorial content: [Apache 2.0](https://sincecutoff.com/v1/data-license.txt), by [0xPatrick](https://0xpatrick.dev). Preserve applicable license and [NOTICE](https://sincecutoff.com/notice.txt) attribution when redistributing. Third-party source text and examples retain their own rights. [License scope and attribution](https://sincecutoff.com/v1/license.json).
To stay current, read the changes feed: [`/v1/changes.md?tool=heroku`](https://sincecutoff.com/v1/changes.md?tool=heroku) (or `.json`), adding `since=YYYY-MM-DD` for your training cutoff. Entries for registered children are included; the registry itself is `/v1/tools.json`. How to page and save your place: [llms.txt](https://sincecutoff.com/llms.txt).

### heroku data:pg:get-ca retrieves a Postgres CA bundle (2026-10-01)
- slug: heroku-data-pg-get-ca-retrieves-a-postgres-ca-bundle-c83c6074800f
- score: 0.93

How to use it:

For an Essential or Advanced Postgres database, retrieve the CA bundle for its Heroku region. Use that bundle and `sslmode=verify-full` in the client connection URL.

Examples:

```
heroku data:pg:get-ca --region us
```

```
psql "$(heroku config:get TEST_URL -a <app>)?sslmode=verify-full&sslrootcert=$HOME/.postgresql/us-east-1-bundle.pem"
```

- why_it_matters: Configure a client connection to an Essential or Advanced Postgres database to verify TLS.
- sources: <https://github.com/heroku/cli/releases/tag/v11.11.0>, <https://github.com/heroku/cli/pull/3880>, <https://github.com/heroku/cli/blob/v11.11.0/src/commands/data/pg/get-ca.ts>, <https://devcenter.heroku.com/articles/connecting-to-heroku-postgres-databases-from-outside-of-heroku>
- gotchas: "Version: v11.11.0"; "--region <value> (required): Heroku region or `global` for the AWS global CA bundle. `us` maps to `us-east-1`; `eu` maps to `eu-west-1`."; "sslmode=verify-full (required): Connection URL parameter used in the release-note example for a verifiable TLS connection."; "sslrootcert=<path> (required): Connection URL parameter set to the retrieved CA bundle path in the release-note example."; "-a <app> (required): Select the Heroku app whose `TEST_URL` config var supplies the database connection URL."; "Prerequisite: Use Heroku CLI to retrieve the app config var; install Postgres locally to connect directly with `psql`."; "The stated database scope is Essential and Advanced Postgres."

### heroku buildpacks commands support --json (2026-08-19)
- slug: heroku-buildpacks-commands-support-json-432445896fca
- score: 0.90

How to use it:

When retrieving buildpack data, add `--json` to the applicable `heroku buildpacks` command or subcommand to output JSON.

Examples:

```
heroku buildpacks -a <app> --json
```

```
heroku buildpacks:info <namespace/name> --json
```

```
heroku buildpacks:add <namespace/name> -a <app> --json
```

- why_it_matters: Retrieve structured JSON output while using a Heroku buildpacks command.
- sources: <https://github.com/heroku/cli/releases/tag/v11.10.0>, <https://devcenter.heroku.com/articles/heroku-cli-commands>
- gotchas: "Version: v11.10.0"; "--json / -j: Output in JSON format."; "-a, --app=<app> (required): App to run the command against; documented as required for `buildpacks` and app mutation subcommands such as `add`."; "BUILDPACK (required): Buildpack identifier in `namespace/name` format for `info` and `add`."; "The flag is stated to apply to buildpacks and its subcommands."

### heroku container:push adds --no-cache (2026-08-19)
- slug: heroku-container-push-adds-no-cache-c19c0107f1d5
- score: 0.95

How to use it:

When building and pushing a container image without the build cache, run `heroku container:push <process-type> --no-cache -a <app>`.

Examples:

```
heroku container:push <process-type> --no-cache -a <app>
```

- why_it_matters: Push a container image without using the build cache.
- sources: <https://github.com/heroku/cli/releases/tag/v11.10.0>, <https://devcenter.heroku.com/articles/heroku-cli-commands>, <https://devcenter.heroku.com/articles/container-registry-and-runtime>
- gotchas: "Version: v11.10.0"; "process-type (required): Process type to build and push, such as `web`."; "--no-cache: Do not use cache when building the image."; "-a, --app=<value> (required): Heroku app to run the command against."; "Prerequisite: Use a Cedar-generation app with its stack set to `container`."; "Prerequisite: Have a working Docker installation and be logged in to Heroku and the Container Registry (`heroku login`, `heroku container:login`)."; "Prerequisite: The app directory must contain a Dockerfile."

### heroku reviewapps:create and reviewapps:wait manage Review App provisioning (2026-08-19)
- slug: heroku-reviewapps-create-and-reviewapps-wait-manage-review-app-provisioning-8d6be2be5ace
- score: 0.99

How to use it:

When the target pipeline has a connected repository, create a Review App from its branch with `heroku reviewapps:create`; add `--wait` to poll until creation completes.

Examples:

```
heroku reviewapps:create -p <pipeline> -b <branch> --wait
```

- why_it_matters: Create and monitor a Review App for a branch in a pipeline's connected repository.
- sources: <https://github.com/heroku/cli/releases/tag/v11.10.0>, <https://github.com/heroku/cli/pull/3816>, <https://devcenter.heroku.com/articles/heroku-cli-commands>, <https://devcenter.heroku.com/articles/heroku-cli>, <https://devcenter.heroku.com/articles/github-integration-review-apps>
- gotchas: "Version: v11.10.0"; "-p, --pipeline=<value> (required): Name of the pipeline."; "-b, --branch=<value> (required): Branch to create the Review App from."; "--wait: Watch creation status and exit when complete."; "--wait-interval=<value>: Polling frequency in seconds; use with `--wait`."; "--prompt: Interactively prompt for command arguments and flags."; "Prerequisite: Install the Heroku CLI; its documentation lists Git as a prerequisite."; "Prerequisite: Review Apps require Heroku Pipelines and GitHub integration to be enabled; the command creates from the pipeline’s connected repository."; "The pipeline and branch are required for creation."; "The pipeline must have a connected repository."; "`--wait-interval` is used with `--wait`."; "Docs conflict: The current Heroku CLI command reference shows `heroku reviewapps:wait APP` with a required APP argument, while the card/release note presents `[app]` as optional. The reference is newer than v11.10.0, so it does not establish the v11.10.0 behavior."

### heroku git:credentials provides a Git credential helper for Heroku Git (2026-06-17)
- slug: heroku-git-credentials-provides-a-git-credential-helper-for-heroku-git-d07ed94c8136
- score: 0.91

How to use it:

When Git requests credentials for `git.heroku.com`, run `heroku git:credentials get` to return the stored Heroku token in Git’s expected format. The CLI configures the credential helper during login or Heroku remote setup; then push with `git push heroku main`.

Examples:

```
heroku git:credentials get
```

```
git push heroku main
```

```
git config --global 'credential.https://git.heroku.com.helper' '!heroku git:credentials'
```

- why_it_matters: Push repository changes to Heroku Git using an auth token stored in the system keychain.
- sources: <https://github.com/heroku/cli/releases/tag/v11.6.0>, <https://github.com/heroku/cli/pull/3758>, <https://github.com/heroku/cli/pull/3683>, <https://github.com/heroku/cli/blob/v11.6.0/src/commands/git/credentials.ts>, <https://devcenter.heroku.com/articles/git>, <https://github.com/heroku/cli/issues/3821>, <https://devcenter.heroku.com/articles/authentication>
- gotchas: "Version: v11.6.0"; "Git credential protocol input: `protocol` (required): Helper reads key/value pairs from standard input; it outputs a credential only for `https`."; "Git credential protocol input: `host` (required): Helper outputs a credential only for `git.heroku.com`."; "Git credential protocol input: blank line terminator (required): Terminates the key/value input read from standard input."; "`credential.https://git.heroku.com.helper`: URL-scoped Git config value; set to `!heroku git:credentials` to invoke the CLI helper."; "Prerequisite: Install Git and the Heroku CLI; initialize a local Git repository and commit the application code."; "Prerequisite: Log in with `heroku login`; the helper retrieves the token from the system keychain or, if unavailable, `.netrc`."; "Prerequisite: Configure a Heroku remote for the app, for example with `heroku git:remote -a <app>`."; "The helper validates protocol=https and host=git.heroku.com before outputting credentials."; "The source says the CLI silently ignores errors while configuring the helper after successful login."

### Heroku CLI adds Postgres upgrade run and wait commands (2026-04-15)
- slug: heroku-cli-adds-postgres-upgrade-run-and-wait-commands-92ca264ab386
- score: 0.96

How to use it:

For a major-version upgrade of a Heroku Postgres Advanced database, run `data:pg:upgrade:run` with the database and app, optionally specifying a target version. Then run `data:pg:upgrade:wait` for that database and app until the upgrade completes.

Examples:

```
heroku data:pg:upgrade:run <DATABASE> --version <VERSION> --app <APP>
```

```
heroku data:pg:upgrade:wait <DATABASE> --app <APP>
```

- why_it_matters: Upgrade a Heroku Postgres Advanced database to a new major version and wait for the upgrade to finish.
- sources: <https://github.com/heroku/cli/releases/tag/v11.3.0>, <https://github.com/heroku/cli/pull/3551>, <https://devcenter.heroku.com/articles/heroku-cli-commands>
- gotchas: "Version: v11.3.0"; "DATABASE (required): Database name, attachment name, or related config var on an app."; "--app, -a (required): App to run the command against."; "--version, -v: Postgres version to upgrade to."; "--confirm, -c: Pass in the app name to skip confirmation prompts."; "--remote, -r: Git remote of the app to use."; "--no-notify: Suppress the OS notification while waiting."; "--wait-interval: Polling interval in seconds; default is 5."; "Prerequisite: The upgrade command is for a Postgres Advanced database."; "The commands are for upgrading major versions of Heroku Postgres Advanced databases."; "`data:pg:upgrade:wait` inherits the behavior of `data:pg:wait` and guides users dealing with a Classic database to run the correct command."

### Heroku CLI table displays accept --no-wrap (2026-04-08)
- slug: heroku-cli-table-displays-accept-no-wrap-babe74d4dbc1
- score: 0.96

How to use it:

When reviewing tabular CLI output in a narrow terminal, add `--no-wrap` to the table command to disable wrapped table cells.

Examples:

```
heroku <table-command> --no-wrap
```

- why_it_matters: Display tabular CLI output without wrapping long values when reviewing results in a narrow terminal.
- sources: <https://github.com/heroku/cli/releases/tag/v11.2.0>, <https://github.com/heroku/heroku-cli-command/commit/1ed23a7>
- gotchas: "Version: v11.2.0"; "--no-wrap: Boolean flag; disables wrapped table cells. Defaults to false when omitted."; "Docs conflict: The official heroku-cli-command changelog records this flag in version 12.3.1 (2026-04-03); its 11.2.0 entry is dated 2024-08-08 and does not mention the flag. The card identifies Heroku CLI v11.2.0."

### heroku local accepts --start-cmd when no Procfile is present (2026-04-08)
- slug: heroku-local-accepts-start-cmd-when-no-procfile-is-present-9ff39f5b9950
- score: 0.92

How to use it:

When the app has no Procfile, run `heroku local` with `--start-cmd` set to the startup command. The flag runs that command as the `web` process.

Examples:

```
heroku local --start-cmd "<startup-command>"
```

- why_it_matters: Run a local app that has no Procfile by specifying its startup command.
- sources: <https://github.com/heroku/cli/releases/tag/v11.2.0>, <https://devcenter.heroku.com/articles/heroku-cli-commands>, <https://devcenter.heroku.com/articles/heroku-local>
- gotchas: "Version: v11.2.0"; "--start-cmd=<value>: Command to run as `web` when no Procfile is present."; "Prerequisite: Heroku Local is installed automatically as part of the Heroku CLI."; "The flag applies when no Procfile is present."

### Heroku CLI adds `heroku search` (2026-03-18)
- slug: heroku-cli-adds-heroku-search-7465397a5caa
- score: 0.96

How to use it:

When you can’t remember a Heroku CLI command, run `heroku search` to search for commands; select one and press Enter to view its help.

Examples:

```
heroku search
```

- why_it_matters: Find a Heroku CLI command when its name is not remembered.
- sources: <https://github.com/heroku/cli/releases/tag/v11.0.0>, <https://devcenter.heroku.com/articles/heroku-cli-commands>
- gotchas: "Version: v11.0.0"

### heroku config:get --json distinguishes unset and empty config vars (2026-02-10)
- slug: heroku-config-get-json-distinguishes-unset-and-empty-config-vars-32d3356843b3
- score: 0.97

How to use it:

When checking whether an app config var is unset or set to an empty string, run `heroku config:get <KEY> --app <APP> --json`. The JSON output distinguishes unset (`null`) from empty string (`""`).

Examples:

```
heroku config:get <KEY> --app <APP> --json
```

- why_it_matters: When checking whether a Heroku app config var is unset or set to an empty string, request structured output.
- before: Previously, `heroku config:get KEY` returned empty output for both unset and empty-string config vars, so they could not be distinguished.
- sources: <https://github.com/heroku/cli/releases/tag/v10.17.0>, <https://github.com/heroku/cli/pull/3464>, <https://devcenter.heroku.com/articles/heroku-cli-commands>
- gotchas: "Version: v10.17.0"; "KEY (required): Name of the config var key."; "--app=<value> (required): App to run the command against."; "--json: Output in JSON format; unset is `null` and an empty string is `\"\"`."
