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
Option A: Docker (recommended)
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
- Open
http://localhost:4200 - Sign in with the default credentials:
- Email:
admin@example.com - Password:
changeme123
- Email:
tip
You can customize these with the ADMIN_EMAIL and ADMIN_PASSWORD environment variables.
3. Create an API key
- Navigate to Settings > API Keys
- Click Create
- Copy the key (starts with
acl_) — you'll need it for the SDK
4. Install the SDK
- TypeScript
- Python
npm install @sequenceware/sdk
pip install sequenceware
5. Send your first event
- TypeScript
- Python
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);
from sequenceware import SequencewareClient
client = SequencewareClient(
base_url="http://localhost:3000",
api_key="acl_...",
agent_id="my-first-agent",
)
with client.run(metadata={"task": "quickstart"}) as run:
run.track_tool("read_file", {"path": "README.md"})
6. See it in the dashboard
- Open Runs in the dashboard
- Open the latest run
- Confirm you can see the timeline, tool call payload, and audit entries
7. Create your first policy
- Navigate to Policies
- Click Create Policy
- Configure:
- Field:
toolName - Operator:
equals - Value:
create_pull_request - Action:
require_approval
- Field:
8. Trigger the policy
- TypeScript
- Python
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!
with client.run(metadata={"task": "policy-test"}) as run:
run.track_tool("create_pull_request", {"title": "Test controlled change"})
Now verify:
- Approvals page shows a pending request
- Approve or reject from the dashboard
- Runs page shows the status transition
Next steps
- Install the SDK in your project
- Instrument your first real agent
- Learn about policies
- Explore framework integrations (LangChain, CrewAI, OpenAI, Anthropic)