#discord-rich-presence #discord #rich-presence #neovim #discord-rpc #plugin

nightly app cord-nvim

🚀 The most extensible Discord Rich Presence plugin for Neovim, powered by Rust

39 releases (4 stable)

2.0.3 Feb 11, 2025
2.0.2 Feb 4, 2025
2.0.0 Jan 31, 2025

#13 in Command line utilities

Download history 209/week @ 2024-12-17 379/week @ 2024-12-24 402/week @ 2024-12-31 1503/week @ 2025-01-07 1256/week @ 2025-01-14 964/week @ 2025-01-21 285/week @ 2025-01-28 245/week @ 2025-02-04 88/week @ 2025-02-11

1,800 downloads per month

Apache-2.0

7MB
7K SLoC

Rust 4K SLoC // 0.0% comments Lua 3K SLoC // 0.1% comments Vim Script 37 SLoC

Contains (ELF exe/lib, 1MB) dist/aarch64-linux-cord, (Mach-o exe, 745KB) dist/aarch64-darwin-cord, (ELF exe/lib, 765KB) dist/i686-bsd-cord, (ELF exe/lib, 1MB) dist/i686-linux-cord, (ELF exe/lib, 780KB) dist/x86_64-bsd-cord, (Mach-o exe, 705KB) dist/x86_64-darwin-cord and 4 more.

🧩 Cord – Tailor Your Presence Like Never Before

Stargazers Neovim Logo Forks

Cord Logo

🚀 The most extensible Discord Rich Presence plugin for Neovim, powered by Rust.

Cord Banner

[!IMPORTANT] Cord no longer requires Rust to be installed. Rust component will be automatically downloaded from GitHub Releases.

💎 Features

  • 🌐 Client-Server Design — Handles multiple Neovim instances with a single connection to Discord.
  • Performance in Mind — Lightweight, dependency-free, with blazingly-fast startup.
  • 🚀 Event-Driven Architecture — Instant presence updates with zero delays.
  • 🎨 Customizable Templates — Dynamic string templates with custom variables.
  • 🔧 Unmatched Configurability — Function-based configuration for infinite customization possibilities.
  • 🧠 Automated State Handling — Automatically manages activities across all instances.
  • 💤 Smart Idle Detection — Identifies idle sessions and switches to the most recent non-idle session.
  • 🛠️ Built-in Git Integration — Detects repositories and workspaces based on VCS files without relying on command-line tools.
  • 🗃️ Custom Assets — Extendable with fully customizable assets for any file/buffer type.
  • ⚙️ Robust User Commands - Quickly manage Cord and its features through user commands and easily create your own keybindings.
  • 🔌 Plugin System — Extendable with custom plugins, with a plethora of built-in ones out of the box.
  • 📦 Wide Compatibility - Compatible with various Discord installations (Snap, Flatpak) and able to work inside WSL and Discord in browser.
  • 🌍 Cross-Platform — Supports Windows, Linux, macOS, and FreeBSD.
  • 🌸 Rich Icon Collection — Features 120+ uniquely designed themed icons for 200+ file types and plugins.
  • 🔁 Automatic Reconnection — Able to reconnect to Discord if the connection is lost.

📦 Install

Considerations

Expand

Cord requires the server executables to be present. To get it, you can either:

Installation

Using lazy.nvim
{
  'vyfor/cord.nvim',
  build = ':Cord update',
  -- opts = {}
}
Using packer.nvim
use {
  'vyfor/cord.nvim',
  run = ':Cord update',
  -- config = function()
  --   require('cord').setup {}
  -- end
}
Using rocks.nvim

Cord is available on LuaRocks.

:Rocks install cord.nvim

Invoke :Cord update whenever the plugin is updated.

Using Vim packages

Unix:

git clone --single-branch https://github.com/vyfor/cord.nvim ~/.local/share/nvim/site/pack/plugins/start/cord.nvim

Windows:

git clone --single-branch https://github.com/vyfor/cord.nvim $LOCALAPPDATA/nvim-data/site/pack/plugins/start/cord.nvim

Invoke :Cord update whenever the plugin is updated.

Other

Invoke :Cord update whenever the plugin is updated.

🎨 Themes

Cord features over 120 beautifully designed icons for languages and components with distinct themes, with more to come!

👉 Explore the Showcase

📖 Documentation

🤝 Contributing

We welcome contributions to make Cord even better!

❓ FAQ

Have questions or issues?

🛠️ Build From Source

[!NOTE] Make sure you have Rust >= 1.85.0 installed.

To build Cord from source, you can run :Cord update build (async) which will install the server binary from crates.io by running the following command:

cargo install --path . --root path/to/nvim-data-dir/cord/bin --force

Alternatively, you can use cargo b --release to build the binary, then place it under nvim-data-dir/cord/bin.


💬 Questions? Post in Discussions or reach me out on Discord: vyfor

cord.nvim

No runtime deps