NEW FEATURES:
- Adds the
harness execcommand, which lets a human grant session-scoped, noninteractivetfctldelete permissions to a wrapped command (such as a coding agent) via--allow-delete. The grant is tied to the wrapped process, auto-reverts when it exits, and never covers the irreversibleorganizationsandprojectsclasses unless they are named explicitly.
ENHANCEMENTS:
-
Adds a
--plan-onlyflag torun startthat creates a speculative plan-only run which is never applied, regardless of the workspace's auto-apply setting. -
Positional arguments and API path parameters are now checked for basic input hygiene, rejecting control characters and invalid UTF-8. This keeps malformed values out of requests and out of terminal/audit output. This is not a security boundary; authorization is still enforced by your API token.
-
The config directory can now be overridden with the TFCTL_CONFIG_DIR environment variable. Profiles and exec sessions both resolve against this directory, making it easy to isolate tfctl state (for example, in CI or eval harnesses).
BUG FIXES:
-
Don't attempt to retry telemetry transmission on server errors, like rate limiting 429 errors.
-
Detect Terraform's
TF_TOKEN_<hostname>environment variables (such asTF_TOKEN_app_terraform_io) during authentication, matching Terraform CLI's resolution. This includes punycode hostnames and the interchangeable dash encodings (literal-or double underscore). Previously these tokens were not detected. -
Clarify the not-found (404) API error message to point at verifying the request path and resource IDs instead of suggesting an authentication problem.
-
Fix
api --allreturning no output when the result fits in a single page. The response body was consumed while checking for additional pages and not restored, so single-page responses rendered empty. -
Fix
api--jsonand--jqoutput incorrectly including one-to-one relationship IDs underattributes. Those IDs are surfaced for table and pretty output only, and are no longer written back into the raw JSON payload. -
Redacts customer data within HTTP paths in telemetry payloads, such as organization and workspace names.
-
Using the --quiet argument no longer suppresses api command rendering for GET requests.
NOTES:
- For developers of tfctl, added CONTRIBUTING.md, developer setup automation, and
make help
ENHANCEMENTS:
-
The
harness installcommand supports shell autocompletion for supported coding agents and support for the Amp coding agent has been added. -
Adds debug logging for token configuration sources.
-
Hostnames are normalized before storage within profiles.
-
The
apicommand now accepts arbitrary URLs, such as Archivist, but does not send tokens to any host except the configured API host.
BUG FIXES:
-
Profile configuration files are now created with read/write permissions for owner only.
-
Hostname telemetry is anonymized when configured with a Terraform Enterprise host.
NOTES:
- tfctl is an agent-first, human-friendly CLI for accessing HCP Terraform and Terraform Enterprise. Future changes will be documented here. For now, see README.md for installation, usage, and a command reference.