---
title: Eventmodelers Build Kit - Kotlin
description: Real-time Claude agent that connects to the Eventmodelers Platform and implements board slices as Cratis (Arc + Chronicle) vertical slices in a Kotlin project
tableOfContents: false
---

Real-time Claude agent that connects to the Eventmodelers Platform and implements board slices as Cratis (Arc + Chronicle) vertical slices in a Kotlin project.

## What This Kit Does

When a slice is marked `Planned` on your Eventmodelers board, this kit automatically:

1. **Connects** to the Eventmodelers Platform in real-time
2. **Fetches** the slice definition and board context
3. **Generates** a complete Cratis vertical slice (commands, events, projections, read models, React components)
4. **Builds** the slice with `./gradlew build` and runs tests with `./gradlew test`
5. **Updates** the board status to `Done` when complete

The entire process happens automatically, with your Claude agent implementing the slice according to Cratis best practices.

## Where to Start

- **[Install the Kit](/eventmodelers-ai/kotlin/getting-started/install/)** — Get up and running in five minutes
- **[Run Your First Slice](/eventmodelers-ai/kotlin/getting-started/first-slice/)** — Watch a slice go from `Planned` to `Done`
- **[Connect a Board](/eventmodelers-ai/kotlin/guides/connect-a-board/)** — Wire the kit up to your Eventmodelers board

## How It Works

The kit implements the [Eventmodelers Build Kits platform contract](https://github.com/Nebulit-GmbH/Eventmodelers-Build-Kits):

1. **Real-time board subscription** — The kit subscribes to your board's slice status changes
2. **Status-based triggers** — Two independent loops:
   - `tasks.json` non-empty → run `prompt.md` (reacts to status changes)
   - Slice is `Planned` in `.slices/*/index.json` → run `backend-prompt.md` (builds one slice)
3. **Slice-type routing** — Automatically routes to the correct build skill:
   - `TRANSLATION` or `processors[]` → `build-automation` (reactors/automation)
   - `projections`/`queries`/`readModel` → `build-state-view` (read models)
   - Otherwise (`commands`/`events`) → `build-state-change` (commands/events)
4. **Cratis conformance** — Generated slices follow Cratis best practices:
   - One `.kt` file per slice — every backend artifact (command, event, reactor) lives together
   - `@Command` data classes carry a `handle()` method — no separate handler class
   - `@EventType` data classes use past-tense, self-describing names
   - `ConceptAs<T>` wraps identities and values in events and read models instead of raw primitives
   - Read models are exposed as Arc queries annotated with `@Path`
   - Package mirrors the folder structure

See [Understanding the Loop](/eventmodelers-ai/kotlin/understand/the-loop/) for the full mechanics.

## Place in the Cratis Ecosystem

This kit sits between the [Eventmodelers Platform](https://app.eventmodelers.ai) and [Cratis](https://cratis.dev):

- **Upstream**: [Eventmodelers Build Kits](https://github.com/Nebulit-GmbH/Eventmodelers-Build-Kits) — The platform that manages board slices
- **This Repository**: [Eventmodelers-Build-Kit-Kotlin](https://github.com/Cratis/Eventmodelers-Build-Kit-Kotlin) — The Kotlin implementation
- **Downstream**: [Cratis Chronicle](https://github.com/Cratis/Chronicle.Kotlin) + [Cratis Arc](https://github.com/Cratis/Arc.Kotlin) — The frameworks the generated slices build on

See the sibling kits for other language implementations: [C#](https://github.com/Cratis/Eventmodelers-Build-Kit-CSharp) and [Java](https://github.com/Cratis/Eventmodelers-Build-Kit-Java).

## Installation

Install from git (this package is private, so use the git install path):

```bash
npx github:Cratis/Eventmodelers-Build-Kit-Kotlin install
```

Or use the upstream CLI with this repository as a git stack:

```bash
npx @eventmodelers/cli init --stack cratis-kotlin --git https://github.com/Cratis/Eventmodelers-Build-Kit-Kotlin
```

After installation, run:

```bash
node .build-kit/ralph-claude.js
```

## Next Steps

1. [Install the kit](/eventmodelers-ai/kotlin/getting-started/install/)
2. [Connect your Eventmodelers board](/eventmodelers-ai/kotlin/guides/connect-a-board/)
3. [Mark a slice as `Planned`](https://app.eventmodelers.ai) on your board
4. Watch the kit automatically implement it as a Cratis vertical slice — see [Run Your First Slice](/eventmodelers-ai/kotlin/getting-started/first-slice/)

## See Also

- [Understanding the Loop](/eventmodelers-ai/kotlin/understand/the-loop/) — How the two triggers work independently
- [CLI Commands](/eventmodelers-ai/kotlin/reference/cli-commands/) — `install`, `uninstall`, and `status`
- [Cratis Conventions](https://github.com/Cratis/Eventmodelers-Build-Kit-Kotlin/tree/main/templates/.claude/skills/_shared/cratis-conventions.md) — The conventions the kit enforces, generated from the Cratis AI corpus
- [Eventmodelers Build Kits platform contract](https://github.com/Nebulit-GmbH/Eventmodelers-Build-Kits) — The platform skills the kit uses
