github krakenfx/kraken-cli v0.5.0
0.5.0 - 2026-10-27

5 hours ago

Release Notes

Sign in from the browser, run the MCP server and the REPL as their own binaries,
take a paper strategy live, and package a finished session as a recipe. The
catalog lists 188 commands in 15 groups; kraken-mcp serves 152 of them as MCP
tools. The project is still alpha: test with paper trading first.

Upgrading from 0.4.1

These changes need action from scripts, agents or MCP clients.

  • The MCP server and the REPL are separate binaries. Use kraken-mcp
    instead of kraken mcp and kraken-shell instead of kraken shell. Run the
    installer again before you update an agent plugin: the plugins now start
    kraken-mcp. In a client config, -s and --allow-dangerous work as before;
    pass API keys as KRAKEN_API_KEY and KRAKEN_API_SECRET in the client's
    environment. After a source install, run
    cargo uninstall kraken-mcp kraken-shell before installing kraken-cli.
  • REST output carries the fields the CLI models. Fields Kraken adds are no
    longer passed through. query-orders returns the same order shape as
    open-orders, query-trades the same fill shape as trades-history, and
    auth test reports balances like balance. JSON objects keep the server's
    order instead of sorting keys.
  • MCP tool calls. A dangerous call goes to the operator through MCP
    elicitation; acknowledged: true applies only to clients that cannot show
    one. Results larger than 256 KiB are refused with the arguments that narrow
    them, results over 16 KiB come back as structuredContent only, and a result
    that is not a JSON object arrives as {"result": ...}.
  • Catalog schema 2.0.0. parameters became input_schema (JSON Schema),
    auth_required became credentials, global_flags is gone, and positional
    arguments moved from command to usage. New fields: effect, reach,
    tool, why and constraints.
  • kraken record writes JSONL by default. It wrote DuckDB before. Pass
    --to duckdb (or --to duckdb,jsonl) to keep appending to a 0.4.x DuckDB
    tape. Release binaries read and write DuckDB; a source build needs
    --features record-duckdb to do either.
  • Futures paper accounts. Open orders saved by 0.4.1 use the old type
    spelling and are not migrated: delete <config-dir>/paper/futures_state.json
    and run kraken futures paper init.
  • The Claude Code plugin no longer asks for an API key. Its tools need none,
    and it no longer passes a key saved under 0.4.x to kraken-mcp; kraken-mcp
    still reads the active key stored by kraken auth set or kraken auth login.
  • kraken feedback keeps no local copy. Its output no longer has id and
    path; you can delete <config-dir>/feedback.duckdb.

New commands

Command What it does
kraken auth login Sign in in the browser; saves a restricted, expiring Spot API key
kraken auth switch api-key|sign-in Choose which stored key signs requests
kraken recipe create|list|show|run Package a stopped paper session and run it again
kraken plugin init|list Scaffold a dependency-free extension over the CLI's JSON output
kraken lab curve The full marked equity series behind lab score
kraken-mcp, kraken-shell The MCP server and the REPL, installed next to kraken

auth login needs a terminal, so a script or an agent cannot create a key. The
key has no withdrawal rights and expires after 90 days unless --valid-for says
less; --read-only creates a key that cannot trade, and --no-browser only
prints the sign-in URL. auth reset deletes the local copy only: delete the key
in the Kraken UI to revoke it at once. An older release ignores the sign-in key
and can drop it from config.toml, so delete it in the Kraken UI before you
downgrade.

Changed commands

  • workspace create --mode live and workspace promote now work. A live
    workspace is a budget-fenced allocation of the real account: creation checks
    the allocation against the real balance, orders print a live banner on stderr,
    and venue fills are reconciled by transaction ID.
  • ticker --all returns every tradable pair, ticker --watch <SECONDS> streams
    snapshots as NDJSON, and one call can mix asset classes.
  • Orders are checked before they reach Kraken: a Spot *-limit order needs
    price2, a futures order takes only the prices its type uses, and sizes and
    prices must be decimals.
  • auth show (alias auth status) names the key in use and says when a flag or
    an environment variable overrides it.
  • kraken setup without a terminal fails with a validation error that names
    KRAKEN_API_KEY and KRAKEN_API_SECRET. setup and auth set refuse an API
    secret that is not valid base64.
  • session show includes the strategy label and parameters. Streams print a
    reconnected event on stdout after a reconnect.
  • With -o json, commands that write their own output no longer print a
    trailing {}.

Fixed

  • A timed-out order, cancel, withdrawal or transfer is never sent again. When it
    may have executed (a timeout, a broken connection, a 5xx, or an accepted reply
    that does not decode), the error envelope carries "verify_first": true,
    whatever its category: check open orders or history before retrying.
    (#51, thanks @SashaMIT)
  • MCP tools whose result is a JSON array, such as kraken_deposit_status, work
    in strict clients. (#52)
  • Futures paper: editing a trailing stop's --stop-price moves its trigger,
    orders and order-status show stop price and trigger signal, and stop,
    take-profit and trailing-stop orders net their margin against an opposite
    position. (#54,
    #55,
    #56, thanks @theghostmac)
  • Private futures requests with query parameters are signed correctly, the
    futures history commands reach the history API, and a trailing stop sends its
    deviation unit in the documented spelling.
  • order cancel-batch and export-delete send the request shape the API takes.
  • Futures paper computes money in Decimal; its state file still stores JSON
    numbers, as 0.4.1 did.
  • History responses (ledgers, trades-history, closed-orders and the
    others) keep the server's newest-first order.
  • Replay sessions are refused on the real account and on live workspaces.
  • README badges link to the release, the license and the install section.
    (#50, thanks @sashaphmn)

Security

  • Dependency updates fix RUSTSEC-2026-0258 (h2 0.4.16), RUSTSEC-2026-0285,
    -0346, -0348 and -0349 (rustls 0.23.46), RUSTSEC-2026-0382 (rustls-webpki
    0.103.16), RUSTSEC-2026-0381 and -0383 (webpki-roots and webpki-root-certs
    1.0.10), RUSTSEC-2026-0367, -0368 and -0369 (zip 9.0.5), RUSTSEC-2026-0385
    (ctutils 0.4.6) and RUSTSEC-2026-0386 (tokio 1.53.3), and replace the yanked
    chacha20 0.10.1 and clipboard-win 5.4.1.
  • Report vulnerabilities privately as described in SECURITY.md.

Install kraken-cli 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/krakenfx/kraken-cli/releases/download/v0.5.0/kraken-cli-installer.sh | sh

Download kraken-cli 0.5.0

File Platform Checksum
kraken-cli-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
kraken-cli-x86_64-apple-darwin.tar.gz Intel macOS checksum
kraken-cli-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
kraken-cli-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo krakenfx/kraken-cli

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

Don't miss a new kraken-cli release

NewReleases is sending notifications on new releases.