Docs
Getting Started

5-minute quickstart

Create a Kite project and turn two product events into customer state locally.

Create a working Customer Success model, run it locally, and see customer state change after two events. You will not deploy configuration or send customer data to live.

Before you begin

You need Node.js 20 or newer, a Kite account with an organization, and the Kite CLI:

npm install --global @kitesdk/cli
kite --version

Using Kite Cloud

The CLI uses https://api.usekite.cloud by default. Set KITE_API_URL only when you intentionally connect to a self-hosted API. See Installation for the complete setup and troubleshooting guide.

1. Sign in

Start the browser login, then confirm the active account and organization:

kite auth login
kite whoami

The CLI stores a revocable session outside your project. It does not write credentials to the repository.

2. Create a project

Create an empty directory and generate the starter model:

mkdir acme-kite
cd acme-kite
kite init --name "Acme" --slug acme --stack node --env test --yes

kite init creates the remote project and a working local model with lifecycle, journey, rule, segment, health, and signal definitions.

Store the API keys

The command prints the test and live API keys exactly once. Put them in your secret manager. Never commit them to Git, paste them into tickets, or expose them in browser code.

3. Validate the model

kite validate

Validation compiles the TypeScript DSL and checks references across all generated definitions. It does not deploy configuration.

4. Start the local engine

kite dev

Keep this terminal open. The engine listens on http://127.0.0.1:4401 and automatically reloads when configuration files change.

5. Send two events

Open a second terminal. Create a customer, then record its first meaningful product usage:

curl -X POST http://127.0.0.1:4401/events \
  -H "content-type: application/json" \
  -d '{"customerId":"customer_123","event":"account.created","properties":{"plan":"pro"}}'
curl -X POST http://127.0.0.1:4401/events \
  -H "content-type: application/json" \
  -d '{"customerId":"customer_123","event":"feature.used","properties":{"feature":"reports"}}'

Each request returns accepted: true with the customer's computed state. The kite dev terminal also shows a summary similar to:

[12:34:56] EVENT     feature.used
           Customer  customer_123
           State     lifecycle=trial health=... segments=...

Windows PowerShell

Replace curl with curl.exe. PowerShell's curl alias handles these flags differently.

Make the model yours

You now have the complete local loop:

event -> evaluation -> lifecycle, journey, segment, health, and signals

Explore the generated files to see how that state is defined:

FileWhat it defines
kite.config.tsEvent and customer-trait schemas
journeys/onboarding.tsOnboarding milestones
states/lifecycle.tsLifecycle transitions
health/overall.tsHealth derived from customer behavior

Change a condition in journeys/onboarding.ts and save it. After kite dev confirms that the configuration reloaded, validate it again:

kite validate

Send the events again with a new customer ID. A fresh ID gives you a clean event history and makes the result easy to compare.

Next steps

You created and exercised a versioned Customer Success model without touching production.

  1. Read Config Reference to understand every definition type.
  2. Choose a stable customer identity and event taxonomy.
  3. Model one measurable customer outcome at a time.
  4. Validate locally, then deploy deliberately to test.

On this page