[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:zvec-grep":3},"\u003Cp align=\"right\">\n  English | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Fblob\u002FHEAD\u002FREADME_CN.md\" rel=\"nofollow ugc noopener\">中文\u003C\u002Fa>\n\u003C\u002Fp>\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002F.github\u002Fassets\u002Fzg-logo-dark.svg\">\u003C\u002Fsource>\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fzvec-ai\u002Fzvec-grep\u002FHEAD\u002F.github\u002Fassets\u002Fzg-logo.svg\" width=\"150\" alt=\"zg logo\" \u002F>\n  \u003C\u002Fpicture>\n  \u003Cp>\u003Cstrong>Know the words—or don’t. Just zg.\u003C\u002Fstrong>\u003C\u002Fp>\n  \u003Cp>The local-first search layer for humans and agents.\u003C\u002Fp>  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@zvec\u002Fzvec-grep\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@zvec\u002Fzvec-grep.svg\" alt=\"npm version\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Factions\u002Fworkflows\u002Fci.yml\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\" alt=\"CI\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue.svg\" alt=\"Apache 2.0 license\" \u002F>\u003C\u002Fa>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-%3E%3D22-blue.svg\" alt=\"Node.js 22 or newer\" \u002F>\n  \u003C\u002Fp>  \u003Cp>\n    \u003Ca href=\"#tour\" rel=\"nofollow ugc noopener\">🎬 \u003Cstrong>Tour\u003C\u002Fstrong>\u003C\u002Fa> |\n    \u003Ca href=\"#features\" rel=\"nofollow ugc noopener\">💫 \u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fa> |\n    \u003Ca href=\"#try-it-yourself\" rel=\"nofollow ugc noopener\">🚀 \u003Cstrong>Try it yourself\u003C\u002Fstrong>\u003C\u002Fa> |\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Fblob\u002FHEAD\u002Fdocs\u002FREADME.md\" rel=\"nofollow ugc noopener\">📚 \u003Cstrong>Docs\u003C\u002Fstrong>\u003C\u002Fa> |\n    \u003Ca href=\"#benchmarks\" rel=\"nofollow ugc noopener\">📊 \u003Cstrong>Benchmarks\u003C\u002Fstrong>\u003C\u002Fa> |\n    \u003Ca href=\"#community\" rel=\"nofollow ugc noopener\">🤝 \u003Cstrong>Community\u003C\u002Fstrong>\u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\u003Cp>\u003Cstrong>zg\u003C\u002Fstrong> (\u003Cstrong>z\u003C\u002Fstrong>vec-\u003Cstrong>g\u003C\u002Fstrong>rep), powered by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falibaba\u002Fzvec\" rel=\"nofollow ugc noopener\">zvec\u003C\u002Fa>,\nunifies ripgrep, BM25, and vector search behind\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Fblob\u002FHEAD\u002Fdocs\u002F05-architecture.md\" rel=\"nofollow ugc noopener\">one local-first interface\u003C\u002Fa>. Use it directly from the\nterminal, or let your agent use it for you.\u003C\u002Fp>\n\u003Cp>\u003Ca rel=\"nofollow ugc noopener\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>🎬 See it in action\u003C\u002Fh2>\n\u003Cdiv align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002F.github\u002Fassets\u002Fzvec-grep-tour-dark.gif\">\u003C\u002Fsource>\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fzvec-ai\u002Fzvec-grep\u002FHEAD\u002F.github\u002Fassets\u002Fzvec-grep-tour.gif\" width=\"1000\" alt=\"Install the agent integration, index a workspace, and let the agent search it with zvec-grep\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\u003Cp>\u003Ca rel=\"nofollow ugc noopener\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>💫 Why zg?\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Ready for humans and agents\u003C\u002Fstrong> — install once, index once, then use the same\nworkspace from the CLI or your agent on macOS, Linux, and Windows.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Search beyond keywords\u003C\u002Fstrong> — discover by meaning, rank by relevance, then\nverify with exact text or regex when needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-format search\u003C\u002Fstrong> — search source code, documents, and structured data\nwhile preserving useful structure and source locations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Less searching, less context\u003C\u002Fstrong> — ranked, source-linked results surface the\nright evidence with fewer tool calls, fewer tokens, and less noise.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local by default\u003C\u002Fstrong> — files, indexes, and local models stay on your machine;\nremote embeddings receive data only with your permission.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca rel=\"nofollow ugc noopener\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>🚀 Try it yourself\u003C\u002Fh2>\n\u003Ch3>1. Set up a sample bookshelf\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\"># Requires Node.js 22 or newer.\nnpm install -g @zvec\u002Fzvec-grep\n\nmkdir zg-mystery &amp;&amp; cd zg-mystery\ncurl --retry 3 --retry-all-errors --progress-bar -fL \\\n  -o alice-in-wonderland.txt https:\u002F\u002Fraw.githubusercontent.com\u002FGITenberg\u002FAlice-s-Adventures-in-Wonderland_11\u002Fmaster\u002F11.txt \\\n  -o sherlock-holmes.txt https:\u002F\u002Fraw.githubusercontent.com\u002FGITenberg\u002FThe-Memoirs-of-Sherlock-Holmes_834\u002Fmaster\u002F834.txt\n\nzg index --embedding local\u002Fpotion-retrieval-32m\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>[!NOTE]\nThe index is stored in \u003Ccode>.zvec-grep\u002F\u003C\u002Fcode> under the indexed project root.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cblockquote>\n\u003Cp>[!TIP]\nIf \u003Ccode>zg index\u003C\u002Fcode> or \u003Ccode>zg query\u003C\u002Fcode> fails, rerun the same command with \u003Ccode>--debug\u003C\u002Fcode>\nfor diagnostics (supported in both direct and server modes).\n\u003Ccode>zg status --mode direct --debug\u003C\u002Fcode> reports per-file failures stored in an\nexisting index; rerun a failed direct command to diagnose command-level\nfatal errors. Use\n\u003Ccode>zg status --mode server --debug\u003C\u002Fcode> to inspect recorded server indexing errors.\nFor server connection failures, check \u003Ccode>zg server status\u003C\u002Fcode> and the\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzvec-ai\u002Fzvec-grep\u002Fblob\u002FHEAD\u002Fdocs\u002F06-server.md#logs-and-state\" rel=\"nofollow ugc noopener\">server logs\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>2. Choose how to search\u003C\u002Fh3>\n\u003Ch4>For agents: ask with OpenCode\u003C\u002Fh4>\n\u003Cp>With \u003Ca href=\"https:\u002F\u002Fopencode.ai\u002F\" rel=\"nofollow ugc noopener\">OpenCode\u003C\u002Fa> configured:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">zg install --target opencode --\n\u003C\u002Fcode>\u003C\u002Fpre>\n",1788652558928]