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 ofkraken mcpandkraken-shellinstead ofkraken shell. Run the
installer again before you update an agent plugin: the plugins now start
kraken-mcp. In a client config,-sand--allow-dangerouswork as before;
pass API keys asKRAKEN_API_KEYandKRAKEN_API_SECRETin the client's
environment. After a source install, run
cargo uninstall kraken-mcp kraken-shellbefore installingkraken-cli. - REST output carries the fields the CLI models. Fields Kraken adds are no
longer passed through.query-ordersreturns the same order shape as
open-orders,query-tradesthe same fill shape astrades-history, and
auth testreportsbalanceslikebalance. 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: trueapplies 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 asstructuredContentonly, and a result
that is not a JSON object arrives as{"result": ...}. - Catalog schema 2.0.0.
parametersbecameinput_schema(JSON Schema),
auth_requiredbecamecredentials,global_flagsis gone, and positional
arguments moved fromcommandtousage. New fields:effect,reach,
tool,whyandconstraints. kraken recordwrites 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-duckdbto 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 runkraken 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 tokraken-mcp;kraken-mcp
still reads the active key stored bykraken auth setorkraken auth login. kraken feedbackkeeps no local copy. Its output no longer hasidand
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 liveandworkspace promotenow 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 --allreturns 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
*-limitorder needs
price2, a futures order takes only the prices its type uses, and sizes and
prices must be decimals. auth show(aliasauth status) names the key in use and says when a flag or
an environment variable overrides it.kraken setupwithout a terminal fails with avalidationerror that names
KRAKEN_API_KEYandKRAKEN_API_SECRET.setupandauth setrefuse an API
secret that is not valid base64.session showincludes the strategy label and parameters. Streams print a
reconnectedevent 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-pricemoves its trigger,
ordersandorder-statusshow 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-batchandexport-deletesend 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-ordersand 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 | shDownload 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-cliYou 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>