[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Ryandonofrio3--osgrep":3,"tool-Ryandonofrio3--osgrep":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":97,"forks":98,"last_commit_at":99,"license":100,"difficulty_score":32,"env_os":101,"env_gpu":102,"env_ram":103,"env_deps":104,"category_tags":113,"github_topics":114,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":119,"updated_at":120,"faqs":121,"releases":151},9096,"Ryandonofrio3\u002Fosgrep","osgrep","Open Source Semantic Search for your AI Agent","osgrep 是一款专为 AI 编程助手打造的本地化语义搜索工具，旨在让开发者像使用传统 `grep` 命令一样高效地通过自然语言查找代码。它解决了传统关键词搜索无法理解代码逻辑和概念的痛点，能够精准定位如“事务在哪里创建”这类语义问题，而非仅仅匹配字符串。\n\n该工具特别适合需要频繁与 AI Agent 协作的软件开发者和工程师。其核心亮点在于完全本地运行，利用 `onnxruntime-node` 在本地生成向量索引，确保代码数据隐私安全且无需联网。osgrep 具备独特的角色检测能力，能区分“编排逻辑”与“类型定义”，并支持调用链追踪（Call Graph Tracing），帮助开发者快速理清函数间的上下游依赖关系。此外，它能自动为每个仓库建立独立索引，无缝切换项目。通过与 Claude Code 或 Opencode 等插件集成，osgrep 可显著减少 AI 模型的 Token 消耗并提升响应速度，是提升代码理解和维护效率的得力助手。","\u003Cdiv align=\"center\">\n  \u003Ch1>osgrep\u003C\u002Fh1>\n  \u003Cp>\u003Cem>Slash tokens. Save time. Semantic search for your coding agent.\u003C\u002Fem>\u003C\u002Fp>\n\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg\" alt=\"License: Apache 2.0\" \u002F>\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002FRyandonofrio3\u002Fosgrep\">\n    \u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" alt=\"Ask DeepWiki\" \u002F>\n  \u003C\u002Fa>\n\n\u003Ca>\n  \u003Cimg alt=\"CodeRabbit Pull Request Reviews\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcoderabbit\u002Fprs\u002Fgithub\u002Fryandonofrio3\u002Fosgrep\">\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\n\nNatural-language search that works like `grep`. Fast, local, and built for coding agents.\n\n- **Semantic:** Finds concepts (\"where do transactions get created?\"), not just strings.\n- **Call Graph Tracing:** Map dependencies with `trace` to see who calls what.\n- **Role Detection:** Distinguishes `ORCHESTRATION` (high-level logic) from `DEFINITION` (types\u002Fclasses).\n- **Local & Private:** 100% local embeddings via `onnxruntime-node`.\n- **Auto-Isolated:** Each repository gets its own index automatically.\n- **Agent-Ready:** Native output with symbols, roles, and call graphs.\n\n## Quick Start\n\n1. **Install**\n   ```bash\n   npm install -g osgrep\n   ```\n\n2.  **Setup (Recommended)**\n\n    ```bash\n    osgrep setup\n    ```\n\n    Downloads embedding models (~150MB) upfront. If you skip this, models download automatically on first use.\n\n3.  **Search**\n\n    ```bash\n    cd my-repo\n    osgrep \"where do we handle authentication?\"\n    ```\n\n    **Your first search will automatically index the repository.** Each repository is automatically isolated with its own index. Switching between repos \"just works\" — no manual configuration needed. If the background server is running (`osgrep serve`), search goes through the hot daemon; otherwise it falls back to on-demand indexing.\n\n4.  **Trace** (Call Graph)\n\n    ```bash\n    osgrep trace \"function_name\"\n    ```\nSee who calls a function (upstream dependencies) and what it calls (downstream dependencies). Perfect for impact analysis and understanding code flow.\n\nTo find the symbols in your code base:\n    ```bash\n    osgrep symbols\n    ```\n\nIn our public benchmarks, `osgrep` can save about 20% of your LLM tokens and deliver a 30% speedup.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRyandonofrio3_osgrep_readme_adf40680fef3.png\" alt=\"osgrep benchmark\" width=\"100%\" style=\"border-radius: 8px; margin: 20px 0;\" \u002F>\n\u003C\u002Fdiv>\n\n\n\n### Claude Code Plugin\n\n1. Run `osgrep install-claude-code`\n2. Open Claude Code (`claude`) and ask it questions about your codebase.\n3. Highly recommend indexing your code base before using the plugin.\n4. The plugin's hooks auto-start `osgrep serve` in the background and shut it down on session end. Claude will use `osgrep` for semantic searches automatically but can be encouraged to do so.\n\n## Opencode Plugin\n1. Run `osgrep install-opencode`\n2. Open OC (`opencode`) and ask it questions about your codebase.\n3. Highly recommend indexing your code base before using the plugin.\n4. The plugin's hooks auto-start `osgrep serve` in the background and shut it down on session end. OC will use `osgrep` for semantic searches automatically but can be encouraged to do so.\n\n\n## Commands\n\n### `osgrep search`\n\nThe default command. Searches the current directory using semantic meaning.\n\n```bash\nosgrep \"how is the database connection pooled?\"\n```\n\n**Options:**\n\n| Flag | Description | Default |\n| --- | --- | --- |\n| `-m \u003Cn>` | Max total results to return. | `25` |\n| `--per-file \u003Cn>` | Max matches to show per file. | `1` |\n| `-c`, `--content` | Show full chunk content instead of snippets. | `false` |\n| `--scores` | Show relevance scores (0-1) for each result. | `false` |\n| `--min-score \u003Cn>` | Filter out results below this score threshold. | `0` |\n| `--compact` | Show file paths only (like `grep -l`). | `false` |\n| `-s`, `--sync` | Force re-index changed files before searching. | `false` |\n| `-r`, `--reset` | Reset the index and re-index from scratch. | `false` |\n**Examples:**\n\n```bash\n# General concept search\nosgrep \"API rate limiting logic\"\n\n# Deep dive (show more matches per file)\nosgrep \"error handling\" --per-file 5\n\n# Just give me the files\nosgrep \"user validation\" --compact\n\n# Show relevance scores and filter low-confidence matches\nosgrep \"authentication\" --scores --min-score 0.5\n```\n\n### `osgrep index`\n\nManually indexes the repository. Useful if you want to pre-warm the cache or if you've made massive changes outside of the editor.\n\n- Respects `.gitignore` and `.osgrepignore` (see [Configuration](#ignoring-files) section).\n- **Smart Indexing:** Only embeds code and config files. Skips binaries, lockfiles, and minified assets.\n- **Bounded Concurrency:** Uses a fixed thread pool to keep your system responsive.\n- **Semantic Chunking:** Uses TreeSitter grammars for supported languages (TypeScript, JavaScript, Python, Go, Rust, C\u002FC++, Java, C#, Ruby, PHP, JSON, YAML, Kotlin, Swift, Dart).\n\n**Options:**\n\n| Flag | Description | Default |\n| --- | --- | --- |\n| `-d`, `--dry-run` | See what would be indexed without making changes. | `false` |\n| `-p`, `--path \u003Cdir>` | Path to index (defaults to current directory). | `.` |\n| `-r`, `--reset` | Remove existing index and re-index from scratch. | `false` |\n| `-v`, `--verbose` | Show detailed progress with file names. | `false` |\n| `--allow-fallback` | Also index files without TreeSitter grammar support. | `false` |\n\n**Examples:**\n\n```bash\nosgrep index                    # Index current dir\nosgrep index --dry-run          # See what would be indexed\nosgrep index --verbose          # Watch detailed progress (useful for debugging)\nosgrep index --allow-fallback   # Include files without grammar support\nosgrep index --reset            # Full re-index from scratch\n```\n\n### `osgrep serve`\n\nRuns a lightweight HTTP server with live file watching so searches stay hot in RAM.\n\n- Keeps LanceDB and the embedding worker resident for \u003C50ms responses.\n- Watches the repo (via chokidar) and incrementally re-indexes on change.\n- Health endpoint: `GET \u002Fhealth`\n- Search endpoint: `POST \u002Fsearch` with `{ query, limit, path, rerank }`\n- Writes lock: `.osgrep\u002Fserver.json` with `port`\u002F`pid`\n\n**Options:**\n\n| Flag | Description |\n| --- | --- |\n| `-p, --port \u003Cport>` | Port to listen on (auto-increments if not specified) |\n| `-b, --background` | Run server in background and exit immediately |\n\n**Port Selection (priority order):**\n1. Explicit `-p \u003Cport>` flag\n2. `OSGREP_PORT` environment variable\n3. Auto-increment from registry (last used port + 1, or 4444 if no servers)\n\n**Usage:**\n\n```bash\nosgrep serve                    # Foreground, port 4444 (or next available)\nosgrep serve --background       # Background mode, auto port\nosgrep serve -b -p 5000         # Background on specific port\n```\n\n**Subcommands:**\n\n```bash\nosgrep serve status             # Show server status for current directory\nosgrep serve stop               # Stop server in current directory\nosgrep serve stop --all         # Stop all running osgrep servers\n```\n\n**Example workflow:**\n\n```bash\n# Start servers in multiple projects\ncd ~\u002Fproject-a && osgrep serve -b    # Starts on port 4444\ncd ~\u002Fproject-b && osgrep serve -b    # Starts on port 4445 (auto-increment)\n\n# Check status\nosgrep serve status\n\n# Stop all when done\nosgrep serve stop --all\n```\n\nClaude Code hooks start\u002Fstop this automatically; you rarely need to run it manually.\n\n### `osgrep list`\n\nLists all indexed repositories (stores) and their metadata.\n\n```bash\nosgrep list\n```\n\nShows store names, sizes, and last modified times. Useful for seeing what's indexed and cleaning up old stores.\n\n### `osgrep skeleton`\n\nGenerates a compressed \"skeleton\" of a file, showing only signatures, types, and class structures while eliding function bodies.\n\n```bash\nosgrep skeleton src\u002Flib\u002Fauth.ts\n```\n\n**Output:**\n```typescript\nclass AuthService {\n  validate(token: string): boolean {\n    \u002F\u002F → jwt.verify, checkScope, .. | C:5 | ORCH\n  }\n}\n```\n\n**Modes:**\n- `osgrep skeleton \u003Cfile>`: Skeletonize specific file.\n- `osgrep skeleton \u003CSymbol>`: Find symbol in index and skeletonize its file.\n- `osgrep skeleton \"query\"`: Search for query and skeletonize top matches.\n\n**Supported Languages:**\nTypeScript, JavaScript, Python, Go, Rust, Java, C#, C++, C, Ruby, PHP.\n\n\n### `osgrep doctor`\n\nChecks installation health, model paths, and database integrity.\n\n```bash\nosgrep doctor\n```\n\n## Performance & Architecture\n\nosgrep is designed to be a \"good citizen\" on your machine:\n\n1.  **Bounded Concurrency:** Chunking\u002Fembedding stay within small thread pools (1–4) and capped batch sizes to keep laptops responsive.\n2.  **Smart Chunking:** Uses `tree-sitter` to split code by function\u002Fclass boundaries, ensuring embeddings capture complete logical blocks.\n3.  **Deduplication:** Identical code blocks (boilerplate, license headers) are embedded once and cached, saving space and time.\n4.  **Semantic Split Search:** Queries both \"Code\" and \"Docs\" separately to ensure documentation doesn't drown out implementation details, then reranks with ColBERT.\n5.  **Global Batching:** A producer\u002Fconsumer pipeline decouples chunking from embedding. Files are chunked concurrently, queued, embedded in fat batches, and written to LanceDB in bulk.\n6.  **Anchor-Only Scans & Batch Deletes:** File discovery and stale cleanup hit only anchor rows, and stale\u002Fchanged paths are removed with a single `IN` delete to minimize I\u002FO.\n7.  **Structural Boosting:** Function\u002Fclass chunks get a small score boost; test\u002Fspec paths are slightly downweighted to bubble up primary definitions first.\n8.  **Role Classification:** Detects `ORCHESTRATION` functions (high complexity, many calls) vs `DEFINITION` (types\u002Fclasses) to help agents prioritize where to read.\n\n## Configuration\n\n### Automatic Repository Isolation\n\nosgrep automatically creates a unique index for each repository based on:\n\n1. **Git Remote URL** (e.g., `github.com\u002Ffacebook\u002Freact` → `facebook-react`)\n2. **Git Repo without Remote** → directory name + hash (e.g., `utils-7f8a2b3c`)\n3. **Non-Git Directory** → directory name + hash for collision safety\n\n**Examples:**\n```bash\ncd ~\u002Fwork\u002Fmyproject        # Auto-detected: owner-myproject\nosgrep \"API handlers\"\n\ncd ~\u002Fpersonal\u002Futils        # Auto-detected: utils-abc12345\nosgrep \"helper functions\"\n```\n\nStores are isolated automatically — no manual `--store` flags needed!\n\n### Ignoring Files\n\nosgrep respects both `.gitignore` and `.osgrepignore` files when indexing. Create a `.osgrepignore` file in your repository root to exclude additional files or patterns from indexing.\n\n**`.osgrepignore` syntax:**\n- Uses the same pattern syntax as `.gitignore`\n- Patterns are relative to the repository root\n- Supports glob patterns, negation (`!`), and directory patterns (`\u002F`)\n\n\n### Manual Store Management\n\n- **View all stores:** `osgrep list`\n- **Override auto-detection:** `osgrep --store custom-name \"query\"`\n- **Clean up old stores:** `rm -rf ~\u002F.osgrep\u002Fdata\u002Fstore-name`\n- **Data location:** `~\u002F.osgrep\u002Fdata`\n\n## Development\n\n```bash\npnpm install\npnpm build        # or pnpm dev\npnpm format       # biome check\n```\n\n## Troubleshooting\n\n- **Index feels stale?** Run `osgrep index` to refresh.\n- **Weird results?** Run `osgrep doctor` to verify models.\n- **Index getting stuck?** Run `osgrep index --verbose` to see which file is being processed.\n- **Want faster indexing?** Keep fallback disabled (default) to skip files without TreeSitter support.\n- **Need a fresh start?** Delete `~\u002F.osgrep\u002Fdata` and `~\u002F.osgrep\u002Fmeta.json` and run `osgrep index`.\n\n## Attribution\n\nosgrep is built upon the foundation of [mgrep](https:\u002F\u002Fgithub.com\u002Fmixedbread-ai\u002Fmgrep) by MixedBread. We acknowledge and appreciate the original architectural concepts and design decisions that informed this work.\n\n\nSee the [NOTICE](NOTICE) file for detailed attribution information.\n\n## License\n\nLicensed under the Apache License, Version 2.0.\nSee [LICENSE](LICENSE) and [Apache-2.0](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0) for details.\n\n","\u003Cdiv align=\"center\">\n  \u003Ch1>osgrep\u003C\u002Fh1>\n  \u003Cp>\u003Cem>以斜杠分词，节省时间。为你的编码智能体提供语义搜索。\u003C\u002Fem>\u003C\u002Fp>\n\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg\" alt=\"许可证：Apache 2.0\" \u002F>\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002FRyandonofrio3\u002Fosgrep\">\n    \u003Cimg src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" alt=\"向DeepWiki提问\" \u002F>\n  \u003C\u002Fa>\n\n\u003Ca>\n  \u003Cimg alt=\"CodeRabbit 拉取请求评审\" src=\"https:\u002F\u002Fimg.shields.io\u002Fcoderabbit\u002Fprs\u002Fgithub\u002Fryandonofrio3\u002Fosgrep\">\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\n\n一种像 `grep` 一样工作的自然语言搜索工具。快速、本地化，专为编码智能体打造。\n\n- **语义性：** 查找概念（“事务在哪里创建？”），而不仅仅是字符串。\n- **调用图追踪：** 使用 `trace` 命令映射依赖关系，查看谁调用了什么。\n- **角色检测：** 区分 `ORCHESTRATION`（高层逻辑）和 `DEFINITION`（类型\u002F类）。\n- **本地与私密：** 通过 `onnxruntime-node` 实现 100% 的本地嵌入。\n- **自动隔离：** 每个仓库都会自动获得自己的索引。\n- **适配智能体：** 原生输出包含符号、角色和调用图。\n\n## 快速入门\n\n1. **安装**\n   ```bash\n   npm install -g osgrep\n   ```\n\n2. **设置（推荐）**\n\n    ```bash\n    osgrep setup\n    ```\n\n    会预先下载嵌入模型（约 150MB）。如果你跳过这一步，模型会在首次使用时自动下载。\n\n3. **搜索**\n\n    ```bash\n    cd my-repo\n    osgrep \"我们在哪里处理认证？\"\n    ```\n\n    **你的第一次搜索会自动为该仓库建立索引。** 每个仓库都会自动隔离并拥有独立的索引。在不同仓库之间切换“无缝衔接”——无需手动配置。如果后台服务正在运行（`osgrep serve`），搜索将通过热守护进程进行；否则会回退到按需索引。\n\n4. **追踪**（调用图）\n\n    ```bash\n    osgrep trace \"function_name\"\n    ```\n查看哪些代码调用了某个函数（上游依赖），以及该函数又调用了哪些代码（下游依赖）。非常适合影响分析和理解代码流程。\n\n要查找代码库中的符号：\n    ```bash\n    osgrep symbols\n    ```\n\n在我们的公开基准测试中，`osgrep` 可以节省约 20% 的 LLM token，并提升 30% 的速度。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRyandonofrio3_osgrep_readme_adf40680fef3.png\" alt=\"osgrep 基准测试\" width=\"100%\" style=\"border-radius: 8px; margin: 20px 0;\" \u002F>\n\u003C\u002Fdiv>\n\n\n\n### Claude Code 插件\n\n1. 运行 `osgrep install-claude-code`\n2. 打开 Claude Code（`claude`），并向它询问关于你代码库的问题。\n3. 强烈建议在使用插件前先对代码库进行索引。\n4. 插件的钩子会自动在后台启动 `osgrep serve`，并在会话结束时关闭它。Claude 会自动使用 `osgrep` 进行语义搜索，但也可以被主动引导使用。\n\n## Opencode 插件\n1. 运行 `osgrep install-opencode`\n2. 打开 OC（`opencode`），并向它询问关于你代码库的问题。\n3. 强烈建议在使用插件前先对代码库进行索引。\n4. 插件的钩子会自动在后台启动 `osgrep serve`，并在会话结束时关闭它。OC 会自动使用 `osgrep` 进行语义搜索，但也可以被主动引导使用。\n\n\n\n## 命令\n\n### `osgrep search`\n\n默认命令。使用语义含义搜索当前目录。\n\n```bash\nosgrep \"数据库连接是如何池化的？\"\n```\n\n**选项：**\n\n| 标志 | 描述 | 默认值 |\n| --- | --- | --- |\n| `-m \u003Cn>` | 最多返回的结果总数。 | `25` |\n| `--per-file \u003Cn>` | 每个文件最多显示匹配结果数。 | `1` |\n| `-c`, `--content` | 显示完整内容块而非片段。 | `false` |\n| `--scores` | 显示每个结果的相关性分数（0-1）。 | `false` |\n| `--min-score \u003Cn>` | 过滤掉低于此分数阈值的结果。 | `0` |\n| `--compact` | 仅显示文件路径（类似 `grep -l`）。 | `false` |\n| `-s`, `--sync` | 强制在搜索前重新索引已更改的文件。 | `false` |\n| `-r`, `--reset` | 重置索引并从头开始重新索引。 | `false` |\n\n**示例：**\n\n```bash\n# 通用概念搜索\nosgrep \"API 速率限制逻辑\"\n\n# 深入挖掘（每个文件显示更多匹配）\nosgrep \"错误处理\" --per-file 5\n\n# 只给我文件\nosgrep \"用户验证\" --compact\n\n# 显示相关性分数并过滤低置信度匹配\nosgrep \"认证\" --scores --min-score 0.5\n```\n\n### `osgrep index`\n\n手动为仓库建立索引。当你想预热缓存，或者在编辑器之外进行了大量更改时非常有用。\n\n- 遵循 `.gitignore` 和 `.osgrepignore` 文件规则（参见 [配置](#ignoring-files) 部分）。\n- **智能索引：** 只对代码和配置文件进行嵌入。跳过二进制文件、锁文件和压缩资源。\n- **有限并发：** 使用固定线程池，以保持系统响应能力。\n- **语义分块：** 对支持的语言使用 TreeSitter 语法解析器（TypeScript、JavaScript、Python、Go、Rust、C\u002FC++、Java、C#、Ruby、PHP、JSON、YAML、Kotlin、Swift、Dart）。\n\n**选项：**\n\n| 标志 | 描述 | 默认值 |\n| --- | --- | --- |\n| `-d`, `--dry-run` | 查看哪些内容会被索引，而不实际进行更改。 | `false` |\n| `-p`, `--path \u003Cdir>` | 要索引的路径（默认为当前目录）。 | `.` |\n| `-r`, `--reset` | 删除现有索引并从头开始重新索引。 | `false` |\n| `-v`, `--verbose` | 显示带有文件名的详细进度。 | `false` |\n| `--allow-fallback` | 也索引没有 TreeSitter 语法支持的文件。 | `false` |\n\n**示例：**\n\n```bash\nosgrep index                    # 索引当前目录\nosgrep index --dry-run          # 查看哪些内容会被索引\nosgrep index --verbose          # 观察详细进度（适合调试）\nosgrep index --allow-fallback   # 包括没有语法支持的文件\nosgrep index --reset            # 完全从头重新索引\n```\n\n### `osgrep serve`\n\n运行一个轻量级的 HTTP 服务器，并实时监控文件变化，使搜索结果始终驻留在内存中。\n\n- 保持 LanceDB 和嵌入式工作进程常驻，以实现小于 50 毫秒的响应时间。\n- 使用 chokidar 监控仓库，并在文件发生变化时增量地重新索引。\n- 健康检查端点：`GET \u002Fhealth`\n- 搜索端点：`POST \u002Fsearch`，请求体包含 `{ query, limit, path, rerank }`\n- 写锁文件：`.osgrep\u002Fserver.json`，记录 `port` 和 `pid`。\n\n**选项：**\n\n| 标志 | 描述 |\n| --- | --- |\n| `-p, --port \u003Cport>` | 监听的端口（未指定时自动递增） |\n| `-b, --background` | 在后台运行服务器并立即退出 |\n\n**端口选择优先级：**\n1. 显式指定的 `-p \u003Cport>` 标志\n2. `OSGREP_PORT` 环境变量\n3. 自动从注册表中递增（上次使用的端口 + 1，如果没有服务器则使用 4444）\n\n**使用示例：**\n\n```bash\nosgrep serve                    # 前台运行，端口 4444（或下一个可用端口）\nosgrep serve --background       # 后台模式，自动分配端口\nosgrep serve -b -p 5000         # 在指定端口上后台运行\n```\n\n**子命令：**\n\n```bash\nosgrep serve status             # 显示当前目录下的服务器状态\nosgrep serve stop               # 停止当前目录下的服务器\nosgrep serve stop --all         # 停止所有正在运行的 osgrep 服务器\n```\n\n**示例工作流：**\n\n```bash\n# 在多个项目中启动服务器\ncd ~\u002Fproject-a && osgrep serve -b    # 在端口 4444 上启动\ncd ~\u002Fproject-b && osgrep serve -b    # 在端口 4445 上启动（自动递增）\n\n# 检查状态\nosgrep serve status\n\n# 完成后停止所有服务器\nosgrep serve stop --all\n```\n\nClaude Code 会自动启动和停止此服务；通常情况下，您无需手动运行它。\n\n### `osgrep list`\n\n列出所有已索引的仓库（存储）及其元数据。\n\n```bash\nosgrep list\n```\n\n显示存储名称、大小和最后修改时间。有助于查看哪些内容已被索引，并清理旧的存储。\n\n### `osgrep skeleton`\n\n生成文件的压缩“骨架”，仅显示签名、类型和类结构，而省略函数体。\n\n```bash\nosgrep skeleton src\u002Flib\u002Fauth.ts\n```\n\n**输出：**\n```typescript\nclass AuthService {\n  validate(token: string): boolean {\n    \u002F\u002F → jwt.verify, checkScope, .. | C:5 | ORCH\n  }\n}\n```\n\n**模式：**\n- `osgrep skeleton \u003Cfile>`：对特定文件进行骨架化。\n- `osgrep skeleton \u003CSymbol>`：在索引中查找符号并对其所在文件进行骨架化。\n- `osgrep skeleton \"query\"`：搜索查询并对前几条匹配结果进行骨架化。\n\n**支持的语言：**\nTypeScript、JavaScript、Python、Go、Rust、Java、C#、C++、C、Ruby、PHP。\n\n### `osgrep doctor`\n\n检查安装健康状况、模型路径和数据库完整性。\n\n```bash\nosgrep doctor\n```\n\n## 性能与架构\n\nosgrep 被设计为一台“好公民”式的机器：\n\n1. **有限并发：** 分块和嵌入操作限制在小型线程池内（1–4 个线程），并通过限制批处理大小来确保笔记本电脑的响应能力。\n2. **智能分块：** 使用 `tree-sitter` 按照函数或类的边界分割代码，确保嵌入能够捕捉完整的逻辑块。\n3. **去重：** 相同的代码块（如样板代码、许可证头）只会被嵌入一次并缓存，从而节省空间和时间。\n4. **语义拆分搜索：** 分别查询“代码”和“文档”，以确保文档不会掩盖实现细节，然后使用 ColBERT 进行重新排序。\n5. **全局批处理：** 生产者\u002F消费者管道将分块与嵌入分离。文件可以并行分块，放入队列，以较大的批次进行嵌入，并批量写入 LanceDB。\n6. **仅锚点扫描与批量删除：** 文件发现和过期清理只影响锚点行，过期或更改的路径通过单次 `IN` 删除操作移除，以最小化 I\u002FO 开销。\n7. **结构增强：** 函数和类的分块会获得轻微的分数提升；测试和规范路径的权重则稍低，以便优先显示主要定义。\n8. **角色分类：** 检测“编排”函数（复杂度高、调用多）与“定义”（类型或类）之间的区别，帮助代理程序确定阅读的重点。\n\n## 配置\n\n### 自动仓库隔离\n\nosgrep 会根据以下规则自动为每个仓库创建唯一的索引：\n\n1. **Git 远程 URL**（例如 `github.com\u002Ffacebook\u002Freact` → `facebook-react`）\n2. **无远程的 Git 仓库** → 目录名加哈希值（例如 `utils-7f8a2b3c`）\n3. **非 Git 目录** → 目录名加哈希值，以避免冲突\n\n**示例：**\n```bash\ncd ~\u002Fwork\u002Fmyproject        # 自动检测：owner-myproject\nosgrep \"API handlers\"\n\ncd ~\u002Fpersonal\u002Futils        # 自动检测：utils-abc12345\nosgrep \"helper functions\"\n```\n\n存储会自动隔离——无需手动指定 `--store` 参数！\n\n### 忽略文件\n\nosgrep 在索引时会同时尊重 `.gitignore` 和 `.osgrepignore` 文件。您可以在仓库根目录下创建 `.osgrepignore` 文件，以排除额外的文件或模式。\n\n**`.osgrepignore` 语法：**\n- 使用与 `.gitignore` 相同的模式语法\n- 模式相对于仓库根目录\n- 支持 glob 模式、否定（`!`）和目录模式（`\u002F`）\n\n\n### 手动管理存储\n\n- **查看所有存储：** `osgrep list`\n- **覆盖自动检测：** `osgrep --store custom-name \"query\"`\n- **清理旧存储：** `rm -rf ~\u002F.osgrep\u002Fdata\u002Fstore-name`\n- **数据位置：** `~\u002F.osgrep\u002Fdata`\n\n## 开发\n\n```bash\npnpm install\npnpm build        # 或 pnpm dev\npnpm format       # biome 检查\n```\n\n## 故障排除\n\n- **索引感觉过时？** 运行 `osgrep index` 来刷新索引。\n- **结果奇怪？** 运行 `osgrep doctor` 来验证模型。\n- **索引卡住？** 运行 `osgrep index --verbose` 查看正在处理的文件。\n- **希望加快索引速度？** 保持备用方案关闭（默认设置），以跳过不支持 TreeSitter 的文件。\n- **需要全新开始？** 删除 `~\u002F.osgrep\u002Fdata` 和 `~\u002F.osgrep\u002Fmeta.json`，然后运行 `osgrep index`。\n\n## 归属声明\n\nosgrep 是基于 MixedBread 公司的 [mgrep](https:\u002F\u002Fgithub.com\u002Fmixedbread-ai\u002Fmgrep) 构建的。我们承认并感谢原始架构理念和设计决策对本项目的启发。\n\n\n详细归属信息请参阅 [NOTICE](NOTICE) 文件。\n\n## 许可证\n\n根据 Apache License, Version 2.0 许可。详细信息请参阅 [LICENSE](LICENSE) 和 [Apache-2.0](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)。","# osgrep 快速上手指南\n\nosgrep 是一款专为编程助手（Coding Agent）设计的本地语义搜索工具。它像 `grep` 一样快速，但能理解代码概念而非仅仅匹配字符串，支持调用链追踪和角色检测，且所有数据均在本地处理，保障隐私。\n\n## 环境准备\n\n*   **操作系统**：支持 macOS、Linux 和 Windows。\n*   **前置依赖**：\n    *   **Node.js**：需安装 Node.js 环境（推荐 LTS 版本），因为工具基于 `onnxruntime-node` 运行。\n    *   **Git**（可选）：用于自动识别仓库来源以实现索引隔离，非 Git 目录也可使用。\n*   **网络要求**：首次运行或执行 `setup` 时需要下载嵌入模型（约 150MB）。国内用户若遇到下载缓慢，可尝试配置全局代理或使用网络加速工具。\n\n## 安装步骤\n\n1.  **全局安装工具**\n    使用 npm 进行全局安装：\n    ```bash\n    npm install -g osgrep\n    ```\n\n2.  **预下载模型（推荐）**\n    执行设置命令以提前下载所需的嵌入模型，避免首次搜索时等待：\n    ```bash\n    osgrep setup\n    ```\n    *注：若跳过此步，模型将在第一次执行搜索命令时自动下载。*\n\n## 基本使用\n\nosgrep 采用“按需索引”机制，每个仓库会自动生成独立的索引，切换项目无需手动配置。\n\n### 1. 语义搜索\n进入你的代码仓库目录，直接使用自然语言提问。首次在该目录搜索时会自动建立索引。\n\n```bash\ncd my-repo\nosgrep \"where do we handle authentication?\"\n```\n\n**常用搜索示例：**\n```bash\n# 搜索概念（如：数据库连接池是如何实现的？）\nosgrep \"how is the database connection pooled?\"\n\n# 仅显示匹配的文件路径（类似 grep -l）\nosgrep \"user validation\" --compact\n\n# 显示相关性评分并过滤低置信度结果\nosgrep \"authentication\" --scores --min-score 0.5\n```\n\n### 2. 调用链追踪 (Trace)\n分析函数的上下游依赖关系，查看谁调用了该函数，以及该函数调用了谁。\n\n```bash\nosgrep trace \"function_name\"\n```\n\n### 3. 查看代码骨架 (Skeleton)\n快速查看文件的结构、类型和类定义，隐藏具体实现细节，适合快速浏览大文件。\n\n```bash\nosgrep skeleton src\u002Flib\u002Fauth.ts\n```\n\n### 4. 集成编程助手 (可选)\n如果你使用 Claude Code 或 Opencode，可以安装插件让助手自动调用 osgrep 进行语义搜索。\n\n**安装 Claude Code 插件：**\n```bash\nosgrep install-claude-code\n```\n\n**安装 Opencode 插件：**\n```bash\nosgrep install-opencode\n```\n*安装后，在对应的助手会话中提问代码库相关问题时，它将自动利用 osgrep 进行检索。*\n\n### 5. 后台服务模式 (可选)\n为了获得毫秒级的响应速度，可以在后台启动服务进程（热守护进程），它会监听文件变化并增量更新索引。\n\n```bash\n# 后台启动服务\nosgrep serve --background\n\n# 查看服务状态\nosgrep serve status\n\n# 停止所有服务\nosgrep serve stop --all\n```\n*注：使用上述插件时，服务通常会自动启停，无需手动操作。*","某后端工程师接手了一个缺乏文档的遗留微服务项目，急需理清复杂的认证逻辑以便修复一个安全漏洞。\n\n### 没有 osgrep 时\n- **搜索效率低下**：只能使用传统 `grep` 进行关键词匹配，若代码中用词是 \"auth\" 而搜索词是 \"login\"，则完全无法定位相关逻辑，需反复尝试不同关键词。\n- **上下文缺失**：找到函数定义后，不清楚哪些模块调用了它，必须手动逐层向上追溯调用链，耗时且容易遗漏关键路径。\n- **噪音干扰严重**：搜索结果混杂了大量仅包含关键词但无关紧要的注释或变量名，难以区分核心业务逻辑（Orchestration）与基础类型定义（Definition）。\n- **Token 消耗巨大**：为了弥补搜索不准的问题，不得不将大量无关代码文件投喂给 AI 助手，导致 LLM Token 快速耗尽且响应变慢。\n\n### 使用 osgrep 后\n- **语义精准定位**：直接询问“哪里处理了用户认证？”，osgrep 基于语义理解而非字符串匹配，瞬间定位到即使变量名不相关的核心认证模块。\n- **自动依赖追踪**：使用 `osgrep trace` 命令，一键生成完整的调用图谱，清晰展示谁调用了认证函数以及它依赖了哪些下游服务，无需人工梳理。\n- **智能角色过滤**：利用角色检测功能，自动区分并优先展示高层业务编排逻辑，屏蔽底层的类型定义噪音，让开发者直击要害。\n- **降本提速显著**：凭借本地化索引和精准检索，仅向 AI 提供高相关性代码片段，实测节省约 20% 的 Token 用量并将排查速度提升 30%。\n\nosgrep 通过将自然语言语义搜索与调用链分析引入本地开发流，彻底改变了开发者在大型代码库中“大海捞针”的低效模式。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FRyandonofrio3_osgrep_adf40680.png","Ryandonofrio3","Ryan D'Onofrio","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FRyandonofrio3_80fb8442.png",null,"https:\u002F\u002Fgithub.com\u002FRyandonofrio3",[78,82,86,89,93],{"name":79,"color":80,"percentage":81},"TypeScript","#3178c6",92.8,{"name":83,"color":84,"percentage":85},"JavaScript","#f1e05a",4.7,{"name":87,"color":88,"percentage":32},"HTML","#e34c26",{"name":90,"color":91,"percentage":92},"Shell","#89e051",0.5,{"name":94,"color":95,"percentage":96},"Python","#3572A5",0,1130,69,"2026-04-17T10:24:35","Apache-2.0","未说明, 支持 Node.js 运行的平台 (通常包括 Linux, macOS, Windows)","不需要 GPU。使用 onnxruntime-node 进行 100% 本地 CPU 推理。","未说明 (设计为在笔记本电脑上响应灵敏，使用有界并发)",{"notes":105,"python":106,"dependencies":107},"该工具是基于 Node.js 的命令行工具，通过 npm 安装。首次运行或执行 'osgrep setup' 时会下载约 150MB 的嵌入模型。它自动为每个仓库创建隔离的索引，支持多种编程语言的语义搜索和调用图追踪。","不需要 Python (基于 Node.js)",[108,109,110,111,112],"node (npm\u002Fpnpm)","onnxruntime-node","lancedb","tree-sitter","chokidar",[14,35],[115,116,117,118],"colbert","embeddings","grep","grep-search","2026-03-27T02:49:30.150509","2026-04-18T22:34:14.559426",[122,127,132,137,142,147],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},40822,"索引过程失败、随机中止或无限卡住怎么办？","这通常是由 `getGitFiles()` 中的竞态条件引起的。维护者已在 v3 版本中重点修复了此问题。如果您仍在使用旧版本（如 0.4.x），请升级到最新版本。如果问题在 v0.4.15 等版本中复现，表现为索引无限显示\"Indexing...\"且生成的存储文件极小，这同样是该竞态条件导致的，升级即可解决。","https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fissues\u002F26",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},40823,"如何配置索引时的最大文件大小限制？","目前可以通过设置环境变量来调整硬编码的 1MB 限制，而无需修改源代码。例如，要将限制设置为其他值，可以在运行命令前导出变量：`export MAX_FILE_SIZE_BYTES=52428800`（即 50MB）。未来可能会增加可编辑的配置文件支持，但目前环境变量是首选方法。","https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fissues\u002F53",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},40824,"索引大型仓库时遇到内存限制超出（Memory limit exceeded）或原生模块加载错误怎么办？","当索引大型仓库时，可能会因内存不足导致工作线程崩溃，并伴随 `Module did not self-register` 错误。维护者已推送了相关修复程序来解决内存管理和工作线程回收问题。如果遇到此错误，请确保您已更新到最新版本。虽然索引大仓库速度较慢，但新版本应能避免崩溃并完成索引。","https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fissues\u002F39",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},40825,"索引过程卡在某个文件不动（例如第二个或第三个文件）是正常的吗？","在某些机器上，索引过程可能会在特定文件处看似卡住很长时间，但这可能是正常的处理延迟，尤其是对于大型或复杂的文件。有用户反馈在 macOS M2 Max 上让其自然运行一段时间后，最终完成了索引（尽管伴随一些警告）。如果长时间无响应，可以尝试等待更久，或者检查是否为特定文件类型导致的处理瓶颈。","https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fissues\u002F47",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},40826,"使用 Git Worktrees 时，osgrep 是否会重复索引导致存储膨胀和延迟？","是的，目前 osgrep 在每个新的 worktree 上都会重新从头开始索引，这会导致明显的延迟和存储增长。社区用户建议参考 OpenCode 插件的生命周期管理方案（利用 server states 和 `--parent-pid` 进行自动清理），以优化多 worktree 环境下的体验。维护者正在探索针对此类场景的最佳实践，目前可能需要手动管理或等待后续更新。","https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fissues\u002F29",{"id":148,"question_zh":149,"answer_zh":150,"source_url":141},40827,"为什么索引完成后搜索结果显示不相关，不如 ripgrep？","osgrep 是基于语义搜索的工具，其工作原理与 ripgrep（基于正则\u002F文本匹配）不同。如果在索引完成后搜索结果不理想，可能是因为语义模型尚未完全适应您的代码库，或者查询方式需要调整。维护者承认这是一个持续改进的领域，目前的权衡是为了获得语义理解能力。确保索引完全完成（无报错）是获得良好结果的前提。",[152,157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247],{"id":153,"version":154,"summary_zh":155,"released_at":156},324391,"v0.5.16","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.15...v0.5.16","2025-12-09T03:12:24",{"id":158,"version":159,"summary_zh":160,"released_at":161},324392,"v0.5.15","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.14...v0.5.15","2025-12-09T01:04:09",{"id":163,"version":164,"summary_zh":165,"released_at":166},324393,"v0.5.14","## 变更内容\n* 框架由 @Ryandonofrio3 在 https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F66 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.13...v0.5.14","2025-12-09T00:28:00",{"id":168,"version":169,"summary_zh":170,"released_at":171},324394,"v0.5.13","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.12...v0.5.13","2025-12-08T21:54:42",{"id":173,"version":174,"summary_zh":175,"released_at":176},324395,"v0.5.12","## 变更内容\n* 心跳功能，由 @Ryandonofrio3 在 https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F65 中实现\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.10...v0.5.12","2025-12-08T21:08:00",{"id":178,"version":179,"summary_zh":180,"released_at":181},324396,"v0.5.10","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.9...v0.5.10","2025-12-08T03:09:37",{"id":183,"version":184,"summary_zh":185,"released_at":186},324397,"v0.5.8","## 变更内容\n* 由 @Ryandonofrio3 在 https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F62 中进行的首次提交\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.7...v0.5.8","2025-12-07T07:09:22",{"id":188,"version":189,"summary_zh":190,"released_at":191},324398,"v0.5.7","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.6...v0.5.7","2025-12-07T05:59:56",{"id":193,"version":194,"summary_zh":195,"released_at":196},324399,"v0.5.6","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.5...v0.5.6","2025-12-07T05:34:09",{"id":198,"version":199,"summary_zh":200,"released_at":201},324400,"v0.5.5","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.4...v0.5.5","2025-12-07T05:30:14",{"id":203,"version":204,"summary_zh":205,"released_at":206},324401,"v0.5.4","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.3...v0.5.4","2025-12-07T05:19:12",{"id":208,"version":209,"summary_zh":210,"released_at":211},324402,"v0.5.3","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.2...v0.5.3","2025-12-07T00:59:41",{"id":213,"version":214,"summary_zh":215,"released_at":216},324403,"v0.5.1","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.5.0...v0.5.1","2025-12-06T23:25:10",{"id":218,"version":219,"summary_zh":220,"released_at":221},324404,"v0.5.0","## What's Changed\n* feat: v3.0.0 - Symbol Tracing, Agent Plugins, and Hybrid ColBERT Reranking by @Ryandonofrio3 in https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F61\n* wow gemini 3 is good by @Ryandonofrio3 in https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F45\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.15...v0.5.0","2025-12-06T23:22:43",{"id":223,"version":224,"summary_zh":225,"released_at":226},324405,"v0.4.15","## What's Changed\n* Fix readme typo by @erjanmx in https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F40\n* Worker poison by @Ryandonofrio3 in https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F44\n\n## New Contributors\n* @erjanmx made their first contribution in https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fpull\u002F40\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.14...v0.4.15","2025-11-29T06:35:57",{"id":228,"version":229,"summary_zh":230,"released_at":231},324406,"v0.4.14","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.13...v0.4.14","2025-11-29T05:32:28",{"id":233,"version":234,"summary_zh":235,"released_at":236},324407,"v0.4.13","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.12...v0.4.13","2025-11-28T06:59:26",{"id":238,"version":239,"summary_zh":240,"released_at":241},324408,"v0.4.12","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.11...v0.4.12","2025-11-28T06:48:49",{"id":243,"version":244,"summary_zh":245,"released_at":246},324409,"v0.4.10","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.9...v0.4.10","2025-11-27T23:17:40",{"id":248,"version":249,"summary_zh":250,"released_at":251},324410,"v0.4.9","**Full Changelog**: https:\u002F\u002Fgithub.com\u002FRyandonofrio3\u002Fosgrep\u002Fcompare\u002Fv0.4.8...v0.4.9","2025-11-27T23:10:08"]