---
title: "DropletLiveActivityKind, DroppyKit"
description: "What a live activity is about, so the host never shows two of the same thing (DroppyKit 1.23.0)."
canonical: "https://getdroppy.app/docs/droppykit/api/droplet-live-activity-kind"
last-updated: "2026-09-09"
---

# DropletLiveActivityKind

What a live activity is about, so the host never shows two of the same thing (DroppyKit 1.23.0).

`struct DropletLiveActivityKind`

Available from DroppyKit 1.23.0.

Droppy has live activities of its own for these, and it keeps one per kind on the notch: while Droppy's own activity of a kind holds the notch, a droplet activity of the same kind is not drawn at all, neither its wings nor its companion pill, and its seat reads [`none(_:)`](https://getdroppy.app/docs/droppykit/api/droplet-live-activity-seat#none) with [`duplicatesBuiltIn`](https://getdroppy.app/docs/droppykit/api/droplet-live-activity-yield-reason#duplicates-built-in). Droppy's own wins, and the notch hands over on Droppy's own motion. When Droppy's activity ends, yours comes back by itself.

`custom` is the default and is never compared: declare a kind only when your activity really is one of these, and leave it `custom` otherwise. Open by design, like [`DropletLiveActivityYieldReason`](https://getdroppy.app/docs/droppykit/api/droplet-live-activity-yield-reason): a kind Droppy does not know reads as `custom`.

## Initializers

### init(rawValue:)

`init(rawValue: String)`

Creates a kind from a raw string.

### init(stringLiteral:)

`init(stringLiteral value: String)`

String-literal convenience.

## Type properties

### calendarEvent

`static let calendarEvent: DropletLiveActivityKind`

A calendar event in progress or about to start: Droppy's calendar ring.

### call

`static let call: DropletLiveActivityKind`

A call or meeting in progress: Droppy's meeting chip.

### codingAgent

`static let codingAgent: DropletLiveActivityKind`

A coding agent at work: Droppy's AI coding chip.

### custom

`static let custom: DropletLiveActivityKind`

Anything that is none of the kinds below. Never deduplicated.

### download

`static let download: DropletLiveActivityKind`

A file arriving: Droppy's download ring.

### nowPlaying

`static let nowPlaying: DropletLiveActivityKind`

Music or other media playing: Droppy's Now Playing.

### recording

`static let recording: DropletLiveActivityKind`

The microphone recording: Droppy's recording and mute indicator.

### screenRecording

`static let screenRecording: DropletLiveActivityKind`

The screen recording: Droppy's screen recording chip.

### terminal

`static let terminal: DropletLiveActivityKind`

A terminal command running: Droppy's TermiNotch chip.

### timer

`static let timer: DropletLiveActivityKind`

A running timer: Droppy's Pomodoro and Stay Awake timers.

## Properties

### description

`var description: String { get }`

The raw value.

### rawValue

`let rawValue: String`

The raw kind string.
