···11{"id":"nvim-registry-10s","title":"Create help documentation (doc/)","description":"Create comprehensive help documentation in doc/ directory. Generate doc/registry-nvim.txt with proper Vim help format. Document all commands, configuration options, and usage examples.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-08T18:25:48.694899845-05:00","created_by":"rektide","updated_at":"2026-01-08T18:38:14.516605718-05:00","closed_at":"2026-01-08T18:38:14.516605718-05:00","close_reason":"Closed via update"}
22{"id":"nvim-registry-3r0","title":"Implement init.lua - Plugin initialization","description":"Create init.lua as the main entry point. Implement setup() function for lazy.nvim configuration. Load and initialize all modules. Set up autocmds and commands.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T18:25:49.453508485-05:00","created_by":"rektide","updated_at":"2026-01-08T18:36:47.806184235-05:00","closed_at":"2026-01-08T18:36:47.806184235-05:00","close_reason":"Closed via update"}
33-{"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":"in_progress","priority":3,"issue_type":"feature","created_at":"2026-01-08T18:30:47.273970453-05:00","created_by":"rektide","updated_at":"2026-01-08T18:38:16.976972735-05:00","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"}]}
33+{"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"}]}
44{"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"}
55{"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"}
66{"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"}
77-{"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":"open","priority":4,"issue_type":"chore","created_at":"2026-01-08T18:25:56.569158454-05:00","created_by":"rektide","updated_at":"2026-01-08T18:25:56.569158454-05:00"}
77+{"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":"in_progress","priority":4,"issue_type":"chore","created_at":"2026-01-08T18:25:56.569158454-05:00","created_by":"rektide","updated_at":"2026-01-08T18:39:22.140747623-05:00"}
88{"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"}
99{"id":"nvim-registry-x9n","title":"Implement config.lua - Configuration management","description":"Create config.lua module to handle neoconf integration. Manage the listen-registery property in global settings. Provide functions to get and update the registry list.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-08T18:25:44.226867025-05:00","created_by":"rektide","updated_at":"2026-01-08T18:34:59.326163455-05:00","closed_at":"2026-01-08T18:34:59.326163455-05:00","close_reason":"Closed via update"}
1010{"id":"nvim-registry-yjo","title":"Add tests for core functionality","description":"Create tests for registry, config, monitor, and cleanup modules. Use plenary's test framework or vitest. Test async operations and neoconf integration.","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-08T18:25:50.169339092-05:00","created_by":"rektide","updated_at":"2026-01-08T18:25:50.169339092-05:00"}
+114
README.md
···19192020- `:RegistryCleanup` - Clean up stale listen sockets from the registry
21212222+### Programmatic Usage
2323+2424+```lua
2525+local registry = require("registry-nvim")
2626+2727+-- Get all registered sockets
2828+local sockets = registry.get_all()
2929+3030+-- Add a socket manually
3131+registry.add("/tmp/nvim.sock")
3232+3333+-- Remove a socket manually
3434+registry.remove("/tmp/nvim.sock")
3535+3636+-- Check if a socket is registered
3737+if registry.contains("/tmp/nvim.sock") then
3838+ print("Socket is registered")
3939+end
4040+4141+-- Get count of registered sockets
4242+local count = registry.count()
4343+4444+-- Clear all sockets
4545+registry.clear()
4646+4747+-- Manually trigger cleanup
4848+registry.cleanup()
4949+```
5050+5151+### Advanced Workflows
5252+5353+**Sync clipboard from terminal:**
5454+5555+```bash
5656+# Copy to all Neovim instances
5757+pbpaste | ./scripts/registry-send
5858+5959+# Or with xclip on Linux
6060+xclip -o | ./scripts/registry-send
6161+```
6262+6363+**Automated cleanup:**
6464+6565+```lua
6666+-- Add periodic cleanup to your config
6767+vim.api.nvim_create_autocmd("User", {
6868+ pattern = "RegistryCleanup",
6969+ callback = function()
7070+ require("registry-nvim").cleanup()
7171+ end,
7272+})
7373+7474+-- Manually trigger via:
7575+:RegistryCleanup
7676+```
7777+7878+**Custom monitoring control:**
7979+8080+```lua
8181+-- Stop monitoring temporarily
8282+require("registry-nvim").stop_monitor()
8383+8484+-- Do some work...
8585+8686+-- Restart monitoring
8787+require("registry-nvim").start_monitor()
8888+```
8989+2290## Configuration
23912492The plugin uses `neoconf` for configuration. The listen registry is stored in global settings:
···3199}
32100```
33101102102+### Lazy.nvim Configuration Example
103103+104104+```lua
105105+{
106106+ 'yourusername/registry-nvim',
107107+ dependencies = {
108108+ 'folke/neoconf.nvim',
109109+ 'nvim-lua/plenary.nvim',
110110+ },
111111+ config = function()
112112+ local registry = require('registry-nvim')
113113+114114+ -- Basic setup
115115+ registry.setup()
116116+117117+ -- Or with manual control of monitoring
118118+ registry.setup()
119119+ -- Later in your config:
120120+ registry.start_monitor()
121121+ end,
122122+}
123123+```
124124+34125## Requirements
3512636127- Neovim >= 0.9.0
···66157- `init.lua` - Plugin initialization
6715868159## Development
160160+161161+### CLI Tool
162162+163163+The `scripts/registry-send` script allows you to send content to all registered Neovim instances:
164164+165165+```bash
166166+# Send text to all sessions' clipboard
167167+echo "Hello from terminal" | ./scripts/registry-send
168168+169169+# Send to a specific register
170170+echo "Important text" | ./scripts/registry-send -r +
171171+172172+# Only send if an environment guard matches
173173+export CLIPBOARD_STATE=enabled
174174+echo "Sensitive data" | ./scripts/registry-send -e CLIPBOARD_STATE=enabled
175175+176176+# Use in shell scripts for clipboard synchronization
177177+cat file.txt | ./scripts/registry-send
178178+```
179179+180180+**CLI Dependencies:**
181181+- `jq` - For parsing neoconf JSON
182182+- `nvim` - For server communication
6918370184### Healthcheck
71185