@synode/cli
v5.0.24
Published
CLI tool for Synode synthetic data generation
Maintainers
Readme
@synode/cli
Command-line tool for Synode — generate realistic synthetic data for Customer Data Platforms.
Install
npm install -g @synode/cliQuick Start
# Scaffold a new project with interactive prompts
synode init
# Generate events from your config
synode generate synode.config.ts
# Generate 1000 users with file output
synode generate synode.config.ts --users 1000 --output events.jsonl
# Validate config without generating
synode validate synode.config.tsCommands
| Command | Description |
| ------------------- | ---------------------------------------------- |
| generate <config> | Generate synthetic data from config file |
| validate <config> | Validate config without generating |
| init [dir] | Scaffold a new Synode project interactively |
| analyze | Reverse-engineer Synode config from event data |
| update | Update all @synode packages to latest versions |
Flags (generate)
| Flag | Short | Description |
| ----------------- | ----- | ------------------------------------ |
| --users <n> | -u | Override user count |
| --lanes <n> | -l | Override lane count |
| --workers <n> | -w | Enable worker threads with N workers |
| --output <path> | -o | Output file path (default: stdout) |
| --format <fmt> | -f | Output format: json, jsonl, csv |
| --debug | | Enable telemetry |
| --dry-run | | Validate only, generate 1 user |
| --quiet | -q | Suppress progress output |
Flags (analyze)
| Flag | Description |
| ---------------- | -------------------------------------- |
| --compile-only | Re-compile from existing analysis.json |
Config File
// synode.config.ts
import { defineJourney, defineAdventure, defineAction, generate } from '@synode/core';
import type { Journey, TimeConfig, SimulationConfig } from '@synode/core';
const journey = defineJourney({
id: 'website-visit',
name: 'Website Visit',
adventures: [
defineAdventure({
id: 'browse',
name: 'Browse',
actions: [defineAction({ id: 'view', name: 'page_viewed', fields: { url: '/home' } })],
}),
],
});
export const journeys: Journey[] = [journey];
export const time: TimeConfig = { duration: '1d' };
export const simulation: SimulationConfig = { users: 100, lanes: 4, tick: '1m' };
await generate(journeys, { time, simulation });Documentation
License
Proprietary -- see LICENSE for details.
Copyright © 2026 Digitl Cloud GmbH
