Safety
Heat handles real money. Its safety model prevents accidental execution of dangerous actions.
Dangerous actions
The following commands are considered dangerous and require confirmation:
Hyperliquid:heat hl buy/heat hl sell— placing ordersheat hl cancel— cancelling ordersheat hl leverage set— changing leverageheat hl send— sending tokens
heat pm buy/heat pm sell— placing ordersheat pm cancel— cancelling ordersheat pm clob limit-order/heat pm clob market-order— CLOB ordersheat pm clob cancel-order/heat pm clob cancel-all— CLOB cancellationsheat pm ctf split/heat pm ctf merge/heat pm ctf redeem— CTF operationsheat pm approve set— granting token approvals
Read-only commands (price, balance, positions, market data) never require confirmation.
--dry-run
Preview what a command would do without executing it. Dry-run output goes to stderr.
heat hl buy ETH 1.0 --price 3500 --dry-runOutput:
[dry-run] hl buy
asset: ETH
size: 1.0
price: 3500
notional: $3500
reduce_only: false
[dry-run] No action taken.Dry-run is available on all dangerous commands and always exits with code 0.
TTY confirmation
When running in a terminal (TTY) without --yes, dangerous commands prompt for confirmation:
Confirm buy 1.0 ETH @ 3500? [y/N]Only y (case-insensitive) proceeds. Anything else cancels the action.
--yes
Skip the confirmation prompt:
heat hl buy ETH 1.0 --price 3500 --yesThis is required for scripts and automated workflows.
Non-TTY behavior
When stdout is not a terminal (pipes, cron, CI), Heat is strict:
- Dangerous commands without
--yesfail with an error. - Heat never silently prompts on a non-TTY.
- Scripts must explicitly opt in with
--yes.
This prevents accidental execution when a script is missing the confirmation flag.
# This fails in a script:
heat hl buy ETH 1.0 --price 3500
# error: Dangerous action requires confirmation: buy 1.0 ETH @ 3500
# hint: Use --yes to confirm in non-interactive mode
# This works:
heat hl buy ETH 1.0 --price 3500 --yesCombining --dry-run with scripts
A common pattern: preview first, then execute.
# Preview
heat hl buy ETH 1.0 --price 3500 --dry-run
# Execute
heat hl buy ETH 1.0 --price 3500 --yesSummary
| Context | No flag | --yes | --dry-run |
|---|---|---|---|
| TTY (terminal) | Prompts [y/N] | Executes immediately | Previews only |
| Non-TTY (script) | Fails with error | Executes immediately | Previews only |