Skip to content
SDK · CLI · MCP — one action layer

Write once. Ship to every surface.

Every user-performable operation is an action. The SDK, the CLI, and the MCP tool list all speak the same schema — Zod input, typed output, one audit trail. Learn the pattern once, ship everywhere it lands.

  • Next.js native
  • v0 compatible
Quickstart

Create a CRM deal.

The simplest meaningful API call. Same shape in every language. Same audit row in every case.

TypeScriptTS
1import { HeliosClient } from '@helios/client';
2
3const helios = new HeliosClient({
4 baseUrl: 'https://api.heliosworks.com',
5 token: process.env.HELIOS_API_KEY!,
6});
7
8const result = await helios.actions.invoke('crm.deal.create', {
9 companyId: 'co_acme',
10 name: 'Q3 expansion',
11 amount: 15000_00, // bigint cents
12 currency: 'USD',
13 stage: 'discovery',
14});
15console.log(result.id);
Webhooks

Subscribe to every domain event.

The platform POSTs signed payloads to your endpoint when any subscribed event fires. Verify the signature, do whatever your service needs. Full webhook reference →

TypeScriptTS
1import { verifyWebhookSignature } from '@helios/client';
2import express from 'express';
3
4const app = express();
5
6app.post('/webhooks/helios', express.raw({ type: 'application/json' }), (req, res) => {
7 const signature = req.headers['helios-signature'] as string;
8 const isValid = verifyWebhookSignature({
9 body: req.body,
10 signature,
11 secret: process.env.HELIOS_WEBHOOK_SECRET!,
12 });
13 if (!isValid) return res.status(401).end();
14
15 const event = JSON.parse(req.body.toString());
16 console.log(`Got ${event.type}: ${event.id}`);
17 res.status(200).end();
18});
MCP

Bring your own AI agent.

The MCP server exposes the entire action registry to any MCP-compatible client — Claude Desktop, Cursor, your own agent. MCP details →

Claude DesktopJSON
1{
2 "mcpServers": {
3 "helios": {
4 "url": "https://api.heliosworks.com/api/mcp",
5 "headers": {
6 "Authorization": "Bearer YOUR_HELIOS_AI_TOKEN"
7 }
8 }
9 }
10}
Architecture

Six concepts. That's the whole API.

One action layer

Every user-performable operation is an action. The UI, the AI, the MCP server, and the API all call the same one.

Zod schemas as the contract

Every action declares its input + output via Zod. The OpenAPI spec is generated from these schemas; the MCP tool list is too.

Permission inheritance

API tokens carry a permission set. Actions outside that set are rejected before the handler runs.

Audit log on every call

Every action invocation writes an immutable audit_log row with actor, input_hash, output_hash, and IP.

Idempotency keys

Every state-changing action takes an idempotency key. Duplicates within 24h return the existing result.

Webhooks + events

Subscribe to any domain event. The platform POSTs signed payloads, retries on failure, audit-logs delivery.

SDKs

Official + community SDKs.

  • @helios/client (TypeScript) — official, typed against the auto-generated OpenAPI spec.
  • helios-py (Python) — official, Pydantic models from the same spec.
  • helios-go (Go) — official, struct-tagged for JSON.
  • cURL / HTTP — first-class. Every action is reachable as a JSON POST.
  • OpenAPI spec — published at https://api.heliosworks.com/openapi.json; generate your own SDK in any language.

Source for all official SDKs lives on GitHub. Contributions welcome — see CONTRIBUTING.md in each repo.

Built on

the stack your engineers will recognize

Frontend
TanStackReactReactTypeScriptTypeScript
Backend
oRPCZodZodInngest
Data
PostgreSQLPostgreSQLDrizzleDrizzlepgvector
AI
AnthropicAnthropicMCP
Auth
Better AuthBetter-Auth
DevX
BiomeBiomeVitestVitestDockerDockerCloudflareCloudflare
Build

Read the docs. Write your first action.

The SDK, the CLI, and the MCP tool list all speak actions. Learn the pattern once; ship everywhere it lands.

Subscribe to the Odexy changelog.

One email every ~2 weeks. Honest product notes, no marketing pitches.

We email you only when there's something honest to say. Unsubscribe in one click.