5-minute quickstart
Create a Kite project, validate its config, and process an event locally.
This guide uses the public beta CLI. It does not deploy data or configuration to the live environment.
Prerequisites
- Node.js 20 or newer
- A running Kite API and PostgreSQL database
- A verified Kite dashboard account with an organization
1. Install the CLI
npm install --global @kitesdk/cli@beta2. Connect the CLI
Set the local API URL when it differs from the default, then start device login:
export KITE_API_URL="http://localhost:4400"
kite auth loginOpen the displayed URL, sign in with your dashboard user, and select the organization that will own the project. The CLI stores a revocable user session outside the repository.
3. Create a project
Create a project in an empty directory next to the repository:
mkdir ../acme-kite
kite init \
--directory ../acme-kite \
--name "Acme" --slug acme --stack node --env test --yesThe command prints the test and live API keys exactly once. Keep them out of Git and logs.
Windows PowerShell
Use $env:KITE_API_URL = "http://localhost:4400" and place commands on one line instead of
using the \ line continuation shown above.
4. Validate the generated config
Point the CLI at the generated directory:
kite validate --directory ../acme-kiteValidation loads every configured source file, compiles the TypeScript DSL, and reports cross-file errors before any deployment occurs.
5. Run the local engine
kite dev --directory ../acme-kiteThe development server listens on 127.0.0.1:4401 by default and reloads the configuration
when source files change.
6. Send an event
In another terminal:
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"}}'Then send the next onboarding event:
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"}}'The local process logs accepted events and resulting state changes. You now have a working event-to-state loop without deploying configuration.
Next steps
- Read the generated
journeys/onboarding.tsand change a completion condition. - Run
kite validateagain before testing the edit. - Review Config to understand each definition type.
- Use a
kt_test_...key when instrumenting a backend. Never expose keys in browser code.