Developer Platform

Build agents.
Ship in hours.

A TypeScript SDK, REST API, and CLI scaffold tool for embedding enterprise AI agents into any stack. Run an agent in 3 lines of code.

npm install @eclips/sdk
API ReferenceGet API Key
25+SDK methods
12Agent types
8Webhook events
<2sAvg response time
99.9%Uptime SLA
Quickstart

From zero to a running agent in 4 steps.

bash
npm install @eclips/sdk
create-eclips-app

Scaffold a full project in seconds.

One command generates a production-ready project with three template options: an Express API with webhook handling, a Next.js dashboard with live polling, or a minimal Node.js script to test the API.

express-apiExpress server + HMAC webhook verification
nextjs-dashboardApp Router dashboard with realtime polling
agent-onlySingle TypeScript file, fastest to test
bash
npx create-eclips-app

No install needed. Requires Node.js ≥ 18.

Webhooks

Real-time events. HMAC-verified.

Subscribe to run.completed, triage.created, batch.completed, and 5 more events. Every POST includes an HMAC-SHA256 signature so you know it's genuine.

typescript
import crypto from 'crypto';

// Verify the request came from eClips
function verifySignature(rawBody: string, secret: string, sig: string) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');
  return `sha256=${expected}` === sig;
}

// Express handler
app.post('/webhooks/eclips', express.raw({ type: '*/*' }), (req, res) => {
  const sig = req.headers['x-eclips-signature'] as string;
  if (!verifySignature(req.body.toString(), process.env.WEBHOOK_SECRET!, sig)) {
    return res.status(401).send('Unauthorized');
  }

  const event = JSON.parse(req.body.toString());

  switch (event.type) {
    case 'run.completed':
      console.log('Run finished:', event.data.run_id, event.data.result);
      break;
    case 'triage.created':
      // Notify Slack, email team, etc.
      break;
  }

  res.json({ ok: true });
});

Available events

run.completed

Agent finished successfully

run.failed

Agent run encountered an error

triage.created

Agent needs human review

triage.resolved

Item approved or rejected

batch.completed

All batch rows finished

workflow.completed

Multi-step workflow done

workflow.failed

Workflow step encountered error

delegation.created

Agent task delegated to partner

Batch API

Process thousands of tasks in parallel.

Submit a batch of tasks in one call. eClips fans them out across agent workers, tracks per-row results, and calls your webhook when everything's done. No queue management, no rate-limiting headaches.

Parallel execution

Rows run concurrently — 100 invoices takes the same time as 1

Per-row results

Inspect individual outcomes, errors, and outputs at any point

Webhook on completion

Provide a URL and get called the moment the last row finishes

Cancel mid-flight

client.cancelBatch() stops any rows not yet started

typescript
const batch = await client.createBatch('finance', [
  { task: 'Process invoice INV-001', data: { vendor: 'Acme', amount: 5000 } },
  { task: 'Process invoice INV-002', data: { vendor: 'Globex', amount: 12000 } },
  { task: 'Process invoice INV-003', data: { vendor: 'Initech', amount: 3500 } },
]);

// Poll until done
let job = await client.getBatch(batch.id);
while (job.status !== 'completed' && job.status !== 'failed') {
  await new Promise(r => setTimeout(r, 3000));
  job = await client.getBatch(batch.id);
}

// job.rows[n].result for each invoice
console.log(`Processed ${job.rows_completed}/${job.rows_total} invoices`);
SDK Reference

Every method, at a glance.

Full TypeScript types included. See the complete API reference for parameter schemas, error codes, and rate limits.

client.run()Agents

Trigger an agent run, returns run_id immediately

client.runAndWait()Agents

Trigger + poll until terminal state

client.getRun()Agents

Fetch status and result for any run

client.listRuns()Agents

Paginated run history for your org

client.listTriage()Triage

Pending human-in-the-loop items

client.approveTriage()Triage

Approve and continue the blocked run

client.rejectTriage()Triage

Reject and cancel the blocked run

client.createWebhook()Webhooks

Register a webhook endpoint

client.listWebhooks()Webhooks

List all registered webhooks

client.deleteWebhook()Webhooks

Remove a webhook

client.createBatch()Batch

Submit many tasks in a single job

client.getBatch()Batch

Poll a batch job status

client.listBatches()Batch

History of batch jobs

client.triggerWorkflow()Workflows

Run a multi-step workflow

client.listWorkflows()Workflows

Fetch all saved workflows

Full API Reference

Error handling

Every error is a typed class. Catch exactly what you need.

typescript
import {
  EClipsClient,
  AuthenticationError,
  RateLimitError,
  ValidationError,
  NotFoundError,
  TimeoutError,
} from '@eclips/sdk';

try {
  const result = await client.runAndWait('ap_specialist', task);
} catch (err) {
  if (err instanceof AuthenticationError) {
    // Invalid or missing API key
  } else if (err instanceof RateLimitError) {
    // err.retryAfter — seconds to wait
    await sleep(err.retryAfter ?? 60);
  } else if (err instanceof TimeoutError) {
    // Agent exceeded timeout — err.runId is still valid
    // Poll client.getRun(err.runId) to check progress
  } else if (err instanceof NotFoundError) {
    // Run, triage item, or webhook not found
  }
}
Ready when you are

Your Business,
On Autopilot.

From project management to quality systems to security — we build intelligent platforms that simulate, automate, and transform how your operations run.

30 minutes · No pitch deck · Live product walkthrough