strudel.nvim
A Neovim plugin that integrates with Strudel, a live coding web editor for algorithmic music and visuals.
This plugin launches Strudel in a browser window and provides real-time two-way synchronization between a selected Neovim buffer and the Strudel editor, as well as remote Strudel controls (play/stop, update), and much more!

🎉 Happy live coding & algorave! 🎵
Features
- Real-time sync - Two-way synchronization between Neovim buffer and Strudel editor.
- Playback control - Control Strudel's Play/Stop and Update functions directly from Neovim.
- Side by side workflow - Maximized Strudel menu panel and (optionally) hidden top bar for side by side Neovim-Strudel seamless workflow (effectively replacing the default Strudel editor by Neovim).
- File based - Save your files as
*.str (or .std) and open them right away in Strudel through Neovim, anywhere on your file system (open and change files with your own file manager or fuzzy finder/picker, and allows using your regular version control system).
- Two-way cursor sync - The cursor position is synchronized in real-time (by default) between Neovim and the Strudel editor. Move your cursor in either environment and it will update in the other, enabling seamless navigation and editing.
- Swap files - Change the buffer that is synced to Strudel on the fly with the simple
:StrudelSetBuffer command.
- File type support - The plugin automatically sets the file type to
javascript for .str (or .std) files, providing proper syntax highlighting and language support.
- Hydra support - As Strudel integrates with Hydra, you can also live code stunning visuals directly from Neovim. Check out the Hydra only config options to only display the Hydra background (allows for easy screen projections during live performance for example).
- Strudel error reporting - Reports Strudel evaluation errors back into Neovim (by default).
- Custom CSS injection - Optionally inject your own CSS into the Strudel web editor by specifying a
custom_css_file in the setup options. Allows you to fully customize the Strudel UI from your Neovim config.
- Auto update - Optionally trigger Strudel Update when saving the buffer content.
- Customizable - Check out the configuration options to customize your experience and user-interface.
- Headless mode - Optionally launch Strudel without opening the Strudel browser window for a pure Neovim live coding experience.
- Session persistence & offline - Remembers browser state across sessions, which also means you can use it offline.
It uses Puppeteer to control a real browser instance allowing you to write Strudel code from Neovim (your favorite text editor) with all your regular config and plugins.