SkillAgentSearch skills...

Kord

Idiomatic Kotlin Wrapper for The Discord API

Install / Use

/learn @kordlib/Kord

README

Kord

Discord Download Github CI status (branch)

Kord is a coroutine-based, modularized implementation of the Discord API, written 100% in Kotlin.

If you have any feedback, we'd love to hear it, hit us up on discord or write up an issue if you have any suggestions!

Why use Kord

Kord was created as an answer to the frustrations of writing Discord bots with other JVM libraries, which either use thread-blocking code or verbose and scope restrictive reactive systems. We believe an API written from the ground up in Kotlin with coroutines can give you the best of both worlds: The conciseness of imperative code with the concurrency of reactive code.

Aside from coroutines, we also wanted to give the user full access to lower level APIs. Sometimes you have to do some unconventional things, and we want to allow you to do those in a safe and supported way.

Status of Kord

Right now, Kord should provide a full mapping of the non-voice API on Kotlin/JVM and Kotlin/JS and an experimental mapping of the Voice API on Kotlin/JVM

Documentation

Modules

| Module | Docs | Artifact | JVM | JS | Native² | |--------------------------|---------------------------------------------------------|-------------------|-----|----|---------| | common | common | kord-common¹ | ✅ | ✅ | ❌ | | rest | rest | kord-rest¹ | ✅ | ✅ | ❌ | | gateway | gateway | kord-gateway¹ | ✅ | ✅ | ❌ | | core | core | kord-core¹ | ✅ | ✅ | ❌ | | voice | voice | kord-voice | ✅ | ❌³ | ❌ | | core-voice | core-voice | kord-core-voice | ✅ | ❌ | ❌ |

¹ These artifacts only supports Gradle Version 5.3 or higher, for older Gradle versions and Maven please append -jvm
² For Native Support please see #69
³ For Voice JS please see #69

Installation

Replace {version} with the latest version number on maven central.

For Snapshots replace {version} with {branch}-SNAPSHOT

e.g: feature-amazing-thing-SNAPSHOT for the branch feature/amazing-thing

For Snapshots for the branch main replace {version} with {nextPlannedVersion}-SNAPSHOT (see nextPlannedVersion in gradle.properties)

Download

Gradle (Kotlin)

repositories {
    mavenCentral()
    maven("https://snapshots.kord.dev")
}

dependencies {
    implementation("dev.kord:kord-core:{version}")
}

Gradle (Groovy)

repositories {
    mavenCentral()
    maven {
        url "https://snapshots.kord.dev/"
    }
}

dependencies {
    implementation("dev.kord:kord-core:{version}")
}

Maven

Kord Snapshot Repositories:
<repository>
    <id>snapshots-repo</id>
    <url>https://snapshots.kord.dev</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>

<dependency>
    <groupId>dev.kord</groupId>
    <artifactId>kord-core-jvm</artifactId>
    <version>{version}</version>
</dependency>

FAQ

Will you support kotlin multi-platform

Currently we're supporting both Kotlin/JVM and Kotlin/JS for the majority of our API, for more information check Modules and #69

When will you document your code?

Yes.

This project is supported by JetBrains

JetBrains Logo (Main) logo

Related Skills

View on GitHub
GitHub Stars1.0k
CategoryDevelopment
Updated1d ago
Forks94

Languages

Kotlin

Security Score

100/100

Audited on Mar 23, 2026

No findings