{"id":29576253,"url":"https://github.com/devidw/vem","last_synced_at":"2025-07-19T12:02:15.810Z","repository":{"id":296621806,"uuid":"993922714","full_name":"devidw/vem","owner":"devidw","description":"semantic search for nvim","archived":false,"fork":false,"pushed_at":"2025-06-01T19:06:15.000Z","size":190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T09:09:13.654Z","etag":null,"topics":["nvim","nvim-lua","nvim-plugin","semantic-search"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devidw.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},"funding":{"github":"devidw"}},"created_at":"2025-05-31T20:13:36.000Z","updated_at":"2025-06-02T15:02:59.000Z","dependencies_parsed_at":"2025-06-01T10:19:30.425Z","dependency_job_id":"42feaadd-b4dc-406e-a1ce-3cba3b923fd5","html_url":"https://github.com/devidw/vem","commit_stats":null,"previous_names":["devidw/vem"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devidw/vem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devidw%2Fvem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devidw%2Fvem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devidw%2Fvem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devidw%2Fvem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devidw","download_url":"https://codeload.github.com/devidw/vem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devidw%2Fvem/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265931390,"owners_count":23851463,"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":["nvim","nvim-lua","nvim-plugin","semantic-search"],"created_at":"2025-07-19T12:01:32.058Z","updated_at":"2025-07-19T12:02:15.785Z","avatar_url":"https://github.com/devidw.png","language":"TypeScript","readme":"# vem\n\n*v*im + s*em*antic search\n\nruns a local vec db and embedding model and watches configured directories of your fs to reindex on change and provides an api for semantic search + telescope frontend\n\n![](./screen.png)\n\n## setup\n\n-   chromadb\n    ```\n    python -m venv venv\n    source ./venv/bin/activate\n    pip install -r ./requirements.txt\n    ```\n-   lm studio\n\n    -   download an embedding model, eg `text-embedding-nomic-embed-text-v1.5-embedding` (./emb.ts)\n    -   run headless https://lmstudio.ai/docs/app/api/headless\n\n-   node project\n    ```\n    pnpm install\n    ```\n\n## nvim\n\nwith lazy.vim\n\n```lua\n{\n    \"vem\",\n    dir = \"/users/devidw/desktop/code/vem\",\n    dependencies = {\n        'nvim-telescope/telescope.nvim',\n    },\n    config = function()\n        require(\"telescope\").load_extension(\"vem\")\n\n        vim.keymap.set(\"n\", \"\u003cleader\u003ev\", function()\n            require(\"telescope\").extensions.vem.search({\n                repo_path = \"/Users/devidw/Desktop/code/vem\",\n                config_path = \"/Users/devidw/Desktop/code/vem/config.json\",\n            })\n        end)\n    end\n},\n```\n\n-   hit control + space to search\n    -   (why not enter? bc once results are there, enter is already reserved for opening them)\n\n## run daemon\n\nfor configuration see ./config.ts\n\n```\npnpm dev ./path/to/my/config.json\n```\n\n-   starts the vec db\n-   maybe loads the emb model\n-   reindex all collections\n-   start fs watchers to re-embed\n\nmacos launch agent setup:\n\n```\n# first update vem.plist to point to your daemon script, then:\ncp vem.plist ~/Library/LaunchAgents/gdn.wolf.vem.plist\nlaunchctl load ~/Library/LaunchAgents/gdn.wolf.vem.plist\n```\n\n---\n\n-   [x] run chromadb\n-   [x] run some embedding model\n-   [x] watch folder and index into db\n-   [x] api to query\n-   [x] telescope plugin\n","funding_links":["https://github.com/sponsors/devidw"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevidw%2Fvem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevidw%2Fvem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevidw%2Fvem/lists"}