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.
We welcome contributions to make Cord even better!
- Check out our Contribution Guidelines.
Have questions or issues?
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