Skip to content

Features by SDK

View as Markdown

This page shows which features each SDK has, and what to do where your language's SDK lacks one.

Kindgi has an SDK for TypeScript, Python, Java and Scala. Each one does two jobs:

  • In a pack: your tools, guardrails, agents and flows.
  • In your app: calling Kindgi's API to start runs, follow them, decide approvals, and so on.
TypeScript Python Java Scala
Package @kindgi/sdk kindgi com.kindgi:kindgi-pack, com.kindgi:kindgi-client "com.kindgi" %% "kindgi-pack-scala", with the Java client
A pack's config kindgi.config.ts pyproject.toml ([tool.kindgi]) kindgi.config.json kindgi.config.json
The CLI, in a pack pnpm exec kindgi uv run kindgi ./kindgiw ./kindgiw

Every SDK's version is the Kindgi release's. Scala apps call the API with the Java client.

Feature TypeScript Python Java Scala
Tools, with typed input and output Yes Yes Yes Yes
A handler that answers later (async) Yes Yes Yes Yes
Read-only tools Yes Yes Yes Yes
Logging from a tool Yes Yes Yes Yes
A side effect done once (the idempotency key) Yes Yes Yes Yes
Cancellation Yes Yes Yes Yes
A tool's secrets and per-project values Yes Yes Yes Yes
Settings blocks a tool reads Yes Yes Yes Yes
HTTP tools without code Yes Yes No No
Guardrails with your own check Yes Yes Yes Yes
Agents, with typed answers, memory and budgets Yes Yes Yes Yes
Flows: branches, loops, parallel steps, retries, approvals Yes Yes Yes Yes
Unit-testing a tool Yes Yes Yes Yes
A test context with env values and secrets, its env values decided as a run decides them Yes Yes Yes Yes

In Java and Scala, an agent's or a flow's fields beyond the builder's own go in as data, as the API names them: set("budget", …), node(Map.of(…)), edge(Map.of(…)). So every agent and flow feature is there.

Feature TypeScript Python Java Scala
Every API operation Yes Yes Yes Yes
Start a run, and wait for it or not Yes Yes Yes Yes
Follow a run's events, reconnecting until it ends Yes Yes Yes Yes
Typed errors, and retries a call can take Yes Yes Yes Yes
Trying an agent version on the test cases: a helper that reads the result Yes Yes Yes Yes
Verifying a webhook, reading its event, signing a test one Yes Yes Yes Yes
Checking a signed export Yes Yes Yes Yes

The guides show each language in its own tab. Where a guide has no tab for your language, the In a pack and In your app tables say whether its SDK has the feature. Where an SDK lacks a feature says what to do instead.