{"id":51654715,"url":"https://github.com/fireblocks/fireblocks-cli","last_synced_at":"2026-07-14T08:04:04.113Z","repository":{"id":352841604,"uuid":"1208533200","full_name":"fireblocks/fireblocks-cli","owner":"fireblocks","description":"Fireblocks CLI","archived":false,"fork":false,"pushed_at":"2026-07-01T11:26:52.000Z","size":522,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-01T13:15:30.055Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fireblocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-12T12:18:05.000Z","updated_at":"2026-07-01T11:26:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fireblocks/fireblocks-cli","commit_stats":null,"previous_names":["fireblocks/fireblocks-cli"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/fireblocks/fireblocks-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fireblocks","download_url":"https://codeload.github.com/fireblocks/fireblocks-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35451881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-14T02:00:06.603Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-14T08:04:02.401Z","updated_at":"2026-07-14T08:04:04.108Z","avatar_url":"https://github.com/fireblocks.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @fireblocks/fireblocks-cli\n\nCommand-line interface for the [Fireblocks](https://developers.fireblocks.com) API. Configure once, invoke any Fireblocks operation from your terminal or AI agent.\n\nCommands are generated from the Fireblocks OpenAPI spec, so every endpoint is reachable and new endpoints appear automatically when the CLI updates. Authentication and JWT request signing are handled for you.\n\n## Install\n\n### Homebrew (macOS)\n\n```bash\nbrew tap fireblocks/fireblocks-cli\nbrew install fireblocks-cli\n```\n\n### npm (macOS / Linux / Windows)\n\n```bash\nnpm install -g @fireblocks/fireblocks-cli\n```\n\n### Standalone installers\n\nDownload the latest release for your platform from [GitHub Releases](https://github.com/fireblocks/fireblocks-cli/releases). No Node.js required.\n\n#### macOS\n\n| Architecture | Installer | Tarball |\n|---|---|---|\n| ARM64 (Apple Silicon) | `fireblocks-v*-arm64.pkg` | `fireblocks-v*-darwin-arm64.tar.gz` |\n| x64 (Intel) | `fireblocks-v*-x64.pkg` | `fireblocks-v*-darwin-x64.tar.gz` |\n\n#### Windows\n\n| Architecture | Installer | Tarball |\n|---|---|---|\n| x64 | `fireblocks-v*-x64.exe` | `fireblocks-v*-win32-x64.tar.gz` |\n\n\u003e **Note:** If the installer shows \"PATH not updated\" during installation, your system PATH exceeds Windows' 1024-character limit. Use `npm install -g @fireblocks/fireblocks-cli` instead, or manually add `C:\\Program Files\\fireblocks\\bin` to your PATH after installing.\n\n#### Linux\n\n| Architecture | `.deb` (Ubuntu / Debian) | Tarball |\n|---|---|---|\n| x64 | `fireblocks-v*-amd64.deb` | `fireblocks-v*-linux-x64.tar.gz` |\n| ARM64 | `fireblocks-v*-arm64.deb` | `fireblocks-v*-linux-arm64.tar.gz` |\n\nTarballs are also available as `.tar.xz` for smaller downloads.\n\nTo verify a download, compare the `sha256` shown on the release page against:\n```bash\n# macOS / Linux\nsha256sum \u003cdownloaded-file\u003e\n# macOS alternative\nshasum -a 256 \u003cdownloaded-file\u003e\n```\n\n## Quick start\n\n```bash\n# 1. Configure your API key and secret (from the Fireblocks Console)\nfireblocks configure\n\n# 2. Verify credentials\nfireblocks whoami\n\n# 3. Make a request\nfireblocks vaults get-paged-vault-accounts\n\n# 4. Discover the API\nfireblocks help-index\n```\n\n## Commands\n\n### `fireblocks configure` — Manage credentials\n\nInteractive setup that stores your API key ID and RSA secret in `~/.config/fireblocks/config.json`. For agents and CI, use env vars or flags instead (see [Authentication](#authentication)).\n\n```bash\nfireblocks configure                       # set up the default profile\nfireblocks configure --profile profile-name     # named profile for multi-env setups\nfireblocks configure --set-default=profile-name # switch the default profile without re-entering credentials\n```\n\nWhen configuring a second profile you are asked whether to make it the default. The config always stores the `baseUrl` explicitly so the file is self-describing.\n\n### `fireblocks whoami` — Show current profile\n\nPrints the default profile name, masked API key, and base URL from the local config file. No API call is made.\n\n```bash\nfireblocks whoami\n```\n\nExample output:\n```json\n{\n  \"defaultProfile\": \"default\",\n  \"apiKey\": \"apiKey\",\n  \"baseUrl\": \"https://api.fireblocks.io\"\n}\n```\n\n### `fireblocks \u003cnamespace\u003e \u003caction\u003e` — API operations\n\nCommands are generated from the Fireblocks OpenAPI spec. OpenAPI path parameters become required flags (kebab-case); query parameters become optional flags. Write ops take the body as `--data '\u003cjson\u003e'`.\n\n```bash\n# Reads\nfireblocks vaults get-paged-vault-accounts\nfireblocks vaults get-vault-account --vault-account-id 0\n\n# Writes (include --no-confirm for non-interactive)\nfireblocks transactions create-transaction \\\n  --data '{\"assetId\":\"BTC\",\"amount\":\"0.01\",\"source\":{\"type\":\"VAULT_ACCOUNT\",\"id\":\"0\"},\"destination\":{\"type\":\"VAULT_ACCOUNT\",\"id\":\"1\"}}' \\\n  --no-confirm\n\n# Idempotent retries\nfireblocks transactions create-transaction \\\n  --data '{...}' \\\n  --idempotency-key \"$(uuidgen)\" --no-confirm\n```\n\n**Global flags:**\n\n| Flag | Env Var | Purpose |\n|------|---------|---------|\n| `--api-key` | `FIREBLOCKS_API_KEY` | API key ID |\n| `--secret-key` | `FIREBLOCKS_SECRET_KEY` / `FIREBLOCKS_SECRET_KEY_PATH` | RSA private key (PEM string or path) |\n| `--base-url` | `FIREBLOCKS_BASE_URL` | Override endpoint (default `https://api.fireblocks.io`, sandbox `https://sandbox-api.fireblocks.io`) |\n| `--profile` | | Named config profile |\n| `--data` | | JSON body for write operations |\n| `--idempotency-key` | | UUID for safe retries of write operations |\n| `--no-confirm` | | Skip confirmation prompt on writes |\n| `--dry-run` | | Print the assembled request without sending |\n| `--debug` | | Log request/response details to stderr |\n| `--output` | | Output format: `json` (default) or `yaml` |\n\n### `fireblocks help-index` — Discover the API\n\n`help-index` prints a compact JSON manifest of every resource and action the CLI exposes — under 2K tokens for the full catalog. Designed for agents: one call gives enough to plan, without loading per-resource docs upfront.\n\n```bash\nfireblocks help-index                              # all resources and actions\nfireblocks vaults --help                           # detail for one namespace\nfireblocks vaults get-vault-account --help         # detail for one action\nfireblocks vaults get-vault-account --dry-run      # preview the request\n```\n\nProgressive disclosure: start narrow with `--help`, widen to `help-index` only when you need to find something.\n\n## Authentication\n\nCredentials resolve in this order (highest priority first):\n\n1. CLI flags: `--api-key`, `--secret-key`\n2. Environment variables: `FIREBLOCKS_API_KEY` + (`FIREBLOCKS_SECRET_KEY` | `FIREBLOCKS_SECRET_KEY_PATH`)\n3. Config profile: `~/.config/fireblocks/config.json` (select with `--profile \u003cname\u003e`)\n\n`fireblocks configure` is interactive-only. Agents and CI must use flags or env vars.\n\n### Approvals and security\n\nWrite operations run against your workspace's **Transaction Authorization Policy (TAP)**. The CLI submits requests; TAP decides whether they require co-signer or admin approval. The CLI is not a security boundary — TAP is. Treat CLI credentials with the same care you'd treat any key into a custody platform.\n\n## Output and errors\n\n- **stdout**: JSON data only\n- **stderr**: warnings, beta notices, debug logs, and errors\n\nErrors are structured JSON on stderr:\n\n```json\n{\"code\": 5, \"status\": 429, \"message\": \"Rate limit exceeded\", \"request_id\": \"abc-123\", \"retry_after\": 30}\n```\n\n**Exit codes:**\n\n| Code | Meaning |\n|------|---------|\n| 0 | Success |\n| 1 | Client error (400/409/422) |\n| 2 | Usage/parse error |\n| 3 | Auth error (401/403) |\n| 4 | Not found (404) |\n| 5 | Rate limited (429) — retry after `retry_after` seconds |\n| 6 | Server error (500+) |\n| 7 | Timeout (30s) |\n\n## AI agents\n\nThe CLI is designed to be driven by coding agents (Claude Code, Cursor, Devin). Install the CLI, then drop [`SKILL.md`](.claude/skills/fireblocks-cli/SKILL.md) into your agent's skills directory. Agents will:\n\n- Discover operations via `help-index`\n- Compose workflows by piping JSON between commands\n- Retry intelligently using exit codes and `retry_after`\n\n```bash\n# List vault accounts, filter with jq, pipe to the next command\nfireblocks vaults get-paged-vault-accounts \\\n  | jq -r '.accounts[] | select(.assets[].balance \u003e 0) | .id'\n```\n\n### Complementary to MCP (AI Link)\n\nFor agent workflows that benefit from typed tool schemas, use [Fireblocks AI Link](https://developers.fireblocks.com) MCP. Use the CLI for leaf operations, scripts, and any time ambient schema tokens aren't worth the context cost. The two are designed to coexist.\n\n## Contributing\n\nIssues and PRs welcome at [github.com/fireblocks/fireblocks-cli](https://github.com/fireblocks/fireblocks-cli).\n\n## License\n\n[MIT](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireblocks%2Ffireblocks-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffireblocks%2Ffireblocks-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireblocks%2Ffireblocks-cli/lists"}