No description
Find a file
Barrett Ruth ad6c683052
feat: initial blink-cmp-ssh implementation
Problem: the existing blink-cmp-sshconfig plugin uses a synchronous,
build-time Python scraping approach that requires uv and make to
generate a static Lua file.

Solution: implement a runtime, async blink.cmp source that parses
ssh_config keywords from man ssh_config and enum values from ssh -Q
queries, matching the architecture of blink-cmp-tmux and
blink-cmp-ghostty.
2026-02-22 21:04:15 -05:00
.github feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
lua feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
spec feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.busted feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.editorconfig feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.gitignore feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.luarc.json feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.pre-commit-config.yaml feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.prettierignore feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
.prettierrc feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
blink-cmp-ssh-scm-1.rockspec feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
flake.lock feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
flake.nix feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
LICENSE feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
README.md feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
selene.toml feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
stylua.toml feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00
vim.toml feat: initial blink-cmp-ssh implementation 2026-02-22 21:04:15 -05:00

blink-cmp-ssh

SSH configuration completion source for blink.cmp.

Features

  • Completes ssh_config keywords with man page documentation
  • Provides enum values for keywords with known option sets (ciphers, MACs, key exchange algorithms, etc.)
  • Keyword and enum data fetched asynchronously at runtime via man ssh_config and ssh -Q

Requirements

  • Neovim 0.10.0+
  • blink.cmp
  • ssh and man executables

Installation

Install via luarocks:

luarocks install blink-cmp-ssh

Or with lazy.nvim:

{
  'saghen/blink.cmp',
  dependencies = {
    'barrettruth/blink-cmp-ssh',
  },
  opts = {
    sources = {
      default = { 'ssh' },
      providers = {
        ssh = {
          name = 'SSH',
          module = 'blink-cmp-ssh',
        },
      },
    },
  },
}