{"id":14981718,"url":"https://github.com/hexedtech/codemp-nvim","last_synced_at":"2025-06-11T02:33:56.453Z","repository":{"id":255598597,"uuid":"837601197","full_name":"hexedtech/codemp-nvim","owner":"hexedtech","description":"neovim codemp plugin -- code multiplexer","archived":false,"fork":false,"pushed_at":"2024-10-10T11:08:25.000Z","size":573,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2024-10-11T22:42:41.729Z","etag":null,"topics":["codemp","collaborative","lua","nvim"],"latest_commit_sha":null,"homepage":"https://code.mp","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hexedtech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-03T13:04:07.000Z","updated_at":"2024-10-09T19:29:37.000Z","dependencies_parsed_at":"2024-09-24T07:30:24.693Z","dependency_job_id":"cab57fa9-6e7a-4445-a502-b5c357df0d61","html_url":"https://github.com/hexedtech/codemp-nvim","commit_stats":{"total_commits":367,"total_committers":2,"mean_commits":183.5,"dds":"0.010899182561307952","last_synced_commit":"bf59d71e3bd7ec8fb55fefafbf797c0173e53f71"},"previous_names":["hexedtech/codemp-nvim"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexedtech%2Fcodemp-nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexedtech%2Fcodemp-nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexedtech%2Fcodemp-nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexedtech%2Fcodemp-nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hexedtech","download_url":"https://codeload.github.com/hexedtech/codemp-nvim/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hexedtech%2Fcodemp-nvim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259186549,"owners_count":22818582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codemp","collaborative","lua","nvim"],"created_at":"2024-09-24T14:04:06.568Z","updated_at":"2025-06-11T02:33:56.413Z","avatar_url":"https://github.com/hexedtech.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![codemp](https://code.mp/static/banner.png)](https://code.mp)\n[![GitHub last commit](https://img.shields.io/github/last-commit/hexedtech/codemp-nvim)](https://github.com/hexedtech/codemp-nvim)\n[![LuaRocks](https://img.shields.io/luarocks/v/alemi/codemp)](https://luarocks.org/modules/alemi/codemp)\n[![Gitter](https://img.shields.io/gitter/room/hexedtech/codemp)](https://gitter.im/hexedtech/codemp)\n\n\u003e `codemp` is a **collaborative** text editing solution to work remotely.\n\nIt seamlessly integrates in your editor providing remote cursors and instant text synchronization,\nas well as a remote virtual workspace for you and your team.\n\n# codemp-nvim\n\nThis is the reference codemp [neovim](https://neovim.io) plugin maintained by [hexedtech](https://hexed.technology)\n\n\u003e compare development status with our [feature comparison matrix](https://github.com/orgs/hexedtech/projects/3)\n\n# installation\nJust add `hexedtech/codemp-nvim` to your plugin spec.\n\nIf you're using [`lazy.nvim`](https://github.com/folke/lazy.nvim), everything will be configured automatically!\n\nIf you're using something else to load `codemp-nvim`, you need to also do the following:\n * run `build.lua` during installation and every update\n * invoke `require('codemp-nvim').setup({ ... })` after loading, pass your config\n\nNote that the native codemp lua library will be downloaded automatically on each update.\n\n## neo-tree integration\n`codemp-nvim` integrates with [neo-tree](https://github.com/nvim-neo-tree/neo-tree.nvim) to provide a rich and intuitive file tree.\n\nTo enable this integration, add `neo_tree = true` in plugin `opts` and add `codemp` as a neo-tree source:\n\n```lua\n{\n\t\"hexedtech/codemp-nvim\",\n\topts = { neo_tree = true },\n},\n{\n\t\"nvim-neo-tree/neo-tree.nvim\",\n\tdependencies = { \"hexedtech/codemp-nvim\" },\n\tconfig = function ()\n\t\trequire('neo-tree').setup({\n\t\t\tsources = {\n\t\t\t\t-- your other sources\n\t\t\t\t\"codemp.neo-tree\",\n\t\t\t},\n\t\t})\n\tend,\n}\n```\n\n# usage\nInteract with this plugin using the `:MP` command.\n\nMost actions can be performed from the side tree: toggle it with `:MP toggle`.\n\n| command | description |\n| --- | --- |\n| `:MP toggle` |  toggles the codemp sidebar |\n| `:MP connect [host] [username] [password]` |  to connect to server, user and pwd will be prompted if not given |\n\nonce connected, more commands become available:\n\n| command | description |\n| --- | --- |\n| `:MP disconnect` |  disconnects from server |\n| `:MP id` |  shows current client id |\n| `:MP start \u003cworkspace\u003e` |  will create a new workspace with given name |\n| `:MP invite \u003cworkspace\u003e \u003cuser\u003e` |  invite given user to workspace  |\n| `:MP available` |  list all workspaces available to join  |\n| `:MP join \u003cworkspace\u003e` |  will join requested workspace; starts processing cursors, users and filetree |\n\nafter a workspace is joined, more commands become available:\n\n| command | description |\n| --- | --- |\n| `:MP leave \u003cworkspace\u003e` |  disconnect from a joined workspace |\n| `:MP attach \u003cbuffer\u003e` |  will attach to requested buffer if it exists (opens a new local buffer and uses current window) |\n| `:MP detach \u003cbuffer\u003e` |  detach from a buffer and stop receiving changes |\n| `:MP share` |  shares current file: creates a new buffer with local file's content, and attach to it |\n| `:MP sync` |  forces resynchronization of current buffer |\n| `:MP create \u003cbufname\u003e` |  will create a new empty buffer in workspace |\n| `:MP delete \u003cbufname\u003e` |  will delete a buffer from workspace |\n\n### quick start\n * first connect to server with `:MP connect`\n * then join a workspace with `:MP join \u003cworkspace\u003e`\n * either attach directly to a buffer with `:MP attach \u003cbuffer\u003e` or browse available buffers with `:MP toggle`\n\nMP command autocompletes available options for current state, so cycle \u003cTab\u003e if you forget any name\n\n## configuration\n`codemp-nvim` gets most of its configuration from `setup()` options. If you're using `lazy.nvim`, just place these in the `opts` table in your spec, otherwise be sure to `require('codemp').setup({...})`.\n\n```lua\nopts = {\n\tneo_tree = false, -- enable neo-tree integration\n\ttimer_interval = 100, -- poll for codemp callbacks every __ ms\n\tdebug = false, -- print text operations as they happen\n}\n```\n\n`codemp-nvim` reads some global vim variables for configuration:\n * `vim.g.codemp_username` will be used when connecting instead of prompting for username\n * `vim.g.codemp_password` will be used when connecting instead of prompting for password\n\n## building\nthis plugin relies on the native codemp lua bindings: just compile the main `codemp` project with `lua` feature enabled, rename the\noutput library into `native.so` (or `.dll` or `.dylib`) and place it together with the plugin lua files while bundling\n\n```\n.config/\n  |-nvim/\n  :  |-lua/\n  :  :  |-codemp/\n  :  :  :  |- native.(so|dll|dylib)\n  :  :  :  |- init.lua\n  :  :  :  :   ...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexedtech%2Fcodemp-nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexedtech%2Fcodemp-nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexedtech%2Fcodemp-nvim/lists"}