skip to main content
Browse documentation

Quickstart

From your existing API to a working assistant in your app — in about 90 minutes.

This walkthrough takes you from an existing app to a live Syncanix assistant: discover your API, review what the assistant can do, connect your backend, embed the widget, and promote to production. Most teams get through it in around 90 minutes.

Before you start

  • Node.js 20 or newer.
  • An existing HTTP API with at least one authenticated endpoint.
  • An identity provider for your users — Auth0, Clerk, Cognito, WorkOS, or your own OIDC.
  • An Anthropic, OpenAI, or AWS Bedrock-EU key — or use a managed key (a small markup applies on some plans).

1. Discover your API

Run the CLI in your project. It detects your framework, reads your routes, writes a capability catalog, and uploads it. Discovery is static by default — it reads your code, never runs it, and no production data leaves your machine.

npx syncanix init

Optional AI enrichment (clearer titles and descriptions) runs only after you give explicit zero-data-retention consent at the prompt. You can also skip it and enrich later.

2. Review the catalog

Open the dashboard to see what was discovered. This is where you decide what the assistant can do, and how carefully:

  • Mark internal endpoints so they stay out of the assistant’s reach.
  • Set each action’s side effect — read, write, or destructive — which controls how it is confirmed.
  • Require step-up authentication on sensitive actions, so the user re-confirms their identity before they run.

3. Connect your backend

Add the Node SDK to the service that owns your API. It resolves your key and boots in a few milliseconds:

npm install @syncanix/sdk-node
import { init } from '@syncanix/sdk-node';

// Resolves your API key from SYNCANIX_API_KEY, ~/.syncanix/credentials,
// or an inline { apiKey } — in that order.
const { environment, bootDurationMs } = await init({ environment: 'development' });
console.log(`Syncanix booted in ${bootDurationMs.toFixed(1)}ms`);

You can also register SDK-native tools — actions the assistant can call that aren’t plain HTTP routes. Each runs with the end user’s identity, supplied by your identity provider:

import { createToolRegistry } from '@syncanix/sdk-node';

const registry = createToolRegistry();

registry.tool({
  name: 'refund-order',
  description: 'Refund a customer order. Requires an admin role.',
  handler: async ({ orderId, amountCents }, ctx) => {
    // ctx.userId is the verified end user from your identity provider.
    return payments.refund({ orderId, amountCents, actor: ctx.userId });
  },
});

4. Embed the widget

Add one script tag to your app, using your publishable key:

<script
  type="module"
  src="https://cdn.syncanix.com/widget.js"
  data-key="pk_live_..."
></script>

That’s it. The widget loads lazily, runs inside a Shadow DOM so your styles and ours never collide, picks up your brand automatically, and is right-to-left ready.

5. Connect an MCP client (optional)

On Growth plans and above, each workspace also gets its own MCP server, so your users can reach the same capabilities from Claude Desktop, Cursor, and ChatGPT. Sign-in federates to your identity provider.

6. Promote to production

When you’re happy with how the assistant behaves in development, promote it to production from the dashboard. An evaluation gate runs first and blocks the promote if quality regresses, so production only ever changes for the better.

What you have now

  • An embedded assistant in your app that answers questions and runs your actions.
  • A per-workspace MCP server for Claude Desktop, Cursor, and ChatGPT (Growth and above).
  • An audit trail of every action, promote, and admin change.
  • Everything hosted in the EU, with your data encrypted at rest.

Next steps