A plugin for central tracking of open nvim listen sockets
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

readme revamp

rektide ec924204 d5d7ad0f

+12 -37
+1 -1
.beads/issues.jsonl
··· 7 7 {"id":"nvim-registry-atn","title":"Implement cleanup.lua - Async socket validation","description":"Create cleanup.lua with async functionality using plenary.nvim. Check stats for all sockets in listen-registery using async operations. Perform batch update to remove invalid sockets after all stats are gathered. Expose :RegistryCleanup command.","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-08T18:25:46.936796595-05:00","created_by":"rektide","updated_at":"2026-01-08T18:36:32.278258028-05:00","closed_at":"2026-01-08T18:36:32.278258028-05:00","close_reason":"Closed via update"} 8 8 {"id":"nvim-registry-bk8","title":"Create plugin directory for automatic registration","description":"The plugin currently lacks a proper `plugin/` directory entry for automatic registration. Neovim only automatically sources files from the root `plugin/` directory on startup.\n\nThe current structure has:\n- `lua/registry-nvim/plugin/registry.lua` - This is just a module directory, not automatically loaded\n- No root `plugin/` directory with autoload manifest\n\nThe fix requires:\n- Create `plugin/` directory at project root\n- Create `plugin/registry-nvim.lua` file that calls require('registry-nvim').setup()\n- This will be automatically sourced by Neovim on plugin load\n- Current instance will register itself automatically\n\nWithout this, users must manually call `require('registry-nvim').setup()` in their config for automatic registration to work, which defeats the purpose of auto-discovery.\n\nThe plugin manifest in `lua/registry-nvim/plugin/` directory should be removed or kept as a reference, but the actual auto-registration needs to happen from the root `plugin/` directory.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T19:22:58.903525978-05:00","created_by":"rektide","updated_at":"2026-01-08T19:24:02.651284292-05:00","closed_at":"2026-01-08T19:24:02.651284292-05:00","close_reason":"Closed via update"} 9 9 {"id":"nvim-registry-cst","title":"Implement health.lua - Neovim healthcheck","description":"Create health.lua that provides healthcheck diagnostics. Check neoconf availability, plenary availability, and registry status. Report on any issues or misconfigurations.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-08T18:25:47.889265985-05:00","created_by":"rektide","updated_at":"2026-01-08T18:37:31.359142755-05:00","closed_at":"2026-01-08T18:37:31.359142755-05:00","close_reason":"Closed via update"} 10 - {"id":"nvim-registry-ecx","title":"Make setup optional - plugin should work without config","description":"Since the plugin now has a plugin/ directory manifest that automatically calls setup(), calling `require('registry-nvim').setup()` in user config is redundant. The setup() call should be optional for users who want to customize settings, while the plugin should work out-of-the-box without any configuration.\n\nRequirements:\n- Ensure plugin works without any user config (automatic registration on load)\n- Keep setup() function available for passing custom options\n- Document that config is optional in README\n- Show examples of:\n 1. Basic usage (no config needed)\n 2. Custom configuration (if user wants to change settings like registry key)\n- Lazy.nvim config should show plugin works without setup() call\n- Example customization could include:\n - Changing the neoconf registry key name\n - Disabling automatic monitoring\n - Custom cleanup behavior\n\nThis makes the plugin truly zero-config while still allowing power users to customize behavior.","status":"in_progress","priority":2,"issue_type":"task","created_at":"2026-01-08T19:26:24.911973858-05:00","created_by":"rektide","updated_at":"2026-01-08T19:26:36.433344197-05:00"} 10 + {"id":"nvim-registry-ecx","title":"Make setup optional - plugin should work without config","description":"Since the plugin now has a plugin/ directory manifest that automatically calls setup(), calling `require('registry-nvim').setup()` in user config is redundant. The setup() call should be optional for users who want to customize settings, while the plugin should work out-of-the-box without any configuration.\n\nRequirements:\n- Ensure plugin works without any user config (automatic registration on load)\n- Keep setup() function available for passing custom options\n- Document that config is optional in README\n- Show examples of:\n 1. Basic usage (no config needed)\n 2. Custom configuration (if user wants to change settings like registry key)\n- Lazy.nvim config should show plugin works without setup() call\n- Example customization could include:\n - Changing the neoconf registry key name\n - Disabling automatic monitoring\n - Custom cleanup behavior\n\nThis makes the plugin truly zero-config while still allowing power users to customize behavior.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T19:26:24.911973858-05:00","created_by":"rektide","updated_at":"2026-01-08T19:27:33.229826614-05:00","closed_at":"2026-01-08T19:27:33.229826614-05:00","close_reason":"Closed via update"} 11 11 {"id":"nvim-registry-gxz","title":"Create example configuration and usage examples","description":"Add example configuration to README. Create usage examples in documentation. Show how to use the plugin manually and in automated workflows. Document the expected behavior.","status":"closed","priority":4,"issue_type":"chore","created_at":"2026-01-08T18:25:56.569158454-05:00","created_by":"rektide","updated_at":"2026-01-08T18:40:01.1203033-05:00","closed_at":"2026-01-08T18:40:01.1203033-05:00","close_reason":"Closed via update"} 12 12 {"id":"nvim-registry-hai","title":"Add --match regex flag to registry-send CLI","description":"Enhance the registry-send CLI script to add a `--match` / `-m` flag that allows conditional updates based on regex matching of stdin content.\n\nThe new flag should:\n- Accept a regex pattern as argument\n- Only send content to registry sessions if stdin matches the provided regex\n- Support all standard regex syntax\n- Provide clear feedback if the content doesn't match (skip update with informative message)\n- Work in combination with existing flags (--register, --env-guard)\n\nExample usage:\n```\necho \"some text\" | registry-send --match \"^some.*\"\n```\n\nThis enables more precise control over when clipboard content should be synced, allowing users to filter content based on patterns before distribution.","status":"closed","priority":3,"issue_type":"feature","created_at":"2026-01-08T18:43:59.742088525-05:00","created_by":"rektide","updated_at":"2026-01-08T18:49:59.317668571-05:00","closed_at":"2026-01-08T18:49:59.317668571-05:00","close_reason":"Closed via update","dependencies":[{"issue_id":"nvim-registry-hai","depends_on_id":"nvim-registry-iwa","type":"parent-child","created_at":"2026-01-08T18:44:01.692044715-05:00","created_by":"rektide"}]} 13 13 {"id":"nvim-registry-iwa","title":"Extra Features for registry-nvim","description":"Epic for additional features beyond the core functionality. Includes CLI tools, integration utilities, and enhanced workflow capabilities.","status":"open","priority":4,"issue_type":"epic","created_at":"2026-01-08T18:30:35.840964917-05:00","created_by":"rektide","updated_at":"2026-01-08T18:30:35.840964917-05:00"}
+11 -36
README.md
··· 1 1 # registry-nvim 2 2 3 - registry-nvim helps you coordinate multiple Neovim instances by automatically tracking all listen servers. This enables workflows where you need to send commands, content, or data to every running Neovim session from the command line or external tools. Common use cases include synchronizing clipboard content across all Neovim instances, executing bulk operations, or coordinating editor state from shell scripts. 3 + `registry-nvim` helps you coordinate multiple Neovim instances by automatically tracking all listen servers. This enables workflows where you need to send commands, content, or data to every running Neovim session from the command line or external tools. Common use cases include synchronizing clipboard content across all Neovim instances, executing bulk operations, or coordinating editor state from shell scripts. 4 + 5 + `registry-nvim` is particularly useful in combination with [`nvim-auto-listen`](https://github.com/rektide/nvim-auto-listen), which will automatically open a listening socket at project root. together, these two form an easy way to find and remote control all of your neovims. 4 6 5 7 ## Features 6 8 ··· 154 156 155 157 ### Lazy.nvim Configuration 156 158 157 - **Basic Usage (No Config Needed):** 158 - 159 - Since the plugin has a plugin manifest that automatically sets up, no configuration is required: 160 - 161 159 ```lua 162 160 { 163 161 'yourusername/registry-nvim', ··· 165 163 'folke/neoconf.nvim', 166 164 'nvim-lua/plenary.nvim', 167 165 }, 168 - } 169 - ``` 166 + config = function() 167 + local registry = require('registry-nvim') 170 168 171 - **With Custom Configuration:** 172 - 173 - If you want to customize settings like the neoconf registry key: 169 + -- Basic setup 170 + registry.setup() 174 171 175 - ```lua 176 - { 177 - 'yourusername/registry-nvim', 178 - dependencies = { 179 - 'folke/neoconf.nvim', 180 - 'nvim-lua/plenary.nvim', 181 - }, 182 - opts = { 183 - listen_registry_key = "custom_registry_name", 184 - }, 185 - } 186 - ``` 187 - 188 - Or using the setup function: 189 - 190 - ```lua 191 - { 192 - 'yourusername/registry-nvim', 193 - dependencies = { 194 - 'folke/neoconf.nvim', 195 - 'nvim-lua/plenary.nvim', 196 - }, 197 - config = function() 198 - require('registry-nvim').setup({ 199 - listen_registry_key = "custom_registry_name", 200 - }) 172 + -- Or with manual control of monitoring 173 + registry.setup() 174 + -- Later in your config: 175 + registry.start_monitor() 201 176 end, 202 177 } 203 178 ```