25 releases
new 2.0.0-beta.25 | Jan 17, 2025 |
---|---|
2.0.0-beta.23 | Jan 16, 2025 |
#13 in Command line utilities
2,874 downloads per month
7MB
7K
SLoC
Contains (ELF exe/lib, 1MB) dist/aarch64-linux-cord, (Mach-o exe, 730KB) 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
🚀 The most extensible Discord Rich Presence plugin for Neovim, powered by Rust.
[!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.
- 🔌 Plugin System — Extendable with custom plugins, with plenty of built-in ones out of the box.
- 🌍 Cross-Platform — Supports Windows, Linux (Flatpak/Snap), macOS, and BSD.
- 🌸 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:
- Fetch from GitHub: Invoking
:Cord build [fetch]
(async, recommended). Make sure you havecurl
installed. - 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
- Build from source
Installation
Using lazy.nvim
{
'vyfor/cord.nvim',
branch = 'client-server',
build = ':Cord update',
opts = {}, -- calls require('cord').setup()
}
Using packer.nvim
use {
'vyfor/cord.nvim',
branch = 'client-server',
run = ':Cord update',
config = function()
require('cord').setup()
end
}
Using rocks.nvim
Cord is available on LuaRocks.
:Rocks install cord.nvim
Do not forget to call require('cord').setup()
to initialize the plugin, or set config = true
.
Invoke :Cord update
whenever the plugin is updated.
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 update
whenever the plugin is updated.
Other
Make sure you call the following function somewhere in your configuration:
require('cord').setup()
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!
📖 Documentation
- Configuration Guide: Everything you need to customize Cord.
- Examples: Creative ways to customize your Discord presence.
- Migration Guide: Smooth migration from Cord v1.
- Wiki: Examples, best practices, and FAQs.
🤝 Contributing
We welcome contributions to make Cord even better!
- Check out our Contribution Guidelines.
❓ 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