Skip to main content

Quickstart

Get from zero to a first tool call governed by policy in under 10 minutes.

Prerequisites

  • Docker + Docker Compose or Node.js 20+ and MongoDB
  • Python 3.9+ or Node.js 20+ (for the SDK)

1. Start the platform

git clone https://github.com/nacorga/sequenceware.git
cd sequenceware
cp .env.example .env
SEED_DEMO_DATA=true docker compose up --build

Option B: Local development

git clone https://github.com/nacorga/sequenceware.git
cd sequenceware

Terminal 1 — Backend:

cd backend
MONGODB_URI=mongodb://localhost:27017/sequenceware SEED_DEMO_DATA=true npm run start:dev

Terminal 2 — Frontend:

cd frontend
npx ng serve

Services will be available at:

  • Dashboard: http://localhost:4200
  • Backend API: http://localhost:3000
  • Swagger docs: http://localhost:3000/api/docs

2. Log in

  1. Open http://localhost:4200
  2. Sign in with the default credentials:
    • Email: admin@example.com
    • Password: changeme123
tip

You can customize these with the ADMIN_EMAIL and ADMIN_PASSWORD environment variables.

3. Create an API key

  1. Navigate to Settings > API Keys
  2. Click Create
  3. Copy the key (starts with acl_) — you'll need it for the SDK

4. Install the SDK

npm install @sequenceware/sdk

5. Send your first event

import { SequencewareClient } from '@sequenceware/sdk';

const client = new SequencewareClient({
baseUrl: 'http://localhost:3000',
apiKey: 'acl_...',
agentId: 'my-first-agent',
});

const runId = await client.startRun(undefined, { task: 'quickstart' });
const tcId = await client.trackToolCall(runId, 'read_file', { path: 'README.md' });
await client.completeToolCall(runId, tcId, { content: '...' });
await client.completeRun(runId);

6. See it in the dashboard

  1. Open Runs in the dashboard
  2. Open the latest run
  3. Confirm you can see the timeline, tool call payload, and audit entries

7. Create your first policy

  1. Navigate to Policies
  2. Click Create Policy
  3. Configure:
    • Field: toolName
    • Operator: equals
    • Value: create_pull_request
    • Action: require_approval

8. Trigger the policy

const runId = await client.startRun(undefined, { task: 'policy-test' });
const tcId = await client.trackToolCall(runId, 'create_pull_request', {
title: 'Test controlled change',
});
// This tool call will now require approval!

Now verify:

  1. Approvals page shows a pending request
  2. Approve or reject from the dashboard
  3. Runs page shows the status transition

Next steps