Skip to content

Releases: KashDAO/cli

v0.1.0

20 May 20:28

Choose a tag to compare

Initial public release.

Added

  • kash setup — interactive first-run wizard (masked API key
    prompt, profile selection, shell-completion install, health probe,
    scope canary). Non-interactive via --yes --api-key <key>. Re-runnable
    on existing configs (updates, not duplicates).
  • Multi-profile support~/.kash/config.json holds named profiles
    (default, live, test, etc.). Switch via --profile <name>,
    KASH_PROFILE=<name>, or kash config use <name>. Per-profile
    apiKey, baseUrl, defaultChainId, plus protocol-mode fields
    (rpcUrl, smartAccount, bundlerUrl, bundlerProvider,
    signerKeyRef, customChain).
  • Auto-routing — a kash_test_* API key auto-routes to staging
    (api-staging.kash.bot); a kash_live_* key routes to production
    (api.kash.bot). Mirrors @kashdao/sdk's inferBaseUrlFromApiKey().
    Explicit --base-url or KASH_BASE_URL always wins.
  • Two orchestration modes — both fully non-custodial. On every
    path: Kash never holds funds, never moves funds, never holds keys,
    and never signs anything. User funds always live in accounts the
    user controls. See SECURITY.md § Non-custodial design for the full
    statement.
    • Kash-orchestrated (default) — uses the Kash public REST API
      (kash markets, kash quote, kash trade, kash portfolio,
      kash webhooks, kash auth, kash trace, kash account). The
      API key is a scoped, revocable delegation the user issues against
      their own Privy-managed smart account.
    • Self-orchestrated (kash protocol ...) — wraps
      @kashdao/protocol-sdk (signer + RPC + bundler all consumer-side).
      Zero Kash backend dependency. Lazy-loaded — adds no cold-start
      cost for users who stay on the Kash-orchestrated path.
  • JSON-everywhere — every command accepts --json for a stable
    machine-readable envelope (single object on stdout, errors on stderr).
    kash docs --json returns the full command tree for tooling.
  • Idempotency--auto-idempotency-key on trade commands, or pass
    --idempotency-key <uuid> manually. Replays return the cached
    response.
  • Webhook opskash webhooks list, redeliver <eventId>,
    rotate-secret, replay <file> (offline signature preview).
  • Trade lifecyclekash trade buy/sell, --dry-run preview,
    --wait polling until terminal, kash trade status <id>,
    kash trade confirm <id> --token <token> for high-value flows,
    kash trade list --filter.
  • High-value confirmation flow — gracefully handles
    pending_confirmation responses with a --token prompt or
    --auto-confirm for trusted contexts.
  • kash trace <correlationId> — end-to-end request-id trace from a
    trade or webhook delivery, walks the event chain across services.
  • Typed errors + recovery hints — every error includes a code, a
    recovery suggestion (e.g., DNS errors against api.kash.bot suggest
    using a test key), and a kash explain <CODE> reference.
  • Shell completion — bash, zsh, fish via the omelette integration.
    Installed during kash setup (skippable with --yes).
  • Cross-platform install — npm (npm i -g @kashdao/cli), pnpm,
    or yarn. A Homebrew tap (kashdao/tap) is planned for the
    production launch.