{"adoption": {"forks": 151, "observed_at": "2026-08-28T04:05:41.324619+00:00", "stars": 1826}, "canonical_url": "https://ross.abutalabs.com/products/grepai", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Semantic Search & Call Graphs for AI Agents (100% Local)", "domain": ["developer-tools", "artificial-intelligence"], "enriched": true, "function": ["search-engine", "vector-database", "cli", "mcp", "developer-tools"], "health_score": 91, "homepage": "https://yoanbernabeu.github.io/grepai/", "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["yoanbernabeu/grepai"], "name": "yoanbernabeu/grepai", "platform": ["cli", "windows", "go"], "pushed_at": "2026-06-22T05:34:29+00:00", "repo": "yoanbernabeu/grepai", "stars": 1826, "tags": ["semantic-search", "embeddings", "code-search", "call-graph", "privacy-first", "ai-agents", "claude-code", "cursor", "local-first", "ollama", "search", "command-line", "macos", "linux"], "topics": ["ai", "claude-code", "cli", "code-search", "cursor", "developer-tools", "embeddings", "golang", "mcp", "privacy-first", "semantic-search", "vector-search"], "urls": [], "use_cases": ["search code semantically with natural language queries", "find authentication logic even when function names differ", "trace who calls a function before refactoring", "give AI coding agents relevant code context to reduce token usage", "index a codebase locally without sending code to the cloud", "keep a code search index automatically up to date while coding"], "what_it_is": "grepai is a privacy-first CLI tool that provides semantic code search using vector embeddings, letting users find code by meaning with natural language queries. It also traces function call graphs and exposes an MCP server so AI agents like Claude Code, Cursor, and Windsurf can query the codebase index directly, all running 100% locally.", "when_to_avoid": ["you only need simple exact-text grep and don't want to run an embedding model", "you have no local embedding provider and don't want to use OpenAI's API", "your codebase is tiny and grep is sufficient", "you need a hosted or team-shared search index"], "when_to_choose": ["you want semantic code search that runs entirely locally with Ollama or LM Studio", "you use AI coding assistants and want to cut their input token usage with better context", "you need call graph tracing to assess refactor impact", "you prefer a single dependency-free binary with a file watcher keeping the index fresh"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/grepai", "repo": "yoanbernabeu/grepai", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:41.324619+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:19:40.245057+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d4b5f89562ba4f51f8884397d0923307f107471c61750c91efbf8acb5d7ac645", "fetched_at": "2026-08-28T04:05:41.324619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoanbernabeu/grepai"}, {"content_hash": "834b64fe08f7c58edae5a4e6a3097e1a5c9134996a3d2ac96375893faf2127f2", "fetched_at": "2026-08-29T10:58:29.001779+00:00", "kind": "homepage", "missing": false, "url": "https://yoanbernabeu.github.io/grepai/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 16, "rhythm": 75}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 236, "days_push": 72, "days_rel": 170, "gap_med": 0, "n_releases_24m": 50}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}