Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. iron.nvim

iron.nvim

BSD-3-ClauseLua

Interactive REPL environment for Neovim that allows code execution without leaving the editor buffer.

GitHubGitHub
1.3k stars109 forks0 contributors

What is iron.nvim?

iron.nvim is a Neovim plugin that provides interactive REPL (Read-Eval-Print Loop) functionality directly within the editor. It enables developers to execute code snippets, send selections to REPLs, and interact with various programming languages without switching contexts, enhancing workflow efficiency.

Target Audience

Neovim users who work with interpreted or REPL-driven languages like Python, Haskell, or Shell and want to execute code without leaving their editor. It's particularly suited for developers who value a seamless, integrated coding workflow.

Value Proposition

Developers choose iron.nvim for its deep integration with Neovim's editing workflow, extensive customization options for window management and keymaps, and its dual nature as both a ready-to-use plugin and an extensible library for advanced users.

Overview

Interactive Repl Over Neovim

Use Cases

Best For

  • Executing Python code snippets interactively within Neovim using a Python REPL.
  • Sending visual selections or entire files to a language-specific REPL without switching terminal windows.
  • Configuring custom REPL commands for languages like Haskell that require project-specific initialization.
  • Managing REPL windows with flexible layouts, including splits, floating windows, and dynamic sizing.
  • Integrating REPL functionality with nvim-dap debugging sessions when debugging.
  • Creating a highly customized REPL workflow with user-defined keymaps for different send operations (line, paragraph, mark, etc.).

Not Ideal For

  • Users who prefer graphical IDEs with pre-configured, drag-and-drop REPL panels requiring zero setup
  • Projects primarily using compiled languages like C or Go where interactive REPL use is minimal or non-standard
  • Teams in cloud-based development environments (e.g., GitHub Codespaces) where local Neovim plugin integration might be cumbersome
  • Developers needing real-time collaborative coding features, as iron.nvim is designed for single-user workflows

Pros & Cons

Pros

Flexible Window Layouts

Supports both splits and floating windows with dynamic sizing options, including percentages and helper functions like view.split and view.float, allowing precise control over REPL placement.

Extensive Keymap Customization

Allows full control over keybindings for all operations, such as sending lines, visual selections, or files to the REPL, as shown in the detailed keymaps configuration section.

Multi-language REPL Support

Configurable REPL definitions for languages like Python, Shell, and Haskell, with support for custom command functions, enabling project-specific setups.

DAP Integration

Optionally sends selections to the Debug Adapter Protocol REPL when nvim-dap is active, enhancing debugging workflows without leaving Neovim.

Cons

Manual Keymap Setup

The plugin no longer sets default keymaps, requiring users to manually define all keybindings, which can be time-consuming and error-prone for new users.

Complex Configuration Overhead

Configuration involves Lua functions and metatables for window management, such as view.offset with helper functions, which may be daunting for those unfamiliar with Neovim's Lua API.

Language-Specific Setup Required

Each language's REPL must be explicitly defined in the config, and advanced setups (e.g., Haskell with custom cabal commands) require additional coding, limiting out-of-the-box usability.

Frequently Asked Questions

Quick Stats

Stars1,348
Forks109
Contributors0
Open Issues55
Last commit3 months ago
CreatedSince 2016

Tags

#developer-tools#lua-plugin#code-execution#neovim-lua-library#async#repl#neovim-plugin#workflow-enhancement#neovim-lua#neovim#neovim-lua-plugin#nvim#interactive-development

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 11 hours ago

Related Projects

overseer.nvimoverseer.nvim

A task runner and job management plugin for Neovim

Stars1,891
Forks101
Last commit20 days ago
sniprunsniprun

A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages

Stars1,704
Forks51
Last commit2 months ago
molten-nvimmolten-nvim

A neovim plugin for interactively running code with the jupyter kernel. Fork of magma-nvim with improvements in image rendering, performance, and more

Stars1,191
Forks64
Last commit3 months ago
code_runner.nvimcode_runner.nvim

Neovim plugin.The best code runner you could have, it is like the one in vscode but with super powers, it manages projects like in intellij but without being slow

Stars687
Forks38
Last commit11 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub