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

nightly app cord-nvim

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

8 releases (4 stable)

new 2.2.0 Dec 27, 2024
2.0.5 Dec 24, 2024
0.0.4 Dec 22, 2024

#45 in Command line utilities

Download history 563/week @ 2024-12-20

563 downloads per month

Apache-2.0

205KB
5.5K SLoC

Rust 3.5K SLoC // 0.0% comments Lua 2K SLoC // 0.1% comments Vim Script 9 SLoC

🧩 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

📚 Table of Contents

💎 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.
  • 🌍 Cross-Platform — Supports Windows, Linux (Flatpak/Snap), macOS, and BSD.
  • 🌸 Rich Icon Collection — Features over 70 uniquely designed icons.

📦 Install

Considerations

Expand

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

  • Fetch from GitHub: By invoking :Cord fetch (async, recommended)
  • Build and install from crates.io: By invoking :Cord build (async)
    • Requires Rust >= 1.85.0 nightly
  • Build from source: By invoking cargo b --release and then manually moving the resulting binary to nvim-data-dir/cord/bin
    • Requires Rust >= 1.85.0 nightly
  • Download from GitHub: Get latest release from https://github.com/vyfor/cord.nvim/releases/latest, rename it to cord[.exe] and place it under nvim-data-dir/cord/bin

Installation

Using lazy.nvim
{
  'vyfor/cord.nvim',
  branch = 'client-server',
  build = ':Cord fetch',
  opts = {}, -- calls require('cord').setup()
}
Using packer.nvim
use {
  'vyfor/cord.nvim',
  branch = 'client-server',
  run = ':Cord fetch',
  config = function()
    require('cord').setup()
  end
}
Using Vim packages

Unix:

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

Windows:

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

Then call the following function somewhere in your configuration:

require('cord').setup()

Invoke :Cord fetch to whenever the plugin is updated.

Other

Make sure you call the following function somewhere in your configuration:

require('cord').setup()

Invoke :Cord fetch to whenever the plugin is updated.

🎨 Themes

Cord features over 70 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?


💬 Questions? Reach me out on Discord: vyfor

No runtime deps