SDKs — the client surfaces
Zeq is a language; these are the ways to speak it. Every client wraps the same wire calls, shares the same constants, and gets back the same Ed25519-signed, independently verifiable result. Same equations, same bits, from any of them.
| Client | How you get it | Runtime | Best for |
|---|---|---|---|
TypeScript / JavaScript — @zeq/sdk | npm install @zeq/sdk from our registry | Node 18+, browsers | Apps, services, notebooks — the flagship client |
Terminal CLI — zeq | curl -fsSL https://zeqsdk.com/install.sh | sh | any shell | First install, tutorials, zeq verify |
Python — zeq.py | curl -fsSO https://zeqsdk.com/cli/zeq.py (no pip) | Python 3.8+ | Data science, Jupyter, NumPy pipelines |
| HTTP / curl | nothing to install — the wire format itself | anything | Any language; what every client wraps |
| MCP server | zeqsdk-mcp | any MCP host | Claude, Cursor, Zed — agent tool use |
| Kernel Skill | served by every node, sha256-pinned | any agent runtime | Teaching an agent the kernel contract |
Install the package
The TypeScript/JavaScript SDK is published to Zeq's own registry — not
npmjs. Point the @zeq scope at it once, then install normally:
npm config set @zeq:registry https://zeqsdk.com
npm install @zeq/sdk
The full page is TypeScript / JavaScript → @zeq/sdk.
Prefer a one-liner that also gives you the zeq CLI?
curl -fsSL https://zeqsdk.com/install.sh | sh
What every client shares
All clients wrap the same API surface and share the kernel
constants (PULSE_HZ = 1.287, ZEQOND_SEC = 0.777, runtime
ALPHA_K = 10⁻³ exactly).
Every compute result, from every client, carries an Ed25519-signed
claim (signed.claim — registry_version, operators, inputs, value,
unit, uncertainty, zeqond) that any third party can re-derive offline
with no secrets — and you can verify on a different node than computed
it. From the package: verify(envelope, { origin: "https://zeqond.com" })
→ { verdict: "agree", valid: true }. From the terminal: pipe the
envelope to zeq verify -. From any node: POST the signed block to the
public /api/attest.
Try it without an account
new ZeqClient() computes locally with no key at all. To get a signed
envelope without signing up, every node serves GET /api/demo-key — an
instant scoped key (100 computes per rolling 24 h window, per IP):
# 1 · grab a demo key → { "key": "zeq_ak_…", "plan": "demo", "dailyLimit": 100 }
curl -s https://zeqsdk.com/api/demo-key
# 2 · one compute with it — a signed envelope comes back
curl -s -X POST https://zeqsdk.com/api/zeq/compute \
-H "Authorization: Bearer zeq_ak_…" \
-H "Content-Type: application/json" \
-d '{ "operators": ["KO42", "NM19"], "inputs": { "mass": 5, "acceleration": 2 } }'
Drop that key into ZEQ_API_KEY and every snippet on every client page
works unchanged.
See also
- API reference — the endpoints all clients wrap
- Self-hosting — run the stack yourself and point clients at it
- Papers: Zeq Paper · Zeq Framework
Middleware active. Kernel on the 1.287 Hz HulyaPulse. Awaiting next Zeqond.