The Kittencord guide.

Install Kittencord, choose your plugins and make Discord your own.

Install KittenCord.

  1. Download Windows setup from the download section.
  2. Select your Discord installation. Save your work and finish any calls before letting setup restart Discord.
  3. Choose Install / Repair, then reopen Discord when setup finishes.
  4. Open Discord Settings → Kittencord → Plugins. Enable the plugins you want, and use Appearance for themes.

This beta has a Windows installer and browser packages. Automatic updates are not available yet. For macOS and Linux, use the source build instructions.

Browser installation.

Chrome & Edge

Download and extract the Chromium ZIP. In your browser's extension manager, use its supported developer/unpacked-extension flow and choose the folder containing manifest.json. Open or reload Discord's web app. Helium uses this route where it supports Chromium extensions.

Firefox

The development build can be loaded through Firefox's temporary-extension debugging flow. Temporary loading ends when the browser restarts. Permanent installation requires a signing/distribution mechanism supported by your Firefox configuration.

Some plugins need desktop APIs and are unavailable in a browser. Native Plugin Studio installation and desktop recovery require the desktop client.

Build your first plugin

  1. Open Settings → Developer tools and enable the tools.
  2. Choose Plugin Studio, then Toolbar button under Project Settings.
  3. Edit the source and choose Install & run. The button appears in the channel header.
  4. Stop removes it. Export saves an editable .native-project.json file.

Download the toolbar example

import definePlugin from "@utils/types";
import { Devs } from "@utils/constants";
import { Logger } from "@utils/Logger";
export default definePlugin({
    name: "HelloKittencord",
    description: "A first native plugin.",
    authors: [Devs.Kittencord],
    start() { new Logger("HelloKittencord").info("Hello!"); },
    stop() { new Logger("HelloKittencord").info("Goodbye!"); }
});

JS, TS, JSX and TSX use the inherited plugin engine and shared React. Source patches need a client reload. Use the original source build for native.ts helpers and full TypeScript type checking.

Legacy isolated packages: these older project formats remain supported. Use Native Plugin Studio above for new native plugins.

Older Local projects.

  1. Open the existing project in the legacy Studio editor, or use one of the legacy utility examples below.
  2. Choose a unique identifier such as local.my-tool, a name, version and author. Write supported settings, actions and local output using the provided utility API.
  3. Use the packaged editor's diagnostics and explicit isolated preview. Review errors and test actions before exporting.
  4. Export project saves editable source as .project.json. A compiled .kittycord.json is the installation package.
  5. In Developer tools → Plugin Studio → Import package, inspect the source, dependencies, permissions and integrity findings. Install disabled, then explicitly Enable and open Settings & actions.

The source is imported locally. The project stays on your device until you choose to share it.

Legacy utility examples

Editable development examples, separate from published Cloud packages.

Know which API you are using.

Functional Local packages support bounded local settings, button actions, panels, text output and owned timers. They do not provide general Discord, DOM, filesystem or network APIs. Use Native Plugin Studio for supported definePlugin projects. Native helpers and unsupported imports require a source build.

For supported hot swaps, keep the identifier and increase the package version. A failed replacement can return to the prior package. Early patches and native/build-time components can still require restarting or rebuilding.

Diagnostics & recovery.

Health unifies inherited TestCord diagnostics, plugin measurements and module tools with Local package integrity/recovery checks. Reports stay local unless you choose to share them.

The home recovery card can request a minimal next startup or restore the last successful plugin selection on supported desktop hosts. It keeps unrelated settings. The Windows installer's Restore previous installation restores the loader present before the managed Kittencord installation.

Performance modes currently control measurement sampling. They preserve Discord visuals; a whole-client speed or memory improvement has not been established. Profiles and contextual rules cover reviewed live options, not every plugin-owned setting.

Built in the open.

Get the source ZIP from the website footer. It includes the client, website and build instructions.

From an existing complete Kittencord source checkout:

pnpm install --frozen-lockfile
pnpm build
pnpm buildWeb
node --import tsx --test tests/**/*.test.ts
node website/scripts/build.mjs
node website/scripts/serve.mjs

The recorded source foundation is TestCord (revision af92dbaec665c7e7106c3503cfb6691248d03623), based on Equicord and Vencord. The client keeps GPL-3.0-or-later and original attribution. Art and third-party libraries retain their stated licenses.

Kittencord is not affiliated with Discord. Please report bugs in the community server.