A Neovim plugin that automatically detects and changes to project roots, with integrated UI and picker support.
project.nvim is a Neovim plugin that automatically detects the root directory of a project and changes the current working directory to it. It solves the problem of manually navigating to project roots when working with multiple repositories or complex directory structures, streamlining file operations and tool integrations.
Neovim users who work across multiple projects or within monorepos and need efficient project root detection and navigation.
Developers choose project.nvim for its robust pattern-matching engine, seamless integration with popular Neovim pickers and file managers, and extensive customization options for project detection and history management.
Actively maintained fork of ahmedkhalf/project.nvim. Detects and chdirs to the project root, with its own UI, provides lualine component, supports oil.nvim, includes pickers for telescope, snacks, fzf-lua, and picker.nvim.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Features a vim-rooter-inspired engine with prefixes like =, ^, >, and ! for precise root detection, allowing exclusion and ancestor-based rules as documented in the README.
Seamlessly works with popular pickers (Telescope, fzf-lua), file managers (oil.nvim, nvim-tree), and statuslines (lualine), reducing workflow friction through native extensions.
Supports bookmarking, discarding, and JSON export/import of project history, enabling portability and session management across different Neovim setups.
Offers extensive options like manual mode, LSP fallback, and disable hooks by filetype, allowing users to tailor detection and behavior to specific workflows.
Session management requires 'fd' to be installed, and full functionality depends on optional pickers, adding setup complexity beyond the core plugin.
The README links to a wiki page on breaking changes, indicating potential instability or config-breaking updates that may require manual intervention.
With numerous setup options and integrations, initial configuration can be overwhelming for users seeking a simple, drop-in solution without fine-tuning.