Skip to content

Cowliss

Identify your users, track what they do, segment them, then write the emails that follow in TypeScript. Cowliss keeps the profiles and the waits that last for weeks.

1. Identify and track

Two typed calls from your app, across every product you run. Backfill a year of history without emailing a year of users.

2. Group them

Segments are rules over traits and events, recomputed on every write. Entering one can start a journey.

3. Write the journey

defineJourney({ trigger, from, run }) in your repo. One execution per user, waits that survive a restart, events delivered as they arrive.

Hand it to an agent

Anything the dashboard does, the cow CLI and the MCP server do too.

Every page is markdown too: append index.md to its URL (/journeys/index.md). The index is /llms.txt, the whole site is /llms-full.txt, and the API contract is /openapi.json.