A modern, highly customizable Neovim setup built around the NvChad framework with AI integration, Python/Django development focus, and extensive LSP support.
- 🎨 Modern UI with NvChad base46 theming
- 🤖 AI Integration with OpenCode & Avante (Ollama.com bridge)
- 🐍 Python/Django development optimized
- 🦀 LSP support for Lua, Python, TypeScript, HTML, CSS, GraphQL, and more
- 🛠 Code formatting with Conform.nvim (Black, Prettier, Stylua, etc.)
- 🔍 FZF-powered file navigation
- 📝 Treesitter-powered syntax highlighting
- 🎮 Vim-motion style keybindings
- 🌐 Git integration with Gitsigns.nvim
- Neovim >= 0.9.0
- git (for cloning and version control)
- Python 3.x (for LSP and plugins)
- Node.js & npm (for some LSP servers)
- lazygit (for Git visualization)
Install required system packages:
sudo dnf install git nodejs npm python3 python3-pip fzf ripgrep fd-find lazygitsudo apt install git nodejs npm python3 python3-pip fzf ripgrep fd-find lazygit| Plugin | Description |
|---|---|
| snacks.nvim | Modern UI components (dashboard, explorer, notifier) |
| base46 | Theme engine with catppuccin and custom themes |
| nui.nvim | UI components for floating windows |
| lazy.nvim | Plugin manager |
| Plugin | Description |
|---|---|
| opencode.nvim | AI coding assistant with LSP integration |
| avante.nvim | AI coding assistant focused on refactoring |
| Language | LSP Server | Formatter |
|---|---|---|
| Python | Pyright + Pylsp | Black, isort, autoflake |
| Lua | LuaLS | Stylua |
| JavaScript/TypeScript | TSServer | Prettier |
| HTML/CSS | HTML/CSS LSP | Prettier |
| GraphQL | GraphQL LSP | Prettier |
| Django Templates | DJLint | DJLint |
| QML | QML LSP | clang-format |
| Plugin | Description |
|---|---|
| gitsigns.nvim | Git integration in sign column |
| lazygit | Git visualization and management |
| fzf-lua | Fast file search with FZF |
| persistent.nvim | Session management |
| Plugin | Description |
|---|---|
| comment.nvim | Smart commenting |
| conform.nvim | Code formatting |
| nvim-surround | Surround pairs |
| nvim-autopairs | Auto parentheses |
| todo-comments.nvim | Highlight TODO/FIXME |
| nvim-treesitter | Syntax highlighting |
;- Enter command mode<leader>ox- Open OpenCode action menu<leader>ot- Toggle OpenCode UI
<leader>oa- Ask about current selectiongo- Add range to OpenCodegoo- Add line to OpenCode<S-C-u>/<S-C-d>- Scroll up/down<leader>og/<leader>oG- Go to first/last message<leader>oi- Interrupt OpenCode<leader>on- New session<leader>os- Select session<leader>ol- List sessions<leader>oc- Compact session
<leader>gs- Stage hunk<leader>gr- Reset hunk<leader>gS- Stage entire file<leader>gp- Preview hunk<leader>gb- Show blame for line<leader>gd/<leader>gD- Show diff[c/]c- Next/previous hunk
<C-n>/<C-p>- Next/previous window<C-h>/<C-j>/<C-k>/<C-l>- Window navigation
This config includes a transparent proxy bridge for connecting to Ollama.com:
# Install Python dependencies
pip install flask requests
# Start the bridge server
cd ~/.config/nvim
python ai/bridge.py --api-key "YOUR_API_KEY" --provider "ollama" --model "qwen3-coder:480b-cloud"Note: The bridge runs on http://localhost:5000 and forwards requests to Ollama.com.
Copy opencode/opencode.json to ~/.config/opencode/config.json:
mkdir -p ~/.config/opencode
cp ~/.config/nvim/opencode/opencode.json ~/.config/opencode/config.jsonAvante is configured to use the bridge server at http://localhost:5000 with the server_bridge_agent provider.
The config automatically detects Django projects (checks for manage.py) and disables strict type checking in pyright.
- Uses
pyrightfor language server - Auto-install formatters via Mason: Black, isort, autoflake
- Automatic import sorting with isort
- Unused import removal with autoflake
- LuaLS configured with Neovim API
- Strict type checking disabled by default
- Snippet support enabled
Built-in custom themes (based on base46):
a-midnight_foresta-eclipsea-cosmica-magmaa-deep_oceana-cherrya-miragea-quiet_storma-chocolate
~/.config/nvim/
├── lua/
│ ├── config/
│ │ ├── mappings/ # Keybindings
│ │ └── options.lua # Neovim options
│ ├── plugins/ # Plugin configurations
│ │ ├── lsp-configs/ # LSP server configs
│ │ └── snacks-configs/ # Snacks.nvim configs
│ ├── themes/ # Custom themes
│ └── snippets/ # Snippet definitions
├── ai/
│ └── bridge.py # Proxy bridge for AI providers
├── opencode/
│ └── opencode.json # OpenCode configuration
└── init.lua # Main entry point
:Lazy sync:Mason
# Check logs: :LspInfo- Ensure Python dependencies are installed:
pip install flask requests - Check if the bridge is running:
curl http://localhost:5000/v1/chat/completions - Verify API key is correct in the bridge command
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch:
git checkout -b feature/AmazingFeature - Commit your changes:
git commit -m 'Add some AmazingFeature' - Push to the branch:
git push origin feature/AmazingFeature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NvChad for the base configuration
- All the plugin authors for their amazing work
- The Neovim community for continuous support
Last updated: April 2026