···55{"id":"nvim-registry-59v","title":"Create CLI script to send stdin to all registry sessions","description":"Create a CLI script that reads from stdin and sends the content to all Neovim sessions listed in the listen registry. The script should:\n\n- Read content from stdin\n- Connect to each listen socket in the registry\n- Send content to set a vim register in each session\n- Accept command line flags:\n - `--register` or `-r`: Specify which vim register to write to (default: clipboard register `\"*`)\n - `--env-guard` or `-e`: Environment variable check in format NAME=VALUE. Only run if environment variable exists and matches the specified value. Example: CLIPBOARD_STATE=data\n- Handle connection errors gracefully (skip invalid sockets)\n- Report which sessions were successfully updated\n\nThis enables external tools to sync clipboard content across all Neovim instances via the registry.\n\nTechnical details:\n- Use netcat or similar to connect to Unix sockets\n- Use nvim channel API to set registers remotely\n- Handle async communication with all sockets\n- Parse CLI flags with proper validation","status":"closed","priority":3,"issue_type":"feature","created_at":"2026-01-08T18:30:47.273970453-05:00","created_by":"rektide","updated_at":"2026-01-08T18:39:16.550292794-05:00","closed_at":"2026-01-08T18:39:16.550292794-05:00","close_reason":"Closed via update","dependencies":[{"issue_id":"nvim-registry-59v","depends_on_id":"nvim-registry-iwa","type":"parent-child","created_at":"2026-01-08T18:30:50.239945982-05:00","created_by":"rektide"}]}
66{"id":"nvim-registry-5aj","title":"Implement registry.lua - Main registry module","description":"Create the main registry module that coordinates all functionality. Export public API for plugin usage. Manage the overall state and orchestrate between other modules.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T18:25:45.045869094-05:00","created_by":"rektide","updated_at":"2026-01-08T18:35:35.73023499-05:00","closed_at":"2026-01-08T18:35:35.73023499-05:00","close_reason":"Closed via update"}
77{"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"}
88-{"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":"in_progress","priority":2,"issue_type":"task","created_at":"2026-01-08T19:22:58.903525978-05:00","created_by":"rektide","updated_at":"2026-01-08T19:23:10.586344823-05:00"}
88+{"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"}
99{"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"}
1010+{"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"}
1011{"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"}
1112{"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"}]}
1213{"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"}
+35-8
README.md
···154154155155### Lazy.nvim Configuration
156156157157+**Basic Usage (No Config Needed):**
158158+159159+Since the plugin has a plugin manifest that automatically sets up, no configuration is required:
160160+157161```lua
158162{
159163 'yourusername/registry-nvim',
···161165 'folke/neoconf.nvim',
162166 'nvim-lua/plenary.nvim',
163167 },
164164- config = function()
165165- local registry = require('registry-nvim')
168168+}
169169+```
170170+171171+**With Custom Configuration:**
172172+173173+If you want to customize settings like the neoconf registry key:
174174+175175+```lua
176176+{
177177+ 'yourusername/registry-nvim',
178178+ dependencies = {
179179+ 'folke/neoconf.nvim',
180180+ 'nvim-lua/plenary.nvim',
181181+ },
182182+ opts = {
183183+ listen_registry_key = "custom_registry_name",
184184+ },
185185+}
186186+```
166187167167- -- Basic setup
168168- registry.setup()
188188+Or using the setup function:
169189170170- -- Or with manual control of monitoring
171171- registry.setup()
172172- -- Later in your config:
173173- registry.start_monitor()
190190+```lua
191191+{
192192+ 'yourusername/registry-nvim',
193193+ dependencies = {
194194+ 'folke/neoconf.nvim',
195195+ 'nvim-lua/plenary.nvim',
196196+ },
197197+ config = function()
198198+ require('registry-nvim').setup({
199199+ listen_registry_key = "custom_registry_name",
200200+ })
174201 end,
175202}
176203```
+7
lua/registry-nvim/config.lua
···66 listen_registry_key = "listen_registery",
77}
8899+function M.setup(opts)
1010+ opts = opts or {}
1111+ if opts.listen_registry_key then
1212+ config.listen_registry_key = opts.listen_registry_key
1313+ end
1414+end
1515+916function M.has_neoconf()
1017 return has_neoconf
1118end
+2
lua/registry-nvim/init.lua
···77function M.setup(opts)
88 opts = opts or {}
991010+ config.setup(opts)
1111+1012 if not config.has_neoconf() then
1113 vim.notify("registry-nvim requires neoconf.nvim", vim.log.levels.ERROR)
1214 return M