{ "schema_version": "2.0.0", "cli_version": "0.5.1", "description": "Every command kraken-cli can run. `tool` names the MCP tool that calls it, `usage` gives the positional order, and `input_schema` is generated from the command's own Rust type, so it cannot drift from the arguments the command accepts. Its property names are the argument names a tool call takes. On the command line, the arguments `usage` lists are positional and every other property is a flag with hyphens for underscores (`min_fills` is `--min-fills`), except where `--help` spells it otherwise: `trade_type` and `ledger_type` are `--type`, `window` is `--for`, and `sessions` is `--session`. `constraints` states the cross-field requirements no schema keyword carries. Confirm any command with `dangerous: true`, and any `effect: local_or_live` one whose live argument is set (`--mode live`, `--real-account`): those reach the real account too. Route errors on the `error` field, never on message text (see agents/error-catalog.json).", "groups": { "account": "Private account data: balances, orders, history", "auth": "Browser sign-in and credential management", "earn": "Staking and earn allocations", "feedback": "Product feedback", "funding": "Deposits, withdrawals, transfers", "futures": "Futures market data and trading", "futures-paper": "Futures paper trading", "futures-ws": "Futures WebSocket streaming; CLI only", "market": "Public market data; no credentials", "paper": "Spot paper trading against live prices", "subaccount": "Subaccount management", "trade": "Spot order placement and management", "utility": "The interactive setup wizard; CLI only", "websocket": "WebSocket streaming; CLI only", "workspace": "Workspaces, sessions, tapes, recipes, extensions" }, "commands": [ { "name": "assets", "command": "kraken assets", "usage": "kraken assets", "tool": "kraken_assets", "reach": "tool", "group": "market", "description": "Get asset info.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "description": "Comma-separated list of assets to query.", "type": "string" }, "asset_class": { "description": "Asset class filter.", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] } }, "additionalProperties": false }, "example": "kraken assets --asset BTC,ETH -o json" }, { "name": "auth-login", "command": "kraken auth login", "usage": "kraken auth login", "reach": "interactive", "group": "auth", "description": "Sign in with your Kraken account in the browser.\n\nCreates a restricted API key for this machine and saves it: no withdrawal permissions, and an expiry date. A new sign-in replaces the key that the last sign-in created. If you also set a key yourself, you choose which key is active.", "credentials": "none", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "read_only": { "description": "Create a read-only key: balances, orders, trades and ledger, but it cannot trade.", "type": "boolean", "default": false }, "valid_for": { "description": "How long the key stays valid (for example 30d or 90d). Default: 90d.", "type": "string" }, "no_browser": { "description": "Print the sign-in URL, but do not open a browser. Over SSH, forward the redirect ports 27461 to 27463 first (`ssh -L 27461:localhost:27461 -L 27462:localhost:27462 -L 27463:localhost:27463`): the listener takes the first free one. Then open the URL on your own machine.", "type": "boolean", "default": false } }, "additionalProperties": false }, "example": "kraken auth login", "why": "needs a terminal: a secret typed in, or a prompt answered" }, { "name": "auth-reset", "command": "kraken auth reset", "usage": "kraken auth reset", "reach": "withheld", "group": "auth", "description": "Delete stored credentials.", "credentials": "none", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken auth reset", "why": "not offered: local credential surgery with no remote use" }, { "name": "auth-set", "command": "kraken auth set", "usage": "kraken auth set", "reach": "interactive", "group": "auth", "description": "Save API credentials to the config file.\n\nThe API secret is resolved via the global `--api-secret-stdin`, `--api-secret-file`, or `--api-secret` flags. If none are provided, an interactive prompt is shown. Pass `--api-secret` directly here as a last resort (it exposes the secret in process listings).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "futures_api_secret_stdin": { "description": "Read Futures API secret from stdin (mutually exclusive with --futures-api-secret and --futures-api-secret-file).", "type": "boolean", "default": false }, "futures_api_secret_file": { "description": "Path to file containing Futures API secret (mutually exclusive with --futures-api-secret and --futures-api-secret-stdin).", "type": "string" } }, "additionalProperties": false }, "example": "kraken auth set --api-key --api-secret-stdin", "why": "needs a terminal: a secret typed in, or a prompt answered" }, { "name": "auth-show", "command": "kraken auth show", "usage": "kraken auth show", "tool": "kraken_auth_show", "reach": "tool", "group": "auth", "description": "Show the stored API keys, the active key, and the key in use (secrets are masked).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken auth show" }, { "name": "auth-switch", "command": "kraken auth switch", "usage": "kraken auth switch [KEY]", "reach": "withheld", "group": "auth", "description": "Choose which stored Spot key is active: the API key from `kraken auth set` or the sign-in key from `kraken auth login`.\n\nA flag or an env var still overrides the active key. Without an argument, a prompt asks which key to use.", "credentials": "none", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "key": { "description": "The key to activate. Omit it to choose in a prompt.", "anyOf": [ { "description": "One of the two stored Spot keys. api-key: The API key that you set with `kraken auth set`.; sign-in: The sign-in key that `kraken auth login` created.", "type": "string", "enum": [ "api-key", "sign-in" ] }, { "type": "null" } ] } }, "additionalProperties": false }, "example": "kraken auth switch sign-in", "why": "not offered: local credential surgery with no remote use" }, { "name": "auth-test", "command": "kraken auth test", "usage": "kraken auth test", "tool": "kraken_auth_test", "reach": "tool", "group": "auth", "description": "Test authentication by calling the Balance endpoint.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken auth test" }, { "name": "balance", "command": "kraken balance", "usage": "kraken balance", "tool": "kraken_balance", "reach": "tool", "group": "account", "description": "Get all cash balances.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken balance -o json" }, { "name": "closed-orders", "command": "kraken closed-orders", "usage": "kraken closed-orders", "tool": "kraken_closed_orders", "reach": "tool", "group": "account", "description": "Get closed orders.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "trades": { "description": "Include trade details.", "type": "boolean", "default": false }, "start": { "description": "Starting unix timestamp or ID (exclusive).", "type": "string" }, "end": { "description": "Ending unix timestamp or ID (inclusive).", "type": "string" }, "offset": { "description": "Result offset for pagination.", "type": "integer", "format": "uint64", "minimum": 0 }, "without_count": { "description": "Omit count from result (faster for large histories).", "type": "boolean", "default": false }, "userref": { "description": "User reference filter.", "type": "integer", "format": "int32" }, "cl_ord_id": { "description": "Filter by client order ID.", "type": "string" }, "closetime": { "description": "Which time to use (open, close, both).", "type": "string", "enum": [ "open", "close", "both" ] }, "consolidate_taker": { "description": "Consolidate trades by individual taker trades.", "type": "boolean", "default": false }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken closed-orders --start 2025-01-01 -o json" }, { "name": "credit-lines", "command": "kraken credit-lines", "usage": "kraken credit-lines", "tool": "kraken_credit_lines", "reach": "tool", "group": "account", "description": "Get credit line details (VIP only).", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken credit-lines" }, { "name": "deposit-addresses", "command": "kraken deposit addresses", "usage": "kraken deposit addresses ", "tool": "kraken_deposit_addresses", "reach": "tool", "group": "funding", "description": "Get deposit addresses.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "type": "string" }, "method": { "type": "string" }, "new": { "type": "boolean", "default": false }, "asset_class": { "description": "Asset class (currency or tokenized_asset for xstocks).", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] }, "amount": { "description": "Amount to deposit (required for Bitcoin Lightning).", "type": "string" } }, "required": [ "asset", "method" ], "additionalProperties": false }, "example": "kraken deposit addresses BTC \"Bitcoin\"" }, { "name": "deposit-methods", "command": "kraken deposit methods", "usage": "kraken deposit methods ", "tool": "kraken_deposit_methods", "reach": "tool", "group": "funding", "description": "Get deposit methods for an asset.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "type": "string" }, "asset_class": { "description": "Asset class (currency or tokenized_asset for xstocks).", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "required": [ "asset" ], "additionalProperties": false }, "example": "kraken deposit methods BTC" }, { "name": "deposit-status", "command": "kraken deposit status", "usage": "kraken deposit status", "tool": "kraken_deposit_status", "reach": "tool", "group": "funding", "description": "Get deposit status.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "type": "string" }, "asset_class": { "description": "Asset class (currency or tokenized_asset for xstocks).", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] }, "method": { "description": "Filter by transfer method name.", "type": "string" }, "start": { "description": "Start timestamp (transfers before this are excluded).", "type": "string" }, "end": { "description": "End timestamp (transfers after this are excluded).", "type": "string" }, "cursor": { "description": "Enable pagination (true/false) or cursor for next page.", "type": "string" }, "limit": { "description": "Number of results per page.", "type": "integer", "format": "uint32", "minimum": 0 }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken deposit status --asset BTC -o json" }, { "name": "earn-allocate", "command": "kraken earn allocate", "usage": "kraken earn allocate ", "tool": "kraken_earn_allocate", "reach": "tool", "group": "earn", "description": "Allocate funds to an earn strategy.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "strategy_id": { "description": "Strategy ID.", "type": "string" }, "amount": { "description": "Amount to allocate.", "type": "string" } }, "required": [ "strategy_id", "amount" ], "additionalProperties": false }, "example": "kraken earn allocate ESXUM7H-SJHQ6-KOBAL7 1.5" }, { "name": "earn-allocate-status", "command": "kraken earn allocate-status", "usage": "kraken earn allocate-status ", "tool": "kraken_earn_allocate_status", "reach": "tool", "group": "earn", "description": "Check allocation status.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "strategy_id": { "description": "Strategy ID.", "type": "string" } }, "required": [ "strategy_id" ], "additionalProperties": false }, "example": "kraken earn allocate-status ESXUM7H-SJHQ6-KOBAL7" }, { "name": "earn-allocations", "command": "kraken earn allocations", "usage": "kraken earn allocations", "tool": "kraken_earn_allocations", "reach": "tool", "group": "earn", "description": "Get current allocations.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "ascending": { "description": "Sort ascending (default: descending).", "type": "boolean", "default": false }, "converted_asset": { "description": "Secondary currency to express allocation value (default: USD).", "type": "string" }, "hide_zero_allocations": { "description": "Omit strategies with zero allocations.", "type": "boolean", "default": false } }, "additionalProperties": false }, "example": "kraken earn allocations -o json" }, { "name": "earn-deallocate", "command": "kraken earn deallocate", "usage": "kraken earn deallocate ", "tool": "kraken_earn_deallocate", "reach": "tool", "group": "earn", "description": "Deallocate funds from an earn strategy.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "strategy_id": { "description": "Strategy ID.", "type": "string" }, "amount": { "description": "Amount to deallocate.", "type": "string" } }, "required": [ "strategy_id", "amount" ], "additionalProperties": false }, "example": "kraken earn deallocate ESXUM7H-SJHQ6-KOBAL7 0.5" }, { "name": "earn-deallocate-status", "command": "kraken earn deallocate-status", "usage": "kraken earn deallocate-status ", "tool": "kraken_earn_deallocate_status", "reach": "tool", "group": "earn", "description": "Check deallocation status.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "strategy_id": { "description": "Strategy ID.", "type": "string" } }, "required": [ "strategy_id" ], "additionalProperties": false }, "example": "kraken earn deallocate-status ESXUM7H-SJHQ6-KOBAL7" }, { "name": "earn-strategies", "command": "kraken earn strategies", "usage": "kraken earn strategies", "tool": "kraken_earn_strategies", "reach": "tool", "group": "earn", "description": "List available earn strategies.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "description": "Filter by asset.", "type": "string" }, "lock_type": { "description": "Filter by lock type (flex, bonded, timed, instant). Can specify multiple.", "type": "array", "items": { "type": "string" }, "default": [] }, "ascending": { "description": "Sort ascending (default: descending).", "type": "boolean", "default": false }, "cursor": { "description": "Cursor for next page of results.", "type": "string" }, "limit": { "description": "Number of items per page.", "type": "integer", "format": "uint16", "minimum": 0, "maximum": 65535 } }, "additionalProperties": false }, "example": "kraken earn strategies --asset ETH -o json" }, { "name": "explain-pnl", "command": "kraken explain pnl", "usage": "kraken explain pnl", "tool": "kraken_explain_pnl", "reach": "tool", "group": "paper", "description": "Decompose a stopped session's P&L into plain-terms components.\n\nPrice movement, fees, spread, slippage and residual, with missed-fill counterfactuals and per-origin attribution. Needs `kraken session stop` to have run first.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" } }, "additionalProperties": false }, "example": "kraken explain pnl --session latest -o json" }, { "name": "export-delete", "command": "kraken export-delete", "usage": "kraken export-delete ", "tool": "kraken_export_delete", "reach": "tool", "group": "account", "description": "Delete an export report.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "report_id": { "description": "Report ID to delete.", "type": "string" } }, "required": [ "report_id" ], "additionalProperties": false }, "example": "kraken export-delete ABCD" }, { "name": "export-report", "command": "kraken export-report", "usage": "kraken export-report", "tool": "kraken_export_report", "reach": "tool", "group": "account", "description": "Request an export report.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "report": { "description": "Type of data to export (trades or ledgers).", "type": "string", "enum": [ "trades", "ledgers" ] }, "description": { "description": "Description for the export.", "type": "string" }, "format": { "description": "File format.", "type": "string", "enum": [ "CSV", "TSV" ], "default": "CSV" }, "fields": { "description": "Comma-delimited list of fields to include (default: all).", "type": "string" }, "starttm": { "description": "UNIX timestamp for report start time (default: 1st of current month).", "type": "string" }, "endtm": { "description": "UNIX timestamp for report end time (default: now).", "type": "string" } }, "required": [ "report", "description" ], "additionalProperties": false }, "example": "kraken export-report --report trades --description \"Q1 trades\"" }, { "name": "export-retrieve", "command": "kraken export-retrieve", "usage": "kraken export-retrieve ", "tool": "kraken_export_retrieve", "reach": "tool", "group": "account", "description": "Download an export report.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "report_id": { "description": "Report ID to retrieve.", "type": "string" }, "output_file": { "description": "Output file path for the downloaded report.", "type": "string" } }, "required": [ "report_id" ], "additionalProperties": false }, "example": "kraken export-retrieve ABCD" }, { "name": "export-status", "command": "kraken export-status", "usage": "kraken export-status", "tool": "kraken_export_status", "reach": "tool", "group": "account", "description": "Check export report status.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "report": { "description": "Report type (trades or ledgers).", "type": "string", "enum": [ "trades", "ledgers" ] } }, "required": [ "report" ], "additionalProperties": false }, "example": "kraken export-status --report trades" }, { "name": "extended-balance", "command": "kraken extended-balance", "usage": "kraken extended-balance", "tool": "kraken_extended_balance", "reach": "tool", "group": "account", "description": "Get extended balances including credits and held amounts.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken extended-balance -o json" }, { "name": "feedback", "command": "kraken feedback", "usage": "kraken feedback ", "tool": "kraken_feedback", "reach": "tool", "group": "feedback", "description": "Submit product feedback (feature request, friction, or bug).\n\nSent to Kraken over HTTPS. The body comes from `--input-string` or `--input-file` and is capped at 8192 UTF-8 bytes.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "description": "Submit product feedback (feature request, friction, or bug).", "type": "object", "properties": { "feedback_type": { "description": "Feedback category: feature-request, friction, or bug. feature-request: Request a new capability or improvement.; friction: Report awkward or confusing CLI/skill behaviour.; bug: Report incorrect or broken behaviour.", "type": "string", "enum": [ "feature-request", "friction", "bug" ] }, "input_string": { "description": "Inline feedback body (mutually exclusive with --input-file).", "type": "string" }, "input_file": { "description": "Read the feedback body from a UTF-8 file (mutually exclusive with --input-string).", "type": "string" }, "llm_model": { "description": "Optional LLM / agent model identity (e.g. claude-opus-4, gpt-5).", "type": "string" } }, "required": [ "feedback_type" ], "additionalProperties": false }, "example": "kraken feedback bug --input-string \"order buy rejected with unclear error\" --llm-model claude-opus-4 -o json", "constraints": [ "give exactly one of `input_string`, `input_file`" ] }, { "name": "futures-accounts", "command": "kraken futures accounts", "usage": "kraken futures accounts", "tool": "kraken_futures_accounts", "reach": "tool", "group": "futures", "description": "Get futures account/wallet info (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures accounts -o json" }, { "name": "futures-assignment-programs", "command": "kraken futures assignment-programs", "usage": "kraken futures assignment-programs", "tool": "kraken_futures_assignment_programs", "reach": "tool", "group": "futures", "description": "Get current assignment programs (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures assignment-programs" }, { "name": "futures-batch-order", "command": "kraken futures batch-order", "usage": "kraken futures batch-order ", "tool": "kraken_futures_batch_order", "reach": "tool", "group": "futures", "description": "Place a batch of futures orders (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "orders_json": { "description": "Orders as JSON array or path to JSON file (prefix with @).", "type": "string" } }, "required": [ "orders_json" ], "additionalProperties": false }, "example": "kraken futures batch-order futures-orders.json" }, { "name": "futures-cancel", "command": "kraken futures cancel", "usage": "kraken futures cancel", "tool": "kraken_futures_cancel", "reach": "tool", "group": "futures", "description": "Cancel a futures order by order_id or client order id (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Exchange order ID.", "type": "string" }, "cli_ord_id": { "description": "Client order ID.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures cancel --order-id abc123", "constraints": [ "give at least one of `order_id`, `cli_ord_id`" ] }, { "name": "futures-cancel-after", "command": "kraken futures cancel-after", "usage": "kraken futures cancel-after ", "tool": "kraken_futures_cancel_after", "reach": "tool", "group": "futures", "description": "Dead man's switch: cancel all orders after timeout (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "timeout": { "description": "Timeout in seconds (0 to disable).", "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "timeout" ], "additionalProperties": false }, "example": "kraken futures cancel-after 120" }, { "name": "futures-cancel-all", "command": "kraken futures cancel-all", "usage": "kraken futures cancel-all", "tool": "kraken_futures_cancel_all", "reach": "tool", "group": "futures", "description": "Cancel all futures orders (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Filter by symbol.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures cancel-all --yes" }, { "name": "futures-edit-order", "command": "kraken futures edit-order", "usage": "kraken futures edit-order", "tool": "kraken_futures_edit_order", "reach": "tool", "group": "futures", "description": "Edit an existing futures order (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Order ID to edit.", "type": "string" }, "size": { "description": "New order size.", "type": "string" }, "price": { "description": "New limit price.", "type": "string" }, "stop_price": { "description": "New stop price.", "type": "string" } }, "required": [ "order_id" ], "additionalProperties": false }, "example": "kraken futures edit-order --order-id abc123 --price 52000" }, { "name": "futures-fee-schedule-volumes", "command": "kraken futures fee-schedule-volumes", "usage": "kraken futures fee-schedule-volumes", "tool": "kraken_futures_fee_schedule_volumes", "reach": "tool", "group": "futures", "description": "Get fee schedule volumes (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures fee-schedule-volumes" }, { "name": "futures-feeschedules", "command": "kraken futures feeschedules", "usage": "kraken futures feeschedules", "tool": "kraken_futures_feeschedules", "reach": "tool", "group": "futures", "description": "Get fee schedules (volumes and fees per contract).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures feeschedules -o json" }, { "name": "futures-fills", "command": "kraken futures fills", "usage": "kraken futures fills", "tool": "kraken_futures_fills", "reach": "tool", "group": "futures", "description": "Get recent fills (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "since": { "description": "Filter since this timestamp.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures fills --since 2025-01-01" }, { "name": "futures-historical-funding-rates", "command": "kraken futures historical-funding-rates", "usage": "kraken futures historical-funding-rates ", "tool": "kraken_futures_historical_funding_rates", "reach": "tool", "group": "futures", "description": "Get historical funding rates.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol (e.g. PI_XBTUSD).", "type": "string" } }, "required": [ "symbol" ], "additionalProperties": false }, "example": "kraken futures historical-funding-rates PI_XBTUSD" }, { "name": "futures-history", "command": "kraken futures history", "usage": "kraken futures history ", "tool": "kraken_futures_history", "reach": "tool", "group": "futures", "description": "Get recent futures trade history.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" }, "since": { "description": "Fetch history since this timestamp.", "type": "string" }, "before": { "description": "Fetch history before this timestamp.", "type": "string" } }, "required": [ "symbol" ], "additionalProperties": false }, "example": "kraken futures history PF_XBTUSD" }, { "name": "futures-history-account-log-csv", "command": "kraken futures history-account-log-csv", "usage": "kraken futures history-account-log-csv", "tool": "kraken_futures_history_account_log_csv", "reach": "tool", "group": "futures", "description": "Download account log as CSV (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "since": { "description": "Filter since this timestamp.", "type": "string" }, "before": { "description": "Filter before this timestamp.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures history-account-log-csv --since 2025-01-01" }, { "name": "futures-history-executions", "command": "kraken futures history-executions", "usage": "kraken futures history-executions", "tool": "kraken_futures_history_executions", "reach": "tool", "group": "futures", "description": "Get execution history (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "since": { "description": "Filter since this timestamp.", "type": "string" }, "before": { "description": "Filter before this timestamp.", "type": "string" }, "sort": { "description": "Sort order (asc or desc).", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures history-executions --since 2025-01-01" }, { "name": "futures-history-orders", "command": "kraken futures history-orders", "usage": "kraken futures history-orders", "tool": "kraken_futures_history_orders", "reach": "tool", "group": "futures", "description": "Get order history (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "since": { "description": "Filter since this timestamp.", "type": "string" }, "before": { "description": "Filter before this timestamp.", "type": "string" }, "sort": { "description": "Sort order (asc or desc).", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures history-orders --since 2025-01-01" }, { "name": "futures-history-triggers", "command": "kraken futures history-triggers", "usage": "kraken futures history-triggers", "tool": "kraken_futures_history_triggers", "reach": "tool", "group": "futures", "description": "Get trigger history (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "since": { "description": "Filter since this timestamp.", "type": "string" }, "before": { "description": "Filter before this timestamp.", "type": "string" }, "sort": { "description": "Sort order (asc or desc).", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures history-triggers" }, { "name": "futures-instrument-status", "command": "kraken futures instrument-status", "usage": "kraken futures instrument-status", "tool": "kraken_futures_instrument_status", "reach": "tool", "group": "futures", "description": "Get instrument status (all or per symbol).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Specific symbol to query (omit for all).", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures instrument-status --symbol PF_XBTUSD" }, { "name": "futures-instruments", "command": "kraken futures instruments", "usage": "kraken futures instruments", "tool": "kraken_futures_instruments", "reach": "tool", "group": "futures", "description": "List all futures instruments/contracts.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures instruments -o json" }, { "name": "futures-leverage", "command": "kraken futures leverage", "usage": "kraken futures leverage", "tool": "kraken_futures_leverage", "reach": "tool", "group": "futures", "description": "Get current leverage preference (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Filter by symbol (omit for all).", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures leverage --symbol PF_XBTUSD" }, { "name": "futures-notifications", "command": "kraken futures notifications", "usage": "kraken futures notifications", "tool": "kraken_futures_notifications", "reach": "tool", "group": "futures", "description": "Get notifications (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures notifications" }, { "name": "futures-open-orders", "command": "kraken futures open-orders", "usage": "kraken futures open-orders", "tool": "kraken_futures_open_orders", "reach": "tool", "group": "futures", "description": "Get open futures orders (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures open-orders" }, { "name": "futures-order-buy", "command": "kraken futures order buy", "usage": "kraken futures order buy ", "tool": "kraken_futures_order_buy", "reach": "tool", "group": "futures", "description": "Place a buy order.", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" }, "size": { "description": "Order size.", "type": "string" }, "type": { "description": "Order type.", "type": "string", "enum": [ "market", "limit", "post", "stop", "take-profit", "ioc", "trailing-stop", "fok" ], "default": "limit" }, "price": { "description": "Limit price.", "type": "string" }, "stop_price": { "description": "Stop price (for stop and take-profit orders).", "type": "string" }, "trigger_signal": { "description": "Trigger signal: mark, index, or last.", "type": "string", "enum": [ "mark", "index", "last" ] }, "client_order_id": { "description": "Client order ID for correlation.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "trailing_stop_max_deviation": { "description": "Trailing stop max deviation.", "type": "string" }, "trailing_stop_deviation_unit": { "description": "Trailing stop deviation unit.", "type": "string", "enum": [ "percent", "quote_currency" ] } }, "required": [ "symbol", "size" ], "additionalProperties": false }, "example": "kraken futures order buy PF_XBTUSD 1 --type limit --price 50000" }, { "name": "futures-order-sell", "command": "kraken futures order sell", "usage": "kraken futures order sell ", "tool": "kraken_futures_order_sell", "reach": "tool", "group": "futures", "description": "Place a sell order.", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" }, "size": { "description": "Order size.", "type": "string" }, "type": { "description": "Order type.", "type": "string", "enum": [ "market", "limit", "post", "stop", "take-profit", "ioc", "trailing-stop", "fok" ], "default": "limit" }, "price": { "description": "Limit price.", "type": "string" }, "stop_price": { "description": "Stop price (for stop and take-profit orders).", "type": "string" }, "trigger_signal": { "description": "Trigger signal: mark, index, or last.", "type": "string", "enum": [ "mark", "index", "last" ] }, "client_order_id": { "description": "Client order ID for correlation.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "trailing_stop_max_deviation": { "description": "Trailing stop max deviation.", "type": "string" }, "trailing_stop_deviation_unit": { "description": "Trailing stop deviation unit.", "type": "string", "enum": [ "percent", "quote_currency" ] } }, "required": [ "symbol", "size" ], "additionalProperties": false }, "example": "kraken futures order sell PF_XBTUSD 1 --type limit --price 100000" }, { "name": "futures-order-status", "command": "kraken futures order-status", "usage": "kraken futures order-status ", "tool": "kraken_futures_order_status", "reach": "tool", "group": "futures", "description": "Get status of orders by ID (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "order_ids": { "description": "Order ID to query.", "type": "array", "items": { "type": "string" } } }, "required": [ "order_ids" ], "additionalProperties": false }, "example": "kraken futures order-status abc123 def456", "constraints": [ "`order_ids` must list at least one value" ] }, { "name": "futures-orderbook", "command": "kraken futures orderbook", "usage": "kraken futures orderbook ", "tool": "kraken_futures_orderbook", "reach": "tool", "group": "futures", "description": "Get futures order book.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" } }, "required": [ "symbol" ], "additionalProperties": false }, "example": "kraken futures orderbook PF_XBTUSD" }, { "name": "futures-paper-balance", "command": "kraken futures paper balance", "usage": "kraken futures paper balance", "tool": "kraken_futures_paper_balance", "reach": "tool", "group": "futures-paper", "description": "Show futures paper collateral balance.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper balance" }, { "name": "futures-paper-batch-order", "command": "kraken futures paper batch-order", "usage": "kraken futures paper batch-order ", "tool": "kraken_futures_paper_batch_order", "reach": "tool", "group": "futures-paper", "description": "Place a batch of futures paper orders (JSON array).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "orders_json": { "description": "Orders as JSON array or path to JSON file (prefix with @). Each row takes `side` (buy or sell) and the `futures paper buy` arguments by name: `symbol`, `size`, `type`, `price`, `leverage` and so on.", "type": "string" } }, "required": [ "orders_json" ], "additionalProperties": false }, "example": "kraken futures paper batch-order '[{\"symbol\":\"PF_XBTUSD\",\"side\":\"buy\",\"size\":1,\"type\":\"limit\",\"price\":50000,\"leverage\":10}]'" }, { "name": "futures-paper-buy", "command": "kraken futures paper buy", "usage": "kraken futures paper buy ", "tool": "kraken_futures_paper_buy", "reach": "tool", "group": "futures-paper", "description": "Place a futures paper buy (long) order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol (e.g. PF_XBTUSD).", "type": "string" }, "size": { "description": "Order size.", "type": "string" }, "type": { "description": "Order type (default: limit).", "type": "string", "enum": [ "market", "limit", "post", "stop", "take-profit", "ioc", "trailing-stop", "fok" ], "default": "limit" }, "price": { "description": "Limit price.", "type": "string" }, "stop_price": { "description": "Stop/trigger price.", "type": "string" }, "trigger_signal": { "description": "Trigger signal: mark, index, or last.", "type": "string", "enum": [ "mark", "index", "last" ] }, "client_order_id": { "description": "Client order ID.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "leverage": { "description": "Leverage override for this order.", "type": "string" }, "trailing_stop_max_deviation": { "description": "Trailing stop max deviation.", "type": "string" }, "trailing_stop_deviation_unit": { "description": "Trailing stop deviation unit (percent or quote_currency).", "type": "string" } }, "required": [ "symbol", "size" ], "additionalProperties": false }, "example": "kraken futures paper buy PF_XBTUSD 1 --leverage 10 --type market" }, { "name": "futures-paper-cancel", "command": "kraken futures paper cancel", "usage": "kraken futures paper cancel", "tool": "kraken_futures_paper_cancel", "reach": "tool", "group": "futures-paper", "description": "Cancel a futures paper order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Exchange order ID.", "type": "string" }, "cli_ord_id": { "description": "Client order ID.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures paper cancel --order-id abc123", "constraints": [ "give at least one of `order_id`, `cli_ord_id`" ] }, { "name": "futures-paper-cancel-all", "command": "kraken futures paper cancel-all", "usage": "kraken futures paper cancel-all", "tool": "kraken_futures_paper_cancel_all", "reach": "tool", "group": "futures-paper", "description": "Cancel all futures paper orders.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Filter by symbol.", "type": "string" } }, "additionalProperties": false }, "example": "kraken futures paper cancel-all --symbol PF_XBTUSD" }, { "name": "futures-paper-edit-order", "command": "kraken futures paper edit-order", "usage": "kraken futures paper edit-order", "tool": "kraken_futures_paper_edit_order", "reach": "tool", "group": "futures-paper", "description": "Edit a resting futures paper order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Order ID to edit.", "type": "string" }, "size": { "description": "New order size.", "type": "string" }, "price": { "description": "New limit price.", "type": "string" }, "stop_price": { "description": "New stop price.", "type": "string" } }, "required": [ "order_id" ], "additionalProperties": false }, "example": "kraken futures paper edit-order --order-id abc123 --size 2 --price 51000" }, { "name": "futures-paper-fills", "command": "kraken futures paper fills", "usage": "kraken futures paper fills", "tool": "kraken_futures_paper_fills", "reach": "tool", "group": "futures-paper", "description": "Show futures paper fill history.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper fills" }, { "name": "futures-paper-history", "command": "kraken futures paper history", "usage": "kraken futures paper history", "tool": "kraken_futures_paper_history", "reach": "tool", "group": "futures-paper", "description": "Show futures paper account history.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper history" }, { "name": "futures-paper-init", "command": "kraken futures paper init", "usage": "kraken futures paper init", "tool": "kraken_futures_paper_init", "reach": "tool", "group": "futures-paper", "description": "Initialize futures paper trading account.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "balance": { "description": "Starting collateral balance (default: 10000).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$", "default": 10000.0 }, "currency": { "description": "Collateral currency (default: USD).", "type": "string", "default": "USD" }, "fee_rate": { "description": "Fee rate as a decimal (default: 0.0005 = 0.05%).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" } }, "additionalProperties": false }, "example": "kraken futures paper init --balance 10000 --currency USD" }, { "name": "futures-paper-leverage", "command": "kraken futures paper leverage", "usage": "kraken futures paper leverage", "tool": "kraken_futures_paper_leverage", "reach": "tool", "group": "futures-paper", "description": "Get current leverage preferences.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "type": "string" } }, "additionalProperties": false }, "example": "kraken futures paper leverage" }, { "name": "futures-paper-order-status", "command": "kraken futures paper order-status", "usage": "kraken futures paper order-status ", "tool": "kraken_futures_paper_order_status", "reach": "tool", "group": "futures-paper", "description": "Get status of a specific order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Order ID to query.", "type": "string" } }, "required": [ "order_id" ], "additionalProperties": false }, "example": "kraken futures paper order-status abc123" }, { "name": "futures-paper-orders", "command": "kraken futures paper orders", "usage": "kraken futures paper orders", "tool": "kraken_futures_paper_orders", "reach": "tool", "group": "futures-paper", "description": "Show open futures paper orders.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper orders" }, { "name": "futures-paper-positions", "command": "kraken futures paper positions", "usage": "kraken futures paper positions", "tool": "kraken_futures_paper_positions", "reach": "tool", "group": "futures-paper", "description": "Show open futures paper positions.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper positions" }, { "name": "futures-paper-reset", "command": "kraken futures paper reset", "usage": "kraken futures paper reset", "tool": "kraken_futures_paper_reset", "reach": "tool", "group": "futures-paper", "description": "Reset futures paper account.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "balance": { "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "currency": { "type": "string" }, "fee_rate": { "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" } }, "additionalProperties": false }, "example": "kraken futures paper reset" }, { "name": "futures-paper-sell", "command": "kraken futures paper sell", "usage": "kraken futures paper sell ", "tool": "kraken_futures_paper_sell", "reach": "tool", "group": "futures-paper", "description": "Place a futures paper sell (short) order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol (e.g. PF_XBTUSD).", "type": "string" }, "size": { "description": "Order size.", "type": "string" }, "type": { "description": "Order type (default: limit).", "type": "string", "enum": [ "market", "limit", "post", "stop", "take-profit", "ioc", "trailing-stop", "fok" ], "default": "limit" }, "price": { "description": "Limit price.", "type": "string" }, "stop_price": { "description": "Stop/trigger price.", "type": "string" }, "trigger_signal": { "description": "Trigger signal: mark, index, or last.", "type": "string", "enum": [ "mark", "index", "last" ] }, "client_order_id": { "description": "Client order ID.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "leverage": { "description": "Leverage override for this order.", "type": "string" }, "trailing_stop_max_deviation": { "description": "Trailing stop max deviation.", "type": "string" }, "trailing_stop_deviation_unit": { "description": "Trailing stop deviation unit (percent or quote_currency).", "type": "string" } }, "required": [ "symbol", "size" ], "additionalProperties": false }, "example": "kraken futures paper sell PF_ETHUSD 5 --leverage 20 --type market" }, { "name": "futures-paper-set-leverage", "command": "kraken futures paper set-leverage", "usage": "kraken futures paper set-leverage ", "tool": "kraken_futures_paper_set_leverage", "reach": "tool", "group": "futures-paper", "description": "Set leverage preference for a symbol.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" }, "leverage": { "description": "Max leverage value.", "type": "string" } }, "required": [ "symbol", "leverage" ], "additionalProperties": false }, "example": "kraken futures paper set-leverage PF_XBTUSD 10" }, { "name": "futures-paper-status", "command": "kraken futures paper status", "usage": "kraken futures paper status", "tool": "kraken_futures_paper_status", "reach": "tool", "group": "futures-paper", "description": "Show futures paper account summary.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures paper status" }, { "name": "futures-pnl-preferences", "command": "kraken futures pnl-preferences", "usage": "kraken futures pnl-preferences", "tool": "kraken_futures_pnl_preferences", "reach": "tool", "group": "futures", "description": "Get PnL preferences (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures pnl-preferences" }, { "name": "futures-positions", "command": "kraken futures positions", "usage": "kraken futures positions", "tool": "kraken_futures_positions", "reach": "tool", "group": "futures", "description": "Get open futures positions (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures positions -o json" }, { "name": "futures-set-leverage", "command": "kraken futures set-leverage", "usage": "kraken futures set-leverage [LEVERAGE]", "tool": "kraken_futures_set_leverage", "reach": "tool", "group": "futures", "description": "Set leverage preference for a symbol (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol.", "type": "string" }, "leverage": { "description": "Max leverage value (omit to use cross margin).", "type": "string" } }, "required": [ "symbol" ], "additionalProperties": false }, "example": "kraken futures set-leverage PF_XBTUSD 5" }, { "name": "futures-set-pnl-preference", "command": "kraken futures set-pnl-preference", "usage": "kraken futures set-pnl-preference ", "tool": "kraken_futures_set_pnl_preference", "reach": "tool", "group": "futures", "description": "Set PnL preference for a symbol (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol (e.g. PF_XBTUSD).", "type": "string" }, "preference": { "description": "PnL preference asset (e.g. USD).", "type": "string" } }, "required": [ "symbol", "preference" ], "additionalProperties": false }, "example": "kraken futures set-pnl-preference PF_XBTUSD USD" }, { "name": "futures-set-subaccount-status", "command": "kraken futures set-subaccount-status", "usage": "kraken futures set-subaccount-status ", "tool": "kraken_futures_set_subaccount_status", "reach": "tool", "group": "futures", "description": "Set trading-enabled for a subaccount (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "subaccount_uid": { "description": "Subaccount UID.", "type": "string" }, "trading_enabled": { "description": "Enable or disable trading: `true` or `false` (the command line also accepts yes/no and 1/0, which a tool call's schema does not).", "type": "string", "enum": [ "true", "false" ] } }, "required": [ "subaccount_uid", "trading_enabled" ], "additionalProperties": false }, "example": "kraken futures set-subaccount-status abc123 true" }, { "name": "futures-subaccount-status", "command": "kraken futures subaccount-status", "usage": "kraken futures subaccount-status ", "tool": "kraken_futures_subaccount_status", "reach": "tool", "group": "futures", "description": "Get trading-enabled status for a subaccount (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "subaccount_uid": { "description": "Subaccount UID.", "type": "string" } }, "required": [ "subaccount_uid" ], "additionalProperties": false }, "example": "kraken futures subaccount-status abc123" }, { "name": "futures-subaccounts", "command": "kraken futures subaccounts", "usage": "kraken futures subaccounts", "tool": "kraken_futures_subaccounts", "reach": "tool", "group": "futures", "description": "Get subaccounts (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures subaccounts" }, { "name": "futures-ticker", "command": "kraken futures ticker", "usage": "kraken futures ticker ", "tool": "kraken_futures_ticker", "reach": "tool", "group": "futures", "description": "Get ticker for a single contract.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "symbol": { "description": "Futures symbol (e.g. PI_XBTUSD).", "type": "string" } }, "required": [ "symbol" ], "additionalProperties": false }, "example": "kraken futures ticker PF_XBTUSD" }, { "name": "futures-tickers", "command": "kraken futures tickers", "usage": "kraken futures tickers", "tool": "kraken_futures_tickers", "reach": "tool", "group": "futures", "description": "Get all futures tickers.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures tickers" }, { "name": "futures-trading-instruments", "command": "kraken futures trading-instruments", "usage": "kraken futures trading-instruments", "tool": "kraken_futures_trading_instruments", "reach": "tool", "group": "futures", "description": "Get trading instruments (optional filter by contract type) (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "contract_type": { "description": "Filter by contract type.", "type": "string", "enum": [ "futures_inverse", "futures_vanilla", "flexible_futures" ] } }, "additionalProperties": false }, "example": "kraken futures trading-instruments --contract-type futures_inverse" }, { "name": "futures-transfer", "command": "kraken futures transfer", "usage": "kraken futures transfer ", "tool": "kraken_futures_transfer", "reach": "tool", "group": "futures", "description": "Transfer funds between spot and futures wallets (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "amount": { "description": "Amount.", "type": "string" }, "currency": { "description": "Currency (e.g. USD, XBT).", "type": "string" } }, "required": [ "amount", "currency" ], "additionalProperties": false }, "example": "kraken futures transfer 1000 USD" }, { "name": "futures-transfers", "command": "kraken futures transfers", "usage": "kraken futures transfers", "tool": "kraken_futures_transfers", "reach": "tool", "group": "futures", "description": "Get futures transfer history (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures transfers -o json" }, { "name": "futures-unwind-queue", "command": "kraken futures unwind-queue", "usage": "kraken futures unwind-queue", "tool": "kraken_futures_unwind_queue", "reach": "tool", "group": "futures", "description": "Get unwind queue (auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures unwind-queue" }, { "name": "futures-wallet-transfer", "command": "kraken futures wallet-transfer", "usage": "kraken futures wallet-transfer ", "tool": "kraken_futures_wallet_transfer", "reach": "tool", "group": "futures", "description": "Transfer between wallets (auth required).", "credentials": "futures", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "from_account": { "description": "Source account.", "type": "string" }, "to_account": { "description": "Destination account.", "type": "string" }, "unit": { "description": "Currency unit (e.g. USD, XBT).", "type": "string" }, "amount": { "description": "Amount to transfer.", "type": "string" } }, "required": [ "from_account", "to_account", "unit", "amount" ], "additionalProperties": false }, "example": "kraken futures wallet-transfer main flex USD 100" }, { "name": "futures-ws-account-log", "command": "kraken futures ws account-log", "usage": "kraken futures ws account-log", "reach": "stream", "group": "futures-ws", "description": "Stream account log (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws account-log", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-balances", "command": "kraken futures ws balances", "usage": "kraken futures ws balances", "reach": "stream", "group": "futures-ws", "description": "Stream account balances and margins (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws balances", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-book", "command": "kraken futures ws book", "usage": "kraken futures ws book ", "reach": "stream", "group": "futures-ws", "description": "Stream futures order book updates (public).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "markets": { "description": "Market symbols.", "type": "array", "items": { "type": "string" } } }, "required": [ "markets" ], "additionalProperties": false }, "example": "kraken futures ws book PF_XBTUSD", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-fills", "command": "kraken futures ws fills", "usage": "kraken futures ws fills", "reach": "stream", "group": "futures-ws", "description": "Stream fills (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws fills", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-notifications", "command": "kraken futures ws notifications", "usage": "kraken futures ws notifications", "reach": "stream", "group": "futures-ws", "description": "Stream notifications (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws notifications", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-open-orders", "command": "kraken futures ws open-orders", "usage": "kraken futures ws open-orders", "reach": "stream", "group": "futures-ws", "description": "Stream open orders (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws open-orders", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-open-positions", "command": "kraken futures ws open-positions", "usage": "kraken futures ws open-positions", "reach": "stream", "group": "futures-ws", "description": "Stream open positions (private, auth required).", "credentials": "futures", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken futures ws open-positions", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-ticker", "command": "kraken futures ws ticker", "usage": "kraken futures ws ticker ", "reach": "stream", "group": "futures-ws", "description": "Stream futures ticker updates (public).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "markets": { "description": "Market symbols (e.g. PF_XBTUSD).", "type": "array", "items": { "type": "string" } } }, "required": [ "markets" ], "additionalProperties": false }, "example": "kraken futures ws ticker PF_XBTUSD PF_ETHUSD", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "futures-ws-trades", "command": "kraken futures ws trades", "usage": "kraken futures ws trades ", "reach": "stream", "group": "futures-ws", "description": "Stream futures trades (public).", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "markets": { "description": "Market symbols.", "type": "array", "items": { "type": "string" } } }, "required": [ "markets" ], "additionalProperties": false }, "example": "kraken futures ws trades PF_XBTUSD", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "lab-compare", "command": "kraken lab compare", "usage": "kraken lab compare ", "tool": "kraken_lab_compare", "reach": "tool", "group": "paper", "description": "Compare every session of a frozen experiment side by side: each session re-scored from disk and judged against the sealed criteria.\n\nPer-session verdicts are the only cross-session comparable numbers, because sessions cover different market windows. A session that cannot be scored appears as a named error column, never an omission, and `pass_count` counts only mechanically scored passing verdicts.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "name": { "description": "Experiment name.", "type": "string" } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken lab compare momentum-1 -o json" }, { "name": "lab-curve", "command": "kraken lab curve", "usage": "kraken lab curve", "tool": "kraken_lab_curve", "reach": "tool", "group": "paper", "description": "The marked equity curve point by point — the full series `lab score` summarizes.\n\nOne point per valuation-changing instant with its timestamp, value and completeness flag, so a consumer can compute its own metrics (Sharpe, Sortino, rolling drawdown) without re-deriving the fold from the journal and tape. Refuses the same sessions `lab score` refuses: still recording, no final summary, a partial journal, or no account epoch.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" } }, "additionalProperties": false }, "example": "kraken lab curve --session latest -o json" }, { "name": "lab-new", "command": "kraken lab new", "usage": "kraken lab new ", "tool": "kraken_lab_new", "reach": "tool", "group": "paper", "description": "Pre-register an experiment: freeze a hypothesis and its success criteria (hash-sealed) before any session.\n\nThe seal is what makes a post-hoc goalpost move detectable; a frozen spec is immutable.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "name": { "description": "Experiment name (session charset; becomes session names).", "type": "string" }, "hypothesis": { "description": "The falsifiable claim being tested.", "type": "string" }, "strategy": { "description": "The strategy under test, if one is named.", "type": "string" }, "min_return_pct": { "description": "Success: return of at least this percent.", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "max_drawdown_pct": { "description": "Success: worst drop relative to its peak (max percentage drawdown) of at most this percent.", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "min_fills": { "description": "Success: at least this many fills (guards a pass-by-not-trading).", "type": "integer", "format": "uint64", "minimum": 0 }, "sessions": { "description": "Pre-register a session (repeatable, ordered): `live:` or `replay:`. Replay tapes must exist and be finalized — their content hash is sealed with the spec.", "type": "array", "items": { "type": "string" }, "default": [] } }, "required": [ "name", "hypothesis" ], "additionalProperties": false }, "example": "kraken lab new momentum-1 --hypothesis 'buying strength beats the tape' --min-return-pct 1 --min-fills 2 -o json" }, { "name": "lab-next", "command": "kraken lab next", "usage": "kraken lab next ", "tool": "kraken_lab_next", "reach": "tool", "group": "paper", "description": "What the sealed session plan says to do now: the exact start command for the next run, the session still in progress, or `plan_complete` pointing at `kraken lab compare`.\n\nProgress is re-derived from the sessions tree on every call; aborted sessions keep their ordinals and never count toward the plan. Refuses to hand out a replay session whose tape no longer matches its sealed content hash.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "name": { "description": "Experiment name.", "type": "string" } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken lab next dca-robust-1 -o json" }, { "name": "lab-score", "command": "kraken lab score", "usage": "kraken lab score", "tool": "kraken_lab_score", "reach": "tool", "group": "paper", "description": "Score a stopped session: the explain-pnl waterfall plus mechanical metrics over the marked curve.\n\nA source block naming the session's provenance (replay tape and speed, or live and symbols), the explain-pnl waterfall carried verbatim, and mechanical metrics — return, max drawdown, fees, friction, turnover, hit rate, profit factor, slippage sensitivity, trade counts — over the session's own recorded marks. Hit rate and profit factor grade closed FIFO round trips only and read null when no lot closed. Needs `kraken session stop` to have run first. With `--experiment`, judges the scorecard against a frozen experiment's criteria and adds a mechanical pass/fail verdict.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" }, "experiment": { "description": "Judge the scorecard against a frozen experiment's criteria; the output gains a mechanical pass/fail verdict.", "type": "string" } }, "additionalProperties": false }, "example": "kraken lab score --session latest --experiment momentum-1 -o json" }, { "name": "lab-show", "command": "kraken lab show", "usage": "kraken lab show ", "tool": "kraken_lab_show", "reach": "tool", "group": "paper", "description": "Show a frozen experiment, verifying its seal.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "name": { "description": "Experiment name.", "type": "string" } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken lab show momentum-1 -o json" }, { "name": "ledgers", "command": "kraken ledgers", "usage": "kraken ledgers", "tool": "kraken_ledgers", "reach": "tool", "group": "account", "description": "Get ledger entries.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "asset": { "description": "Filter by asset or comma-delimited list of assets.", "type": "string" }, "ledger_type": { "description": "Type of ledger to retrieve.", "type": "string" }, "asset_class": { "description": "Filter by asset class.", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] }, "start": { "description": "Starting unix timestamp or ID (exclusive).", "type": "string" }, "end": { "description": "Ending unix timestamp or ID (inclusive).", "type": "string" }, "offset": { "description": "Result offset for pagination.", "type": "integer", "format": "uint64", "minimum": 0 }, "without_count": { "description": "Omit count from result (faster for large histories).", "type": "boolean", "default": false }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken ledgers --asset BTC --type trade -o json" }, { "name": "ohlc", "command": "kraken ohlc", "usage": "kraken ohlc ", "tool": "kraken_ohlc", "reach": "tool", "group": "market", "description": "Get OHLC candle data.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair.", "type": "string" }, "interval": { "description": "Candle interval in minutes (1, 5, 15, 30, 60, 240, 1440, 10080, 21600).", "type": "integer", "format": "uint32", "minimum": 0, "default": 60 }, "since": { "description": "Unix timestamp to fetch data since.", "type": "string" }, "asset_class": { "description": "Asset class filter.", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] } }, "required": [ "pair" ], "additionalProperties": false }, "example": "kraken ohlc BTC/USD --interval 60 -o json" }, { "name": "open-orders", "command": "kraken open-orders", "usage": "kraken open-orders", "tool": "kraken_open_orders", "reach": "tool", "group": "account", "description": "Get currently open orders.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "trades": { "description": "Include trade details.", "type": "boolean", "default": false }, "userref": { "description": "Filter by user reference ID.", "type": "integer", "format": "int32" }, "cl_ord_id": { "description": "Filter by client order ID.", "type": "string" }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken open-orders -o json" }, { "name": "order-amend", "command": "kraken order amend", "usage": "kraken order amend", "tool": "kraken_order_amend", "reach": "tool", "group": "trade", "description": "Amend a live order in-place (preserves queue priority and identifiers).", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "txid": { "description": "Kraken transaction ID of the order to amend (either txid or --cl-ord-id required).", "type": "string" }, "cl_ord_id": { "description": "Client order ID of the order to amend (either --txid or --cl-ord-id required).", "type": "string" }, "order_qty": { "description": "New order quantity in base asset.", "type": "string" }, "display_qty": { "description": "New display quantity for iceberg orders (min 1/15 of remaining quantity).", "type": "string" }, "limit_price": { "description": "New limit price (supports +/- relative and % suffix).", "type": "string" }, "trigger_price": { "description": "New trigger price for triggered order types (supports +/- relative and % suffix).", "type": "string" }, "pair": { "description": "Trading pair (required for non-crypto pairs, e.g. xstocks).", "type": "string" }, "post_only": { "description": "Reject amend if limit price change would cause immediate match.", "type": "boolean", "default": false }, "deadline": { "description": "RFC3339 deadline (min now()+2s, max now()+60s).", "type": "string" } }, "additionalProperties": false }, "example": "kraken order amend --txid OABC12-DEFG3-HIJKL4 --limit-price 51000" }, { "name": "order-batch", "command": "kraken order batch", "usage": "kraken order batch ", "tool": "kraken_order_batch", "reach": "tool", "group": "trade", "description": "Submit batch orders from a JSON file (2-15 orders).", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "json_file": { "description": "Path to JSON file containing order array.", "type": "string" }, "pair": { "description": "Asset pair (overrides pair from JSON; required if not in JSON).", "type": "string" }, "asset_class": { "description": "Asset class (required for non-crypto pairs, e.g. tokenized_asset for xstocks).", "type": "string" }, "deadline": { "description": "RFC3339 deadline for the batch to reach the matching engine.", "type": "string" }, "validate": { "description": "Validate only (do not submit).", "type": "boolean", "default": false } }, "required": [ "json_file" ], "additionalProperties": false }, "example": "kraken order batch orders.json --validate" }, { "name": "order-buy", "command": "kraken order buy", "usage": "kraken order buy ", "tool": "kraken_order_buy", "reach": "tool", "group": "trade", "description": "Place a buy order.\n\nRouted by workspace mode: fills on the paper journal inside a paper workspace, trades the real account otherwise. Inside a live workspace, an order spending beyond what the allocation ledger holds free of resting orders is refused before the venue (a validation envelope); the order that pays the allocated asset back in is never refused.", "credentials": "spot", "dangerous": true, "paper_safe": true, "effect": "paper_safe", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair (e.g. XBTUSD).", "type": "string" }, "volume": { "description": "Order volume.", "type": "string" }, "type": { "description": "Order type (market, limit, iceberg, stop-loss, take-profit, stop-loss-limit, take-profit-limit, trailing-stop, trailing-stop-limit, settle-position).", "type": "string", "default": "limit" }, "price": { "description": "Price (required for non-market orders).", "type": "string" }, "price2": { "description": "Limit price for stop-loss-limit, take-profit-limit, and trailing-stop-limit orders.", "type": "string" }, "displayvol": { "description": "Display volume for iceberg orders (visible portion in the order book).", "type": "string" }, "trigger": { "description": "Price signal for triggered orders (last or index). Applies to stop-loss, stop-loss-limit, take-profit, take-profit-limit, trailing-stop, trailing-stop-limit.", "type": "string" }, "leverage": { "description": "Leverage.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "timeinforce": { "description": "Time-in-force (GTC, IOC, GTD).", "type": "string" }, "start_time": { "description": "Start time.", "type": "string" }, "expire_time": { "description": "Expire time.", "type": "string" }, "userref": { "description": "User reference ID (signed 32-bit, for tagging groups of orders).", "type": "integer", "format": "int32" }, "cl_ord_id": { "description": "Client order ID (mutually exclusive with userref).", "type": "string" }, "oflags": { "description": "Order flags (comma-delimited: post, fcib, fciq, nompp, viqc).", "type": "string" }, "stptype": { "description": "Self-trade prevention type (cancel-newest, cancel-oldest, cancel-both).", "type": "string" }, "close_ordertype": { "description": "Conditional close order type (limit, stop-loss, take-profit, stop-loss-limit, take-profit-limit).", "type": "string" }, "close_price": { "description": "Conditional close order price.", "type": "string" }, "close_price2": { "description": "Conditional close order secondary price.", "type": "string" }, "deadline": { "description": "RFC3339 deadline for the order to reach the matching engine.", "type": "string" }, "validate": { "description": "Validate only (do not submit).", "type": "boolean", "default": false }, "asset_class": { "description": "Asset class (required for non-crypto pairs, e.g. tokenized_asset for xstocks).", "type": "string" }, "reason": { "description": "Rationale to record in the decision log: the active session's when one is recording, else the workspace's, or the real account's outside one.", "type": "string" } }, "required": [ "pair", "volume" ], "additionalProperties": false }, "example": "kraken order buy BTC/USD 0.001 --type limit --price 50000 --validate" }, { "name": "order-cancel", "command": "kraken order cancel", "usage": "kraken order cancel [TXIDS...]", "tool": "kraken_order_cancel", "reach": "tool", "group": "trade", "description": "Cancel an open order by txid, userref, or client order ID.\n\nRouted by workspace mode: inside a paper workspace it cancels on the workspace journal (a single txid only). Against the real account it sends one CancelOrder per transaction ID so each order's outcome is known — a sweep that only partly succeeds exits 1 with an `api` envelope carrying `cancelled` and `failed` lists, and only venue-confirmed cancels are recorded locally. Inside a live workspace it reconciles first and cancels only the order IDs that workspace recorded, never the account-wide CancelAll.", "credentials": "spot", "dangerous": true, "paper_safe": true, "effect": "paper_safe", "input_schema": { "type": "object", "properties": { "txids": { "description": "Transaction ID(s) or userref (comma-separated for multiple).", "type": "array", "items": { "type": "string" }, "default": [] }, "cl_ord_id": { "description": "Cancel by client order ID instead of txid.", "type": "string" }, "reason": { "description": "Rationale to record in the decision log: the active session's when one is recording, else the workspace's, or the real account's outside one.", "type": "string" } }, "additionalProperties": false }, "example": "kraken order cancel OABC12-DEFG3-HIJKL4" }, { "name": "order-cancel-after", "command": "kraken order cancel-after", "usage": "kraken order cancel-after ", "tool": "kraken_order_cancel_after", "reach": "tool", "group": "trade", "description": "Dead man's switch — cancel all orders after timeout.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "timeout": { "description": "Timeout in seconds (0 to disable).", "type": "integer", "format": "uint64", "minimum": 0 } }, "required": [ "timeout" ], "additionalProperties": false }, "example": "kraken order cancel-after 60" }, { "name": "order-cancel-all", "command": "kraken order cancel-all", "usage": "kraken order cancel-all", "tool": "kraken_order_cancel_all", "reach": "tool", "group": "trade", "description": "Cancel all open orders.\n\nRouted by workspace mode: inside a paper workspace it cancels on the workspace journal. Against the real account it sends Kraken's account-wide CancelAll and returns the `count` Kraken reports, then records every open order the local journal knows as cancelled. Inside a live workspace it reconciles first and cancels only the order IDs that workspace recorded, one CancelOrder each, never the account-wide CancelAll; a sweep that only partly succeeds exits 1 with an `api` envelope carrying `cancelled` and `failed` lists.", "credentials": "spot", "dangerous": true, "paper_safe": true, "effect": "paper_safe", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken order cancel-all --yes" }, { "name": "order-cancel-batch", "command": "kraken order cancel-batch", "usage": "kraken order cancel-batch [TXIDS...]", "tool": "kraken_order_cancel_batch", "reach": "tool", "group": "trade", "description": "Cancel a batch of orders (max 50 total across txids and cl-ord-ids).", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "txids": { "description": "Transaction IDs or user references (up to 50).", "type": "array", "items": { "type": "string" }, "default": [] }, "cl_ord_ids": { "description": "Client order IDs to cancel (up to 50 total combined with txids).", "type": "array", "items": { "type": "string" }, "default": [] } }, "additionalProperties": false }, "example": "kraken order cancel-batch OABC12-DEFG3-HIJKL4 OEFGH56-IJKL7-MNOP8" }, { "name": "order-edit", "command": "kraken order edit", "usage": "kraken order edit ", "tool": "kraken_order_edit", "reach": "tool", "group": "trade", "description": "Edit (cancel+replace) an order.", "credentials": "spot", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "txid": { "description": "Transaction ID of the order to edit.", "type": "string" }, "volume": { "description": "New volume.", "type": "string" }, "price": { "description": "New price.", "type": "string" }, "pair": { "description": "Trading pair.", "type": "string" } }, "required": [ "txid" ], "additionalProperties": false }, "example": "kraken order edit OABC12-DEFG3-HIJKL4 --price 52000" }, { "name": "order-sell", "command": "kraken order sell", "usage": "kraken order sell ", "tool": "kraken_order_sell", "reach": "tool", "group": "trade", "description": "Place a sell order.\n\nRouted by workspace mode: fills on the paper journal inside a paper workspace, trades the real account otherwise. Inside a live workspace, an order spending beyond what the allocation ledger holds free of resting orders is refused before the venue (a validation envelope); the order that pays the allocated asset back in is never refused.", "credentials": "spot", "dangerous": true, "paper_safe": true, "effect": "paper_safe", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair (e.g. XBTUSD).", "type": "string" }, "volume": { "description": "Order volume.", "type": "string" }, "type": { "description": "Order type (market, limit, iceberg, stop-loss, take-profit, stop-loss-limit, take-profit-limit, trailing-stop, trailing-stop-limit, settle-position).", "type": "string", "default": "limit" }, "price": { "description": "Price (required for non-market orders).", "type": "string" }, "price2": { "description": "Limit price for stop-loss-limit, take-profit-limit, and trailing-stop-limit orders.", "type": "string" }, "displayvol": { "description": "Display volume for iceberg orders (visible portion in the order book).", "type": "string" }, "trigger": { "description": "Price signal for triggered orders (last or index). Applies to stop-loss, stop-loss-limit, take-profit, take-profit-limit, trailing-stop, trailing-stop-limit.", "type": "string" }, "leverage": { "description": "Leverage.", "type": "string" }, "reduce_only": { "description": "Reduce-only flag.", "type": "boolean", "default": false }, "timeinforce": { "description": "Time-in-force (GTC, IOC, GTD).", "type": "string" }, "start_time": { "description": "Start time.", "type": "string" }, "expire_time": { "description": "Expire time.", "type": "string" }, "userref": { "description": "User reference ID (signed 32-bit, for tagging groups of orders).", "type": "integer", "format": "int32" }, "cl_ord_id": { "description": "Client order ID (mutually exclusive with userref).", "type": "string" }, "oflags": { "description": "Order flags (comma-delimited: post, fcib, fciq, nompp, viqc).", "type": "string" }, "stptype": { "description": "Self-trade prevention type (cancel-newest, cancel-oldest, cancel-both).", "type": "string" }, "close_ordertype": { "description": "Conditional close order type (limit, stop-loss, take-profit, stop-loss-limit, take-profit-limit).", "type": "string" }, "close_price": { "description": "Conditional close order price.", "type": "string" }, "close_price2": { "description": "Conditional close order secondary price.", "type": "string" }, "deadline": { "description": "RFC3339 deadline for the order to reach the matching engine.", "type": "string" }, "validate": { "description": "Validate only (do not submit).", "type": "boolean", "default": false }, "asset_class": { "description": "Asset class (required for non-crypto pairs, e.g. tokenized_asset for xstocks).", "type": "string" }, "reason": { "description": "Rationale to record in the decision log: the active session's when one is recording, else the workspace's, or the real account's outside one.", "type": "string" } }, "required": [ "pair", "volume" ], "additionalProperties": false }, "example": "kraken order sell BTC/USD 0.001 --type limit --price 100000 --validate" }, { "name": "orderbook", "command": "kraken orderbook", "usage": "kraken orderbook ", "tool": "kraken_orderbook", "reach": "tool", "group": "market", "description": "Get L2 order book.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair.", "type": "string" }, "count": { "description": "Number of price levels (max 500).", "type": "integer", "format": "uint32", "minimum": 0, "default": 25 }, "asset_class": { "description": "Asset class filter.", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] } }, "required": [ "pair" ], "additionalProperties": false }, "example": "kraken orderbook BTC/USD --count 25" }, { "name": "orderbook-grouped", "command": "kraken orderbook-grouped", "usage": "kraken orderbook-grouped ", "tool": "kraken_orderbook_grouped", "reach": "tool", "group": "market", "description": "Get grouped order book.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair.", "type": "string" }, "depth": { "description": "Number of price levels per side.", "type": "string", "enum": [ "10", "25", "100", "250", "1000" ], "default": "10" }, "grouping": { "description": "Tick levels within each price level (bids rounded down, asks up).", "type": "string", "enum": [ "1", "5", "10", "25", "50", "100", "250", "500", "1000" ], "default": "1" } }, "required": [ "pair" ], "additionalProperties": false }, "example": "kraken orderbook-grouped BTC/USD --depth 10 --grouping 100" }, { "name": "orderbook-l3", "command": "kraken orderbook-l3", "usage": "kraken orderbook-l3 ", "tool": "kraken_orderbook_l3", "reach": "tool", "group": "account", "description": "Get L3 (per-order) order book via the authenticated Level3 endpoint.\n\nAuthenticated market data: it needs credentials, so it lives with the account handlers rather than the unauthenticated `market` path.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair.", "type": "string" }, "depth": { "description": "Number of price levels per side (0 for full book).", "type": "string", "enum": [ "0", "10", "25", "100", "250", "1000" ], "default": "100" } }, "required": [ "pair" ], "additionalProperties": false }, "example": "kraken orderbook-l3 BTC/USD --depth 100" }, { "name": "pairs", "command": "kraken pairs", "usage": "kraken pairs", "tool": "kraken_pairs", "reach": "tool", "group": "market", "description": "Get tradable asset pairs.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "pair": { "description": "Comma-separated pairs to query.", "type": "string" }, "info": { "description": "Info level: info, leverage, fees, margin.", "type": "string" }, "asset_class": { "description": "Asset class filter.", "type": "string", "enum": [ "currency", "tokenized_asset", "forex" ] } }, "additionalProperties": false }, "example": "kraken pairs --pair BTC/USD,ETH/USD -o json" }, { "name": "paper-balance", "command": "kraken paper balance", "usage": "kraken paper balance [NAME]", "tool": "kraken_paper_balance", "reach": "tool", "group": "paper", "description": "Workspace balances — `kraken workspace balance` under another name.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "name": { "description": "Workspace name (defaults to the active workspace, else the global paper account).", "type": "string" } }, "additionalProperties": false }, "example": "kraken paper balance sandbox -o json" }, { "name": "paper-buy", "command": "kraken paper buy", "usage": "kraken paper buy ", "tool": "kraken_paper_buy", "reach": "tool", "group": "paper", "description": "Place a paper buy order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair (e.g., BTCUSD).", "type": "string" }, "volume": { "description": "Order volume.", "type": "string" }, "type": { "description": "Order type: market (default) or limit.", "type": "string", "default": "market" }, "price": { "description": "Limit price (required for limit orders).", "type": "string" }, "reason": { "description": "Rationale to record in the decision log: the active session's when one is recording, else the workspace's.", "type": "string" } }, "required": [ "pair", "volume" ], "additionalProperties": false }, "example": "kraken paper buy BTC/USD 0.01 --type limit --price 50000" }, { "name": "paper-cancel", "command": "kraken paper cancel", "usage": "kraken paper cancel ", "tool": "kraken_paper_cancel", "reach": "tool", "group": "paper", "description": "Cancel a paper limit order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "order_id": { "description": "Order ID (e.g., PAPER-00001).", "type": "string" } }, "required": [ "order_id" ], "additionalProperties": false }, "example": "kraken paper cancel abc123" }, { "name": "paper-cancel-all", "command": "kraken paper cancel-all", "usage": "kraken paper cancel-all", "tool": "kraken_paper_cancel_all", "reach": "tool", "group": "paper", "description": "Cancel all paper limit orders.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken paper cancel-all" }, { "name": "paper-history", "command": "kraken paper history", "usage": "kraken paper history", "tool": "kraken_paper_history", "reach": "tool", "group": "paper", "description": "Show paper trade history.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken paper history -o json" }, { "name": "paper-init", "command": "kraken paper init", "usage": "kraken paper init [NAME]", "tool": "kraken_paper_init", "reach": "tool", "group": "paper", "description": "Create AND fund a paper workspace — `kraken workspace create --mode paper` under another name.\n\nOne implementation, two spellings. Takes the workspace name positionally or from `KRAKEN_WORKSPACE`; with neither it funds the global paper account and says so on stderr. `--balance` is an alias for `--capital`.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "name": { "description": "Workspace name to create (defaults to the active workspace, else the global paper account).", "type": "string" }, "capital": { "description": "Starting capital (default: 10000).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$", "default": 10000.0 }, "currency": { "description": "Capital currency.", "type": "string", "default": "USD" }, "fee_rate": { "description": "Fee rate as a decimal (default: 0.0026 = 0.26% Kraken Starter tier).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "slippage_rate": { "description": "Slippage rate as a decimal (default: 0.0 = no slippage simulation).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" } }, "additionalProperties": false }, "example": "kraken paper init sandbox --capital 10000 -o json" }, { "name": "paper-orders", "command": "kraken paper orders", "usage": "kraken paper orders", "tool": "kraken_paper_orders", "reach": "tool", "group": "paper", "description": "Show open paper limit orders.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken paper orders" }, { "name": "paper-reset", "command": "kraken paper reset", "usage": "kraken paper reset [NAME]", "tool": "kraken_paper_reset", "reach": "tool", "group": "paper", "description": "Return the workspace to its starting capital — `kraken workspace reset` under another name.", "credentials": "none", "dangerous": true, "paper_safe": false, "effect": "dangerous", "input_schema": { "type": "object", "properties": { "name": { "description": "Workspace name (defaults to the active workspace, else the global paper account).", "type": "string" }, "capital": { "description": "Re-parameterize on reset: new starting capital (public-compatible alias: --balance).", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "currency": { "description": "New capital currency.", "type": "string" }, "fee_rate": { "description": "New fee rate as a decimal.", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" }, "slippage_rate": { "description": "New slippage rate as a decimal.", "type": [ "string", "number" ], "pattern": "^-?\\d+(\\.\\d+)?([eE]\\d+)?$" } }, "additionalProperties": false }, "example": "kraken paper reset sandbox -o json" }, { "name": "paper-sell", "command": "kraken paper sell", "usage": "kraken paper sell ", "tool": "kraken_paper_sell", "reach": "tool", "group": "paper", "description": "Place a paper sell order.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "pair": { "description": "Trading pair (e.g., BTCUSD).", "type": "string" }, "volume": { "description": "Order volume.", "type": "string" }, "type": { "description": "Order type: market (default) or limit.", "type": "string", "default": "market" }, "price": { "description": "Limit price (required for limit orders).", "type": "string" }, "reason": { "description": "Rationale to record in the decision log: the active session's when one is recording, else the workspace's.", "type": "string" } }, "required": [ "pair", "volume" ], "additionalProperties": false }, "example": "kraken paper sell BTC/USD 0.01 --type market" }, { "name": "paper-status", "command": "kraken paper status", "usage": "kraken paper status [NAME]", "tool": "kraken_paper_status", "reach": "tool", "group": "paper", "description": "Workspace summary with P&L — `kraken workspace status` under another name.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "name": { "description": "Workspace name (defaults to the active workspace, else the global paper account).", "type": "string" } }, "additionalProperties": false }, "example": "kraken paper status sandbox -o json" }, { "name": "playground", "command": "kraken playground", "usage": "kraken playground", "reach": "stream", "group": "workspace", "description": "One-command demo: a recorded session in the `playground` paper workspace.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "symbols": { "description": "Comma-separated trading pairs to record and demo against.", "type": "array", "items": { "type": "string" }, "default": [ "BTC/USD" ] }, "template": { "description": "The template (recipe skill) driving the demo; recorded as the session's strategy label so scoring can attribute it.", "type": "string", "default": "recipe-playground-dca" }, "window": { "description": "How long the demo session records before closing itself.", "type": "string", "default": "1h" } }, "additionalProperties": false }, "example": "kraken playground", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "plugin-init", "command": "kraken plugin init", "usage": "kraken plugin init ", "tool": "kraken_plugin_init", "reach": "tool", "group": "workspace", "description": "Scaffold a runnable extension: a stdlib-only entrypoint over `kraken ... -o json`, its manifest, a loadable `SKILL.md`, and a README.\n\nThe JSON output is the whole extension API — there is no plugin ABI, and kraken never executes the code. Prints the absolute path and the symlink line that installs the skill. Refuses an unsafe name and a non-empty target directory.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "name": { "description": "Name for the new extension (letters, digits, '.', '-', '_').", "type": "string" }, "lang": { "description": "Implementation language for the generated entrypoint.", "type": "string", "enum": [ "python", "bash" ] }, "kind": { "description": "What the extension is for; tailors the generated example.", "type": "string", "enum": [ "indicator", "alert", "exporter", "driver" ], "default": "indicator" }, "path": { "description": "Output directory (defaults to the plugin library, `/plugins/`).", "type": "string" } }, "required": [ "name", "lang" ], "additionalProperties": false }, "example": "kraken plugin init volume-profile --lang python --kind indicator -o json" }, { "name": "plugin-list", "command": "kraken plugin list", "usage": "kraken plugin list", "tool": "kraken_plugin_list", "reach": "tool", "group": "workspace", "description": "List scaffolded extensions.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken plugin list -o json" }, { "name": "positions", "command": "kraken positions", "usage": "kraken positions", "tool": "kraken_positions", "reach": "tool", "group": "account", "description": "Get open margin positions.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "txid": { "description": "Filter by TXIDs.", "type": "array", "items": { "type": "string" }, "default": [] }, "show_pnl": { "description": "Include P&L calculations.", "type": "boolean", "default": false }, "consolidation": { "description": "Consolidate positions by market/pair.", "type": "string" }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken positions --show-pnl -o json" }, { "name": "query-ledgers", "command": "kraken query-ledgers", "usage": "kraken query-ledgers [IDS...]", "tool": "kraken_query_ledgers", "reach": "tool", "group": "account", "description": "Query specific ledger entries.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "ids": { "description": "Ledger IDs (comma-delimited, up to 20).", "type": "array", "items": { "type": "string" }, "default": [] }, "trades": { "description": "Include trades related to position in output.", "type": "boolean", "default": false }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken query-ledgers LABC12-DEFG3-HIJKL4" }, { "name": "query-orders", "command": "kraken query-orders", "usage": "kraken query-orders [TXIDS...]", "tool": "kraken_query_orders", "reach": "tool", "group": "account", "description": "Query specific orders by TXID.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "txids": { "description": "Transaction IDs (comma-delimited, up to 50).", "type": "array", "items": { "type": "string" }, "default": [] }, "trades": { "description": "Include trade details.", "type": "boolean", "default": false }, "userref": { "description": "User reference filter.", "type": "integer", "format": "int32" }, "consolidate_taker": { "description": "Consolidate taker trades.", "type": "boolean", "default": false }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken query-orders OABC12-DEFG3-HIJKL4" }, { "name": "query-trades", "command": "kraken query-trades", "usage": "kraken query-trades [TXIDS...]", "tool": "kraken_query_trades", "reach": "tool", "group": "account", "description": "Query specific trades by TXID.", "credentials": "spot", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "txids": { "description": "Transaction IDs (comma-delimited, up to 20).", "type": "array", "items": { "type": "string" }, "default": [] }, "trades": { "description": "Include trades related to position in output.", "type": "boolean", "default": false }, "rebase_multiplier": { "description": "Rebase multiplier for xstocks data (rebased or base).", "type": "string", "enum": [ "rebased", "base" ] } }, "additionalProperties": false }, "example": "kraken query-trades TABC12-DEFG3-HIJKL4" }, { "name": "recipe-create", "command": "kraken recipe create", "usage": "kraken recipe create ", "tool": "kraken_recipe_create", "reach": "tool", "group": "workspace", "description": "Derive a reusable recipe from a stopped session: an editable `recipe.json` plus a draft `SKILL.md` an agent can follow.\n\nThe recipe carries the driver skill, frozen strategy params, symbols, channels, sinks and provenance. Needs a paper workspace scope — a real-account session would bake real equity into a portable artifact. Refuses a still-recording session, a session with no strategy label (unless `--driver` names one), and an existing recipe name (unless `--overwrite`). The recipe library is global, not workspace-scoped.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "name": { "description": "Name for the new recipe (letters, digits, '.', '-', '_').", "type": "string" }, "from_session": { "description": "Source session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" }, "driver": { "description": "Strategy skill for a session that recorded no strategy label.", "type": "string" }, "description": { "description": "One-line description stored on the recipe.", "type": "string" }, "overwrite": { "description": "Replace an existing recipe of the same name.", "type": "boolean", "default": false } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken recipe create btc-levels --from-session latest -o json" }, { "name": "recipe-list", "command": "kraken recipe list", "usage": "kraken recipe list", "tool": "kraken_recipe_list", "reach": "tool", "group": "workspace", "description": "List the local recipe library.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken recipe list -o json" }, { "name": "recipe-run", "command": "kraken recipe run", "usage": "kraken recipe run ", "reach": "stream", "group": "workspace", "description": "Run a recipe: provision (or reuse) its paper workspace and start the session it records.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local_or_live", "input_schema": { "type": "object", "properties": { "name": { "description": "Recipe name (see `kraken recipe list`).", "type": "string" }, "symbols": { "description": "Override the recipe's recorded symbols (comma-separated).", "type": "array", "items": { "type": "string" } }, "window": { "description": "Auto-stop after this wall-clock window (e.g. 20s, 5m, 1h); without it the session records until `kraken session stop`.", "type": "string" }, "from": { "description": "Replay a finalized tape (`tape:` or `session:s`) instead of the live market.", "type": "string" }, "speed": { "description": "Playback speed for --from: tape seconds per wall second.", "type": "number", "format": "double", "default": 1.0 }, "experiment": { "description": "Lab experiment to stamp on the session — what `lab compare` discovers runs by.", "type": "string" }, "real_account": { "description": "Run against the REAL Kraken account instead of the recipe's paper workspace. Asks for confirmation; the session's evidence carries the whole-portfolio caveats printed at start.", "type": "boolean", "default": false } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken recipe run btc-levels --for 15m", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "recipe-show", "command": "kraken recipe show", "usage": "kraken recipe show ", "tool": "kraken_recipe_show", "reach": "tool", "group": "workspace", "description": "Show one recipe's contract and where its artifacts live.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "name": { "description": "Recipe name.", "type": "string" } }, "required": [ "name" ], "additionalProperties": false }, "example": "kraken recipe show btc-levels -o json" }, { "name": "record", "command": "kraken record", "usage": "kraken record", "reach": "stream", "group": "workspace", "description": "Capture live market data (trades/book/ohlc) into a local tape.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "description": "Per-channel subscribe options. Each applies only to its own channel and is ignored unless that channel is requested (e.g. `event_trigger` without `ticker`).", "type": "object", "properties": { "symbols": { "description": "Comma-separated trading pairs to record (e.g. BTC/USD,ETH/USD); repeatable.", "type": "array", "items": { "type": "string" }, "default": [] }, "channels": { "description": "Comma-separated channels to capture (e.g. trades,book,ohlc); repeatable.", "type": "array", "items": { "description": "A channel a client can subscribe to, by its v2 wire name or a common alias (`trades`, `l3`). The server-pushed feeds (`status`, `heartbeat`) cannot be subscribed to, so they are not accepted.", "type": "string", "enum": [ "ticker", "book", "ohlc", "trade", "instrument", "executions", "balances", "level3" ] }, "default": [] }, "book_depth": { "description": "Book depth for the `book` channel (10, 25, 100, 500, 1000).", "type": "integer", "enum": [ 10, 25, 100, 500, 1000 ], "default": 10 }, "ohlc_interval": { "description": "Candle interval in minutes for the `ohlc` channel (1, 5, 15, 30, 60, 240, 1440, 10080, 21600).", "type": "integer", "enum": [ 1, 5, 15, 30, 60, 240, 1440, 10080, 21600 ], "default": 1 }, "event_trigger": { "description": "`ticker` event trigger: `trades` (default) or `bbo`. `bbo` fires on every best-bid/offer change, not just trades — far busier on quiet venues.", "type": "string", "enum": [ "bbo", "trades" ], "default": null }, "snapshot": { "description": "Request an initial snapshot on subscribe, for the channels that carry one (`ticker`, `trade`, `book`, `ohlc`, `instrument`, `balances`); unset uses the server default. (`executions` snapshots via `--snap-trades`/`--snap-orders`.)", "type": "boolean", "default": null }, "snap_trades": { "description": "`executions`: include last 50 trade fills in snapshot.", "type": "boolean", "default": null }, "snap_orders": { "description": "`executions`: include open orders in snapshot (default: true).", "type": "boolean", "default": null }, "order_status": { "description": "`executions`: stream all status transitions (default: true). When false, only open/close.", "type": "boolean", "default": null }, "rebased": { "description": "`executions`/`balances`: display xstocks in terms of underlying equity (default: true).", "type": "boolean", "default": null }, "ratecounter": { "description": "`executions`: include the rate-limit counter in the stream.", "type": "boolean", "default": null }, "users": { "description": "`executions`/`balances`: stream events for master and subaccounts (pass \"all\").", "type": "string", "enum": [ "all" ], "default": null }, "to": { "description": "Sink targets: any combination of duckdb, jsonl, stdout (comma-separated).\n\n`duckdb`/`jsonl` always write their native on-disk format; `-o`/`--output` (table|json) controls only the `stdout` echo, never the durable backends.", "type": "array", "items": { "description": "A `--to` destination for a recorded stream: a durable backend, or a live stdout echo. duckdb: The file-based DuckDB tape (native columnar format; independent of `-o`).; jsonl: The dependency-free JSONL files (always JSON lines; independent of `-o`).; stdout: A live echo of the frames to stdout, rendered per `-o`/`--output`.", "type": "string", "enum": [ "duckdb", "jsonl", "stdout" ] }, "default": [ "jsonl" ] }, "tape": { "description": "Tape name — names the single tape file all symbols are recorded into. (`--dataset` remains as a compatibility alias.)", "type": "string", "default": "default" } }, "additionalProperties": false }, "example": "kraken record --symbols BTC/USD --channels trades,book --tape my-tape --to jsonl", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "replay", "command": "kraken replay", "usage": "kraken replay", "reach": "stream", "group": "workspace", "description": "Replay a recorded session's timeline to stdout at a chosen speed.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" }, "speed": { "description": "Playback speed multiplier: 1 = real time (recorded gaps reproduced), 2 = twice as fast, 0.5 = half speed. Accepts 0.01 to 1000.", "type": "number", "format": "double", "default": 1.0 } }, "additionalProperties": false }, "example": "kraken replay --session latest --speed 10", "why": "prints its own output as it runs; run it through the CLI" }, { "name": "server-time", "command": "kraken server-time", "usage": "kraken server-time", "tool": "kraken_server_time", "reach": "tool", "group": "market", "description": "Get server time.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken server-time" }, { "name": "session-decisions", "command": "kraken session decisions", "usage": "kraken session decisions", "tool": "kraken_session_decisions", "reach": "tool", "group": "workspace", "description": "Read a session's decision log verbatim — the round-gate's counter.\n\nThe counter a looping agent gates its rounds on without knowing the on-disk layout. Offline; an empty log is count 0, never an error.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" } }, "additionalProperties": false }, "example": "kraken session decisions --session latest -o json" }, { "name": "session-list", "command": "kraken session list", "usage": "kraken session list", "tool": "kraken_session_list", "reach": "tool", "group": "workspace", "description": "List the scope's sessions and their status.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "additionalProperties": false }, "example": "kraken session list -o json" }, { "name": "session-note", "command": "kraken session note", "usage": "kraken session note", "tool": "kraken_session_note", "reach": "tool", "group": "workspace", "description": "Append a decision (the \"why\") to the active session's decision log.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "type": "object", "properties": { "kind": { "description": "What kind of decision this records. cancel: A decision to pull a resting order.; skip: A deliberate no-op (considered and declined to act).; alert: A noteworthy observation with no trade.", "type": "string", "enum": [ "buy", "sell", "cancel", "skip", "alert" ] }, "symbol": { "description": "The trading pair the decision concerns.", "type": "string" }, "reason": { "description": "Free-text rationale for the decision.", "type": "string" }, "order_id": { "description": "An order this decision references.", "type": "string" } }, "required": [ "kind", "reason" ], "additionalProperties": false }, "example": "kraken session note --kind skip --reason \"spread too wide\" -o json" }, { "name": "session-show", "command": "kraken session show", "usage": "kraken session show", "tool": "kraken_session_show", "reach": "tool", "group": "workspace", "description": "Show a session's window, status, and valuation.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "read_only", "input_schema": { "type": "object", "properties": { "session": { "description": "Which session: `latest`, an ordinal (`s3`), or a label.", "type": "string", "default": "latest" } }, "additionalProperties": false }, "example": "kraken session show -o json" }, { "name": "session-start", "command": "kraken session start", "usage": "kraken session start", "reach": "stream", "group": "workspace", "description": "Open a session window on the account journal and record its market tape.", "credentials": "none", "dangerous": false, "paper_safe": false, "effect": "local", "input_schema": { "description": "Per-channel subscribe options. Each applies only to its own channel and is ignored unless that channel is requested (e.g. `event_trigger` without `ticker`).", "type": "object", "properties": { "symbols": { "description": "Comma-separated trading pairs to record (e.g. BTC/USD,ETH/USD); repeatable.", "type": "array", "items": { "type": "string" }, "default": [] }, "channels": { "description": "Comma-separated market-data channels to capture (ticker, trade, book, ohlc); repeatable.", "type": "array", "items": { "description": "A channel a client can subscribe to, by its v2 wire name or a common alias (`trades`, `l3`). The server-pushed feeds (`status`, `heartbeat`) cannot be subscribed to, so they are not accepted.", "type": "string", "enum": [ "ticker", "book", "ohlc", "trade", "instrument", "executions", "balances", "level3" ] }, "default": [] }, "book_depth": { "description": "Book depth for the `book` channel (10, 25, 100, 500, 1000).", "type": "integer", "enum": [ 10, 25, 100, 500, 1000 ], "default": 10 }, "ohlc_interval": { "description": "Candle interval in minutes for the `ohlc` channel (1, 5, 15, 30, 60, 240, 1440, 10080, 21600).", "type": "integer", "enum": [ 1, 5, 15, 30, 60, 240, 1440, 10080, 21600 ], "default": 1 }, "event_trigger": { "description": "`ticker` event trigger: `trades` (default) or `bbo`. `bbo` fires on every best-bid/offer change, not just trades — far busier on quiet venues.", "type": "string", "enum": [ "bbo", "trades" ], "default": null }, "snapshot": { "description": "Request an initial snapshot on subscribe, for the channels that carry one (`ticker`, `trade`, `book`, `ohlc`, `instrument`, `balances`); unset uses the server default. (`executions` snapshots via `--snap-trades`/`--snap-orders`.)", "type": "boolean", "default": null }, "snap_trades": { "description": "`executions`: include last 50 trade fills in snapshot.", "type": "boolean", "default": null }, "snap_orders": { "description": "`executions`: include open orders in snapshot (default: true).", "type": "boolean", "default": null }, "order_status": { "description": "`executions`: stream all status transitions (default: true). When false, only open/close.", "type": "boolean", "default": null }, "rebased": { "description": "`executions`/`balances`: display xstocks in terms of underlying equity (default: true).", "type": "boolean", "default": null }, "ratecounter": { "description": "`executions`: include the rate-limit counter in the stream.", "type": "boolean", "default": null }, "users": { "description": "`executions`/`balances`: stream events for master and subaccounts (pass \"all\").", "type": "string", "enum": [ "all" ], "default": null }, "to": { "description": "Sink targets: any combination of duckdb, jsonl, stdout (comma-separated).\n\n`duckdb`/`jsonl` always write their native on-disk format; `-o`/`--output` (table|json) controls only the `stdout` echo, never the durable backends.", "type": "array", "items": { "description": "A `--to` destination for a recorded stream: a durable backend, or a live stdout echo. duckdb: The file-based DuckDB tape (native columnar format; independent of `-o`).; jsonl: The dependency-free JSONL files (always JSON lines; independent of `-o`).; stdout: A live echo of the frames to stdout, rendered per `-o`/`--output`.", "type": "string", "enum": [ "duckdb", "jsonl", "stdout" ] }, "default": [ "stdout", "jsonl" ] }, "label": { "description": "Human handle for this session, resolvable anywhere a session ref is (`--session