Important
Cord no longer requires Rust to be installed. Rust component will be automatically downloaded from GitHub Releases.
- π 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.
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
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.
Cord features over 120 beautifully designed icons for languages and components with distinct themes, with more to come!
π Explore the Showcase
- 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.
- Troubleshooting Guide: Solutions to common scenarios and issues.
We welcome contributions to make Cord even better!
- Check out our Contribution Guidelines.
I'm the sole maintainer of cord.nvim and dedicate much of my free time to this project. If you find Cord helpful, you can show your support by giving the repo a star or sponsoring me on GitHub. Every bit of support helps me continue to improve and maintain Cord for everyone. Thank you!
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