Skip to content

Releases: heroku/cli

v11.6.0

17 Jun 19:48
12d2375

Choose a tag to compare

  • ad0466e feat: adds credential manager functionality to the CLI (#3758)
    |\
    | * 628e669 Merge branch 'main' into feat/credential-mgr-integration
    | |\
    | |/
    |/|
  • | f6671ec deps(dev): bump form-data from 4.0.5 to 4.0.6 (#3772)
  • | 6b17d23 deps: bump protobufjs from 7.5.8 to 7.6.4 (#3771)
  • | fc24468 deps: bump ws from 6.2.3 to 6.2.4 (#3768)
  • | e700fb5 deps: bump tmp from 0.2.6 to 0.2.7 (#3767)
  • | 62be38b fix: use HEROKU_CLI_CHANNEL in Direwolf test trigger (#3765)
  • | f8b19ee Update Direwolf workflow and runner script to use HEROKU_CLI_CHANNEL (defaulting to stable) instead of HEROKU_CLI_VERSION, keeping release-channel propagation consistent across the CI trigger payload
    /
  • e7147a5 deps: update to heroku-cli-command v12.4.2 and heroku-cli-util v10.8.3 (#3774)
    |\
    | * 2875ec9 update package.json for node 22
    | * 288ac84 deps: update to heroku-cli-command v12.4.2 and heroku-cli-util v10.8.3
    |/
  • 76d24b8 fix: improves consistency between keychain and netrc accounts actions (#3762)
    |\
    | * 1a6fdb1 refactor: always write to netrc and remove non-aliased account support from accounts:set
    | * b2619ac refactor: clean up accounts commands and lib function
    | * aba7fa5 refactor: remove cross-mode validation from accounts management
    | * 5be6ed5 refactor: simplify accounts add to always write username and password
    | * 9509171 fix: remove support for non-aliased accounts from heroku accounts and accounts:current commands
    |/
  • 07a78a3 chore: merge main (#3757)
    |\
    | * 9679ca2 Merge branch 'main' into k80/merge-main-6-8-26
    |/
  • 35350e8 fix: update error text for accounts commands (#3756)
    |\
    | * a15d8bd fix: update error text for accounts commands
    |/
  • c5d1a45 feat: adds alias support for keychain-based accounts (#3752)
    |\
    | * 969afab fix: update accounts:remove to check for email or alias to validate current account
    | * 0f5b958 fix: make getAliasEmail test cross-platform compatible
    | * a8368d6 fix: fix linting errors in accounts lib file
    | * a34d687 feat: update accounts:add description for clarity
    | * efa00a3 fix: prevent cross-mode account removal with helpful error messages
    | * 386bd16 fix: allow switching to netrc mode with keychain-created aliases
    | * c094aa6 feat: prevent duplicate aliases for same email in accounts:add
    | * 4b0e92d fix: prevent password from being written to keychain alias files
    | * c540bec refactor: simplify account lookup in set command
    | * b15db3a refactor: simplify add() method with writeAccountFile helper
    | * dae3901 refactor: extract Ruby symbol conversion to helper method
    | * efff0f5 refactor: add accountsDir() helper to reduce code duplication
    | * 92e2fe1 feat: update remove() to resolve alias before keychain removal
    | * 114d3a7 feat: update set() to handle aliased keychain accounts
    | * 940bb6f feat: update list() to merge keychain accounts with alias files
    | * 01da5e4 feat: add listAliasFiles helper method
    | * bb53b87 feat: add getAliasEmail helper method
    | * 0d3b417 feat: remove alias files for keychain and netrc accounts
    | * e1c572c feat: add alias files for keychain accounts
    |/
  • 8c100fd chore: merge in main to feature branch (#3747)
    |\
    | * e18a4c9 Merge remote-tracking branch 'origin' into feat/credential-mgr-integration
    |/
  • cb751e6 chore: merge main (#3737)
    |\
    | * 7df4bf0 chore: fix linting errors
    | * 391b6a6 test: fix accounts, apps, auth, buildpacks, container, git, and ps-exec tests
    | * 5eebe2a Merge branch 'main' into k80/merge-main-5-29
    |/
  • 40df61c deps: update versions of heroku-cli/command and heroku/heroku-cli-util (#3733)
  • 7db768f fix: fix whoami and update heroku-cli-command and heroku-cli-util (#3719)
  • b07137b feat: remove cached netrc account on logout (#3710)
  • 1f896aa feat: update accounts:set to work with keychain managers (#3696)
  • 89d7b14 feat: update accounts:remove to work with credential manager (#3701)
  • 49e3938 feat: update accounts:add to use the credential manager (#3699)
  • 5479fa5 fix: restore git configuration on logout (#3697)
  • e753d06 feat: update accounts and accounts:current commands to use the credential manager (#3689)
  • 4fde394 test: update analytics tests to use the credential manager (#3688)
  • 5f86e4c chore: update CLI analytics to use heroku credential manager (#3685)
  • 781e99e feat: implement heroku git:credentials as a git credential helper (#3683)
  • ed3c524 deps: update heroku-cli/command to v13.0.0-beta.1 (#3660)

v11.5.0

11 Jun 23:00
85679ea

Choose a tag to compare

  • 96310c3 chore: pass PR title via env in pr-title-check workflow (#3763)
  • 4f878de deps: resolve npm audit vulnerabilities (#3760)
  • 24aaa69 deps: bump hono from 4.12.18 to 4.12.25 (#3755)
  • 2c7c93b deps: bump qs from 6.14.2 to 6.15.2 (#3725)
  • 2f8e6de deps: bump tmp from 0.2.5 to 0.2.6 (#3729)
  • 5414e36 fix: call _heroku.pg_stat_statements_reset() on Essential and Advanced plans (#3751)
  • 5618ee2 chore: inline npm publish workflow (#3750)
    |\
    | * 54fceca Inline npm publish behavior into create-cli-release.yml and remove the separate publish-npm.yml reusable workflow to simplify release pipeline orchestration and input wiring.
    |/
  • 0e81dd8 chore: consolidate release for trusted publishing (#3744)
  • 665b189 feat: add hidden --method flag to data:pg:migrate (#3743)
  • e171ad5 chore: upload arm64 win installer to Stampy unsigned bucket (W-22733412) (#3734)
  • 355113e fix: 'run:inside' args ordering (W-22693654) (#3727)
  • ebdf082 fix: pass empty string to rl.write in repl finally block (W-22295448) (#3721)
  • 8abed2f chore: add CLAUDE.md and Copilot instructions pointing to AGENTS.md (#3724)
  • 400fc6e fix: add missing warning to 'data:pg:migrate' (W-22544849) (#3716)
  • 8860aa4 chore: remove unused workflow file (#3712)
  • 5dd58af fix: inherit secrets in reusable workflow (#3711)

v11.4.0

13 May 21:39
1b8faf8

Choose a tag to compare

  • dcbaa1b fix: migrate release scripts from qqjs to script-exec helpers (#3707)
  • 127e682 feat: 'data:pg:migrate' command implementation (W-21303011) (#3546)
  • 4f3dad5 deps: bump the dev-patch-minor-dependencies group across 1 directory with 8 updates (#3700)
  • 04df827 fix: validate HEROKU_HOST for container registry commands (#3704)
  • 927397c deps: bump protobufjs from 7.5.5 to 7.5.8 (#3706)
  • 0b36a1f fix: align ps:type with customer-facing private/shield dyno names (#3705)
  • 7a587e6 deps: bump fast-uri from 3.1.0 to 3.1.2 (#3698)
  • 6bb47ec deps: resolve ip-address GHSA-v2v4-37r5-5v8g via scoped overrides (#3695)
  • 70f6e7c deps: bump @oclif/plugin-plugins to resolve picomatch and brace-expansion advisories (#3694)
  • ab16a68 deps: bump hono from 4.12.14 to 4.12.18 (#3692)
  • b99e262 deps: bump fast-xml-parser and @aws-sdk/xml-builder (#3687)
  • 3726959 deps: bump basic-ftp from 5.3.0 to 5.3.1 (#3691)
  • eda4459 fix: updates @heroku-cli/command to address 2FA token prompting bug (#3690)
  • f80c9e9 deps: bump @xmldom/xmldom from 0.8.12 to 0.8.13 (#3680)
  • 3e4c838 fix: prevent unhandled promise rejection in apps:destroy (#3679)
  • ad81615 refactor: migrate from qqjs to execa with custom wrapper (#3678)
  • d547ed5 docs: add AGENTS.md with CLI design patterns for AI agents (#3676)
  • 87785e8 feat: multi-factor attachment support for Advanced dbs (W-21632630) (#3655)
  • 699cbdd deps: bump @hono/node-server from 1.19.11 to 1.19.13 (#3651)
  • b2754a2 deps: bump hono from 4.12.7 to 4.12.14 (#3672)
  • 259e009 deps: bump follow-redirects from 1.15.11 to 1.16.0 (#3662)
  • 0fa9796 deps: bump basic-ftp from 5.2.0 to 5.3.0 (#3673)
  • 611abaa deps: bump protobufjs from 7.5.4 to 7.5.5 (#3674)
  • d5ad9ac refactor: migrate to shared eslint config and testing functions (#3661)
  • 6b96cb9 refactor: apply linting fixes to test helpers, fixtures, and integration tests (#3671)
  • 8a56a67 refactor: apply lint formatting to scripts and hooks folders (#3669)
  • eb9b040 refactor: apply lint fixes to lib files (#3668)
  • b3f11bd refactor: apply lint formatting to remaining commands (#3667)
  • fd4c8c0 refactor: apply lint formatting to git through pg commands (#3666)
  • 7e84cbf refactor: apply lint formatting to auth through features commands (#3665)

v11.3.0

15 Apr 20:07
1debe53

Choose a tag to compare

  • 5568483 refactor: apply lint formatting to access, accounts, addons, and apps commands (#3664)
  • c6a101f refactor: rename lib and script files to kebab-case (#3663)
  • 2523d48 chore: remove @oclif/plugin-legacy dependency (#3659)
  • 6da79cd fix: restore beforeExit handler for version commands and add comprehensive telemetry debug logging (#3657)
  • 3297c5e feat: adds 'data:pg:upgrade:run/wait' commands (W-21304392) (#3551)

v11.2.0

08 Apr 18:10
380ef7b

Choose a tag to compare

  • 73e4990 test: use Sinon stubs; parallel slug checksums (#3650)
  • 8c4f8c3 fix: flaky apps:diff tests (#3649)
  • 1d27c09 feat: include a --no-wrap flag for table displays (#3613)
  • 0df7705 deps: bump the dev-patch-minor-dependencies group with 4 updates (#3644)
  • 150e74a fix: improve telemetry worker stderr cleanup (#3648)
  • ede6655 feat: update color usage, telemetry activation logic, and command/util dependencies (#3646)
  • b9b8fed feat: adding --start-cmd flag to heroku local when no Procfile is present (#3638)
  • f1f19ca deps: bump lodash from 4.17.23 to 4.18.1 (#3643)
  • c13074d refactor: unify telemetry architecture and use background workers for all telemetry (#3642)
  • 32920f9 test: this fixes the mocking difference causing flappy tests and adds chore to PR release title (#3640)
  • aae3751 fix: procfile comment parsing (#3641)

v11.1.1

01 Apr 20:13
cf27509

Choose a tag to compare

  • 473038d deps: bump @xmldom/xmldom from 0.8.11 to 0.8.12 (#3637)
  • d46b239 fix: run:inside argument parsing order (#3633)

v11.1.0

31 Mar 21:24
d6ff764

Choose a tag to compare

  • 74bbdfb feat: add isTTY context to telemetry and filter SIGINT from Sentry (#3632)
  • 47b97e8 deps: bump the dev-patch-minor-dependencies group across 1 directory with 9 updates (#3629)
  • b22638b deps: bump path-to-regexp from 8.3.0 to 8.4.0 (#3628)
  • 65575a0 perf: optimize telemetry initialization and reduce startup overhead (#3620)
  • bde5a5c deps: replace psl with tldts to fix punycode deprecation warning (#3627)

v11.0.2

27 Mar 17:44
0df2519

Choose a tag to compare

  • dd3cfa3 fix: point bin to run.js instead of symlink for npm compatibility (#3624)

v11.0.1

26 Mar 18:22
840e377

Choose a tag to compare

  • 3eff3dc fix: separate TERM=dumb run status lines (#3617)
  • 2d55453 deps: bump @heroku-cli/command to 12.2.2 (#3616)
  • 6fcb3a4 fix: show correct error message for Essential-tier (W-21653472) (#3614)
  • 85c2224 perf: improve Windows CLI performance (#3610)
  • 84eb648 fix: resolve addons across data maintenances commands (#3609)
  • 7e96152 fix: address UI issues with confirmation prompts on multiple commands (W-21649376) (#3602)

v11.0.0

18 Mar 18:29
a6e2188

Choose a tag to compare

Summary

This is a major release with extensive changes. The primary changes are:

  1. Upgrade to oclif v4 from v2
  2. Conversion to ECMAScript Modules (ESM) throughout the entire codebase
  3. Removal of the monorepo structure - consolidated to single package
  4. Migration from yarn to npm for package management and workflows
  5. Introduction of a new semantic color system with the ansis library replacing chalk
  6. Ships with Node.js 22 (maintains Node 20 compatibility)
  7. New Commands - data:pg:* (NGPG), data:maintenance:*, heroku search
  8. Repl and Prompt changes interface changes to how repl and prompt mode work

Breaking Changes / Code Refactoring

  • BREAKING: Conversion to ECMAScript Modules (ESM), adding "type": "module" to package.json

  • BREAKING: All commands, libraries, and tests converted from CommonJS to ESM syntax

  • BREAKING: The ux module was significantly slimmed down in @oclif/core v4, removing built-in prompts, progress bars, and table utilities. We've implemented custom output helpers using ink-based tables and our own formatting utilities which will change the output, particularly with tables.

  • BREAKING: Removal of heroku-cli-plugin-ai as a direct dependency. This plugin will now require separate installation

  • BREAKING data:maintenance commands changes

    • data:maintenances commands have been migrated to the core CLI from the data-maintenance plugin
    • pg:maintenance, pg:maintenance:info, pg:maintenance:window, and redis:maintenance commands have been deprecated and removed.
  • BREAKING Invoking repl has been changed from heroku --repl to heroku repl

Features

  • New color scheme: Migrated from chalk-based @heroku-cli/color to ansis-based @heroku/heroku-cli-util for semantic color functions
    • If you prefer a simple ANSI8-based theme to the new default color theme, set HEROKU_THEME=simple. To turn off colors entirely, set NO_COLOR=true
    • Removed strip-ansi dependency in favor of ansis built-in capabilities
    • Updated all CLI output with semantic colors
  • Node.js support: Ships with Node 22, continued support for Node 20
  • --prompt now a GLOBAL flag --prompt will now be included in documentation and help text for commands that utilize it
  • New search command: Can’t remember the command you’re thinking of? Use heroku search to find it
  • Next-Gen PostgreSQL (NGPG) commands:
    • New data:pg:* command namespace for NGPG support
    • data:pg:attachments:create, data:pg:attachments:destroy, data:pg:attachments:index
    • data:pg:quotas:index, data:pg:quotas:update
    • data:pg:create, data:pg:destroy, data:pg:docs, data:pg:fork, data:pg:psql, data:pg:settings, data:pg:update
    • NGPG types and command utilities (W-20610475)
  • New diff command: Adds apps:diff into the CLI

oclif v2 → v4 Upgrade

The Heroku CLI now uses @oclif/core v4, a major upgrade from v2. This brings significant improvements and modernizations:

oclif v3 improvements:

  • Performance: Enhanced manifest caching for faster command loading
  • ESM/CJS interoperability: Better support for mixing CommonJS and ESM plugins
  • Flag enhancements: Added charAliases for single-character flag aliases and Flags.option for improved type inference
  • Module system: Updated bin scripts for better ESM/CJS compatibility

oclif v4 improvements:

  • Full ESM support: Complete ECMAScript Module support with seamless interoperability between CommonJS and ESM plugins
  • Modular architecture: Changed to granular imports (e.g., import run from '@oclif/core/run')
  • Runtime auto-transpilation: Linked ESM plugins auto-transpile with tsx
  • New hooks: Added preparse hook for pre-processing commands
  • Enhanced TypeScript: Enabled exactOptionalPropertyTypes for stricter type checking

Build System

  • Move from yarn to npm (W-19730551, #3365)
    • Removed .yarnrc.yml, .yarn/ directory
    • Added package-lock.json
    • Updated all CI/CD workflows to use npm
    • Updated scripts to use npm commands
  • Remove monorepo structure (#3508)
    • Removed lerna configuration
    • Consolidated from packages/cli/ to root-level structure
    • Moved all source from packages/cli/src to src/
    • Moved all tests from packages/cli/test to test/
    • Flattened repository structure
  • Switch to commit-and-tag-version from standard-version (#3496)
    • Added .versionrc.json configuration
    • Updated release scripts
  • Removed Snapcraft configuration (removed snap/ directory)
  • Removed Dockerfile.devcenter

Tests

  • Upgrade @oclif/test v2 to @oclif/test v4 (#3447)
  • Converted all tests to ESM
  • Added .mocharc.json for test configuration
  • Migrated from eslint 7 to eslint 8
  • Fixed an issue with git remote being created during test execution

Continuous Integration

  • Updated CI workflows to usefor npm instead of yarn
  • Updated release workflows for new monorepo-less structure
  • Added npm scripts for use with deployment workflows

Code Refactoring

  • Comprehensive ESM migration across all commands
  • The following commands have been moved into the CLI repository from the ps-exec plugin:
    • ps:copy
    • ps:exec
    • ps:forward
    • ps:socks

Miscellaneous Chores

  • Updated bundled oclif plugins to v4+ compatible versions for compatibility with @oclif/core v4
    @oclif/plugin-commands, @oclif/plugin-help, @oclif/plugin-help, @oclif/plugin-not-found, @oclif/plugin-plugins, @oclif/plugin-update, @oclif/plugin-version, @oclif/plugin-warn-if-update-available, @oclif/plugin-which
  • Additional varkious package dependency updates
  • Removal of @heroku-cli/color (replaced with @heroku/heroku-cli-util)
  • Removal of @heroku/eventsource (replaced with eventsource)
  • Removal of sparkline as a dependencydepndency (added directly to codebase with TypeScriptTS support)
  • Updated Node.js update scripts to work with Nnode 22
  • Updated .tool-versions for Node 22
  • Updated Husky pre-commit hook to happen during prepare
  • Many linting errors and warnings fixed throughout codebase

Documentation

  • Updated README.md for new repository structure
  • Updated command documentation in docs/