{"adoption": {"forks": 332, "observed_at": "2026-08-28T04:08:05.646827+00:00", "stars": 3461}, "canonical_url": "https://ross.abutalabs.com/products/gepetto", "card": {"archived": false, "artifact_type": "plugin", "description": "IDA plugin which queries language models to speed up reverse-engineering", "domain": ["reverse-engineering", "security", "large-language-models", "developer-tools"], "enriched": true, "function": ["reverse-engineering", "llm-inference", "nlp", "developer-tools"], "health_score": 95, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["JusticeRage/Gepetto"], "name": "JusticeRage/Gepetto", "platform": ["windows", "python"], "pushed_at": "2026-08-15T17:09:38+00:00", "repo": "JusticeRage/Gepetto", "stars": 3461, "tags": ["ida-pro", "decompiler", "openai", "anthropic", "ollama", "binary-analysis", "static-analysis", "macos", "linux"], "topics": ["ida-pro", "reverse-engineering", "openai", "python", "gpt-5-api"], "urls": [], "use_cases": ["explain what a decompiled function does with an LLM", "automatically rename variables in IDA Pro", "speed up reverse-engineering of binaries", "use local models via Ollama for offline binary analysis", "understand obfuscated or unfamiliar code faster"], "what_it_is": "Gepetto is an IDA Pro plugin that queries large language models (OpenAI, Anthropic, Gemini, Ollama, and others) to explain decompiled functions and automatically rename variables. It speeds up reverse-engineering workflows by adding AI-assisted analysis directly into the IDA interface.", "when_to_avoid": ["you don't use IDA Pro or use a version older than 7.6", "you need fully offline analysis without any LLM provider (unless using Ollama)", "you can't accept sending binary code to external API services", "you want a standalone decompiler rather than an IDA plugin"], "when_to_choose": ["you use IDA Pro 7.6+ for reverse-engineering and want AI assistance", "you want to quickly understand decompiled functions without manual analysis", "you want automatic variable renaming suggestions from an LLM", "you prefer choosing among multiple LLM providers including local Ollama models"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gepetto", "repo": "JusticeRage/Gepetto", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "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:08:05.646827+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.646827+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:54.789558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "269c0978aa841a1c50dc170c14d4ad750ccb986558ba392e1ebac544506efa69", "fetched_at": "2026-08-28T04:08:05.646827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JusticeRage/Gepetto"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 97, "rhythm": 45}, "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": 1368, "days_push": 18, "days_rel": 287, "gap_med": 46, "n_releases_24m": 4}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}