Skip to main content
Intempt
CLI · v0.1.0

Instrument the codebase, not aspreadsheet.

Scan your source, generate a tracking plan, ship typed SDK wrappers for 14 platforms. Any call that does not match the plan fails at compile time.

Free. Reads your own source tree and nothing else.

analytics.ts
// generated
Analytics.userSignedUp({
plan: "pro",
emial: "a@b.co",
});
Property 'emial' does not exist. Did you mean 'email'?
intempt.yaml
events:
- name: user_signed_up
properties:
- email: string
- plan: string
- source: string
$ npm install -g @intempt-technologies/cli
$ intempt init
→ detected: Next.js · TypeScript · pnpm
14 platforms supported

One plan, typed wrappers forevery stack.

Same intempt.yaml, fourteen generators. Rename a property once in the plan, regenerate, every SDK site type-errors until it matches.

TypeScript
React
Next.js
Vue
Nuxt
Svelte
iOS / Swift
Android / Kotlin
React Native
Flutter
Python
Go
Ruby
PHP
How it works

intempt init, then two morecommands.

Detects your framework, proposes events from a source scan, writes them to intempt.yaml, generates the wrappers. Three commands, no dashboard step.

intempt init
checkout.tsx
signup.tsx
pricing.tsx
AI scan
intempt.yaml
- name: user_signed_up
  properties:
    email: string
    plan: string
- name: checkout_started
  properties:
    plan: string
    seats: number
- name: payment_confirmed
  properties:
    amount: number
intempt generate
Analytics.checkoutStarted({
plan: "pro",
seats: 5
})
type-safe
intempt status
user_signed_up
in code
checkout_started
in code
payment_confirmed
in code
invite_sent
⚠ missing
subscription_upgraded
⚠ missing
Why it matters

A mistyped property breaks the build,not the funnel.

Every analytics call the generator writes is typed against the plan. Wrong property name, wrong type, missing event, none of it ships. It fails locally, in review, or in CI.

The alternative is finding it three weeks later in a broken dashboard, with no way to backfill.

AI scan sends source to the model provider only for files you approve. Nothing routes through an Intempt server.

Platforms
14
Commands to learn
3
Config file
intempt.yaml
Type errors caught pre-ship
all of them
Use cases

What sellers, marketers and PMs will ask you tofix next.

Eight cases the tracking plan owns before the ticket exists.

event-drift

Renaming an event.

Change the name in intempt.yaml, regenerate. Every call site breaks the build until it matches.

missing-props

A required property nobody sent.

intempt status lists the events planned but not yet called anywhere in the code.

platform-mix

iOS, web and Android sending different shapes.

One plan generates typed wrappers for all three, so shape drift is impossible.

pr-review

Analytics code review during PRs.

Wrappers are just imports; reviewers read them like any other typed call.

onboarding-new-eng

A new engineer instrumenting their first flow.

They import the generated wrapper, autocomplete does the rest.

ci-guard

A CI check that fails on unplanned events.

Static token authenticates, intempt status --json returns machine-readable drift.

deprecating-an-event

Retiring an event without breaking dashboards.

Remove from plan, regenerate, compile errors surface every call site that still uses it.

stack-change

Adopting a new SDK next quarter.

Same plan, different generator. No re-writing of instrumentation.

Interactive or scripted

Two ways to use it. Same output,different input.

Option A

Set it up from inside Claude Code.

Paste one prompt into your agent. It installs the CLI, runs init, walks you through the AI scan, shows you the plan, generates the wrappers and reports status. Waits for your confirmation before each step.

claude-code prompt
You are helping me set up the Intempt CLI. It scans a codebase,
proposes a tracking plan, and generates typed SDK wrappers for 14 platforms.

Walk me through it one step at a time, run commands for me where you can,
and wait for my confirmation before moving on.
...

Device-code login handles auth. No terminal credentials.

Option B

Every command supports --json for piping.

For scripted and batch work, run the commands directly. Static token authenticates in CI. Registry commands return machine-readable JSON.

terminal
$ intempt init --plan-only
$ intempt generate --platform typescript
$ intempt status --json | jq .missing

Config lives in intempt.yaml at repo root. Commit it.

Wired into your stack

Wired into the tools your teamalready opens.

Salesforce, HubSpot, Slack, Gmail, Calendar, Zoom, Segment, Shopify. Plug in once, generate typed wrappers for every event that touches them.

JavaScript
Node JS
Apple
Stripe
Gmail
Google Calendar
Google Meet
Twilio
SendGrid
Slack
Amazon SES
Webhook
Apache Kafka
Amazon S3
Firebase Cloud Messaging
Signal

Teams stopped shipping broken funnels because their compilercaught them first.

Jim Stromberg, CEO at StockInvest

We were losing visitors before they signed up. Intempt's personalized experiences changed that - we started meeting people where they were instead of guessing. Once they're in, Intempt's automated email takes over and keeps the relationship moving. Acquisition and retention finally feel like one connected motion instead of two separate problems.

Jim Stromberg

CEO, StockInvest

Eric Gardner, COO at FieldsUSA

Intempt helped us turn real browsing and purchase signals into personalized experiences that drive repeat buying. We finally have one system that sees the whole customer journey.

Eric Gardner

COO, FieldsUSA

Tadas Kertenis, Co-founder at Hoperfy

With Intempt, we built a signal-led pipeline driven by real behaviors. Follow-ups are triggered by intent signals instead of timelines, so we only focus on users who are truly engaging.

Tadas Kertenis

Co-founder, Hoperfy

v0.1.0

Instrument once. Never chase a brokenfunnel again.

Free. Reads your own source tree and nothing else. Three commands from install to typed calls.

npm install -g @intempt-technologies/cli

Ready to instrument once?

Free. Reads your own source tree and nothing else. Three commands from install to typed calls.

60 seconds to connect. Your first campaign runs tonight.