An AI-collaborative Neovim IDE built on kickstart.nvim — purpose-built for Web3 smart contract security auditing and general-purpose development. Unlike conventional Neovim distributions that rely on lazy.nvim or packer.nvim, this configuration uses Neovim's native package system (pack) with a custom bootstrap that auto-clones, loads, and self-cleans unused plugins at every startup. There is no plugin manager — just vim.fn.system("git clone ...") and vim.cmd("packadd ...").
# Prerequisites: Neovim ≥ 0.10, Git, a Nerd Font
# Clone the configuration
git clone https://github.com/exiquio/nvim-configs.git ~/.config/nvim
# Set your DeepSeek API key for AI features
export DEEPSEEK_API_KEY="sk-..."
# Launch — first run auto-clones all plugins and installs LSP servers via Mason
nvimOn first launch, Neovim clones all ~30 plugins into its pack directory, loads every plugin, removes any stale plugin directories (self-clean), and installs LSP servers/formatters/linters via Mason in the background.
- No Plugin Manager — Native
packsystem with custom bootstrap. Plugins are defined inlua/custom/plugins/*.luafiles, each exporting{ plugins, config }tables. The bootstrapper scans, clones missing repos, removes stale ones, and loads each viapackadd. - Self-Cleaning Plugins — Unused plugin directories are automatically removed on every startup. Add a plugin by creating a file; remove it by deleting the file.
- AI-Assisted Coding — CodeCompanion with DeepSeek v4-flash (inline, fast) and v4-pro (chat/agent, deep reasoning). Chat toggle, inline prompts, and agent mode.
- 8 Custom
@audit-*Keywords — Inline annotation system for security audit findings (@audit-info,@audit-ok,@audit-warn,@audit-fail,@audit-fix,@audit-todo,@audit-note,@audit-question). Auto-completed via custom blink.cmp source with Solidity block-comment awareness. - Solidity Support —
solidity_ls_nomicfoundationLSP, Tree-sitter parser, 4-space indentation, audit keyword integration. - Dynamic Color Column — 120-char
colorcolumnonly appears when any line exceeds the limit. Prevents visual clutter in well-formatted files. - Zero-Dependency Auto-Reload — External file changes detected via event-driven (
FocusGained,BufEnter,CursorHold) + background timer (2.5s poll). Implemented inlua/config/autoreload.luawith no plugins. - blink.cmp Completion — Pinned v1.3.0, the fastest completion engine for Neovim. Custom source for
@audit-*keywords. - WYSIWYG Markdown —
render-markdown.nvimfor in-buffer rendering,bullets.vimfor auto-formatting lists,vim-table-modefor table alignment.
~/.config/nvim/
├── init.lua # Entry point: vim.loader, globals, config/, plugin bootstrap
├── LICENSE.md
├── README.md
└── lua/
├── config/
│ ├── options.lua # Global editor options
│ ├── keymaps.lua # Core key mappings (LSP, Telescope, window nav)
│ ├── autocommands.lua # Yank highlight, dynamic colorcolumn, treesitter
│ └── autoreload.lua # File change detection (zero plugins)
└── custom/
├── plugins/ # Plugin definitions (one file per group)
│ ├── init.lua # Dynamic loader — scans directory, aggregates all plugins
│ ├── theme.lua # Dracula Pro colorscheme
│ ├── treesitter.lua # Language parsers
│ ├── lsp.lua # LSP servers, Mason, lazydev
│ ├── blink.lua # blink.cmp completion engine
│ ├── codecompanion.lua # AI assistant (DeepSeek) + animated spinner
│ ├── telescope.lua # Fuzzy finder (fzf-native)
│ ├── conform.lua # Format dispatcher
│ ├── todo-comments.lua # @audit-* keyword highlighting
│ ├── gitsigns.lua # Git gutter signs
│ ├── aerial.lua # Code outline sidebar
│ ├── autopairs.lua # Auto-close brackets/quotes
│ ├── bullets.lua # Markdown list auto-formatting
│ ├── guess-indent.lua # Automatic indent detection
│ ├── markdown-keymaps.lua # Markdown editing shortcuts
│ ├── markdown-lint.lua # markdownlint-cli2
│ ├── markdown-render.lua # WYSIWYG Markdown rendering
│ ├── mini.lua # Mini.nvim utilities (statusline, etc.)
│ ├── spectre.lua # Multi-file search & replace
│ ├── table-mode.lua # Markdown table formatting
│ └── which-key.lua # Keybinding discovery popup
└── blink/
└── todo-keywords.lua # Custom blink.cmp source for @audit-* completions
| Dependency | Minimum | Notes |
|---|---|---|
| Neovim | 0.10+ | Uses vim.loader, vim.lsp.config, vim.uv |
| Git | any | Required for plugin cloning on first run |
| Nerd Font | any | Required for UI icons (web-devicons) |
DEEPSEEK_API_KEY |
— | Required for CodeCompanion AI features |
| Dracula Pro | — | SSH access required (private GitHub repo). See below for alternatives. |
If you don't have Dracula Pro access: edit lua/custom/plugins/theme.lua, replace the plugin entry with a public theme, and change vim.cmd.colorscheme("dracula_pro") to your preferred theme name.
| Language | LSP Server | Formatter / Linter |
|---|---|---|
| Elixir | expert / elixirls |
— |
| Fish | fish_lsp |
— |
| JavaScript / TypeScript | vtsls |
eslint_d |
| Lua | lua_ls |
stylua |
| Markdown | marksman |
mdformat, markdownlint-cli2 |
| Python | basedpyright |
ruff |
| Solidity | solidity_ls_nomicfoundation |
— |
| YAML | — | — |
| Shortcut | Action |
|---|---|
<leader>ac |
Toggle AI chat |
<leader>ai |
Inline AI prompt |
<leader>aa |
AI actions menu |
grd |
Go to definition |
grr |
Find references |
grn |
Rename symbol |
gra |
Code action |
<leader>sf |
Find files (Telescope) |
<leader>sg |
Live grep (Telescope) |
<leader><leader> |
Switch buffers |
<C-h/j/k/l> |
Window navigation |
<leader>q |
Diagnostic quickfix |
| Strategy | Model | Use Case |
|---|---|---|
inline |
deepseek-v4-flash |
Quick completions, refactors |
chat |
deepseek-v4-pro |
Deep multi-turn conversations |
agent |
deepseek-v4-pro |
Multi-step AI workflows |
The web3-security repository consumes this Neovim configuration via a sync Makefile target. During sync, a sed patch rewrites CodeCompanion's API key and LiteLLM proxy endpoint, routing AI requests through web3-security's infrastructure. This allows the same config to operate standalone (direct DeepSeek API) or orchestrated (proxied through the audit pipeline).
MIT — see LICENSE.md