{"id":24510032,"url":"https://github.com/rakotomandimby/deepseek-complete","last_synced_at":"2026-02-07T08:31:48.056Z","repository":{"id":270988198,"uuid":"911982305","full_name":"rakotomandimby/deepseek-complete","owner":"rakotomandimby","description":"Neovim plugin that allows you to use the DeepSeek API to do code completion in a Neovim buffer","archived":false,"fork":false,"pushed_at":"2025-01-21T19:42:27.000Z","size":453,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-08T04:47:28.344Z","etag":null,"topics":["deepseek","lua","neovim"],"latest_commit_sha":null,"homepage":"","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/rakotomandimby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-01-04T11:27:56.000Z","updated_at":"2025-06-02T13:35:05.000Z","dependencies_parsed_at":"2025-01-04T16:20:44.854Z","dependency_job_id":"f72231f9-f0ea-4500-94e9-f0d335f4561a","html_url":"https://github.com/rakotomandimby/deepseek-complete","commit_stats":null,"previous_names":["rakotomandimby/deepseek-complete"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rakotomandimby/deepseek-complete","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakotomandimby%2Fdeepseek-complete","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakotomandimby%2Fdeepseek-complete/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakotomandimby%2Fdeepseek-complete/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakotomandimby%2Fdeepseek-complete/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rakotomandimby","download_url":"https://codeload.github.com/rakotomandimby/deepseek-complete/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakotomandimby%2Fdeepseek-complete/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29190187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["deepseek","lua","neovim"],"created_at":"2025-01-22T00:24:42.143Z","updated_at":"2026-02-07T08:31:48.042Z","avatar_url":"https://github.com/rakotomandimby.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!CAUTION]\n\u003e **Stuck development**\n\u003e \n\u003e The development of this plugin is stuck on one technical point: having a decent suggestion acceptation algorithm and codebase.\n\u003e Suggestion acceptation is about dealing with cursor position, word replacement, space character handling ( **word separator** vs **indentation**),...\n\u003e \n\u003e Having a good plugin in that sense is not easy, and **I am stuck on this**.\n\n# Descritpion\n\nThis plugin is a Neovim plugin that allows you to use the DeepSeek API to do do code completion in a Neovim buffer.\n\nDeepSeek is not flat cost, it is pay-as-you-go, so completions are manually triggered by the user, not as-you-type.\n\n# Context sending\n\nThe plugins sends the content **all** the open buffers as context to the DeepSeek API.\n\nFor example, if you open NeoVim with `nvim **/*.lua *.lua` and you ask DeepSeek to complete your file, \nit will send the content of `**/*.lua` and `*.lua` to the DeepSeek API in a multi-turn chat and then it will ask DeepSeek to complete the current buffer.\n\nThis will optimize the completions, but it will also send the content of all the files in your project to the DeepSeek API.\n\nBe careful with this, as:\n\n- It can be expensive if you have a lot of open buffers.\n- Token calculation is **not done** before sending the context, so it the API might refuse you request if you exceed the token limit.\n\n# Installation\n\nInstall the plugin with your favorite package manager:\n\n```lua\nuse 'rakotomandimby/deepseek-complete.nvim'\n```\n\n```lua\n{\n    \"rakotomandimby/deepseek-complete.nvim\"\n}\n```\n\n# Configuration\n\nUsers can customize the key mappings by setting `vim.g.rktmb_deepseek_complete_opts` in the configuration.  \n\nAs of writing, the following configuration options are available:\n\n- `deepseek_api_key`: You can get it from [DeepSeek](https://platform.deepseek.com/api_keys). Defaults to the value of the `DEEPSEEK_API_KEY` environment variable.\n- `suggest_keymap`: The keymap to trigger completions. Defaults to `\u003cM-ESC\u003e`.\n- `accept_all_keymap`: The keymap to accept all completions. Defaults to `\u003cM-PageDown\u003e`.\n- `acceptp_line_keymap`: The keymap to accept the first line of the completion. Defaults to `\u003cM-Down\u003e`.\n\nTo change the **suggest** keymap to `\u003cC-j\u003e`, set the following to a lua file that is going to be read after the installation:\n\n```lua\nvim.g.rktmb_deepseek_complete_opts = {\n  deepseek_api_key = \"YOUR_DEEPSEEK_API_KEY\"\n  suggest_keymap = \"\u003cC-j\u003e\",\n}\n```\n\nOr to disable a keymap entirely (I dont now why would you do that, but you can):\n\n```lua\nvim.g.rktmb_deepseek_complete_opts = {\n  accept_all_keymap = \"\",\n  acceptp_line_keymap=\"\"\n}\n```\n\n# Usage\n\n- Enter INSERT mode\n- Type your code in the current buffer (it is better if you finish a sentence)\n- Issue `\u003cM-ESC\u003e` to trigger the completion\n- The completion will be inserted in **below** the current line\n\n# Next features\n\n- [ ] [Add the \"finish the sentence\" feature (complete the current line)](https://github.com/rakotomandimby/deepseek-complete/issues/1)\n- [ ] [Improve the \"accept line\" user experience](https://github.com/rakotomandimby/deepseek-complete/issues/2)\n- [ ] [Add the \"complete as-you-type\" feature (heavy for the API!)](https://github.com/rakotomandimby/deepseek-complete/issues/3)\n\nIf you have any ideas, feel free to open an issue or PR!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frakotomandimby%2Fdeepseek-complete","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frakotomandimby%2Fdeepseek-complete","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frakotomandimby%2Fdeepseek-complete/lists"}