# AI-generated extension for OSINT

**URL:** <https://forum.openrefine.org/t/ai-generated-extension-for-osint/2619>\
**Category:** Development & Design\
**Created:** [October 30, 2025, 6:54pm UTC](https://forum.openrefine.org/t/ai-generated-extension-for-osint/2619 "2025-10-30T18:54:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rory](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/rory/32/1517_2.png) [@Rory](https://forum.openrefine.org/u/Rory)\
**Post date:** [October 30, 2025, 6:54pm UTC](https://forum.openrefine.org/t/ai-generated-extension-for-osint/2619/1 "2025-10-30T18:54:19Z")

</div>

@Martin showed me an extension the other day for finding “indicators of compromise” in a dataset: [GitHub - herve-checkfirst/refineCTI: A simple CTI extension for OpenRefine](https://github.com/herve-checkfirst/refineCTI/)

This was created by @h_piedcoq using an LLM (I believe it was one of the Claude models) and implements features as frontend additions to the menu instead of as backend changes. Based on a quick review, it looks like it processes the data on the frontend and sends a mass-edit command to the backend to create a new column with the transformed values (instead of implementing new GREL functions in Java and registering them that way). Note: the documentation in the README references new GREL functions, but I think that might be a misunderstanding on the AI’s part; I didn’t see any registered GREL functions.

I also think it's interesting that an LLM would take this frontend only approach, which would put more emphasis on a consistent REST API than the Java API normally used for GREL functions. It also got me thinking about what it’d be like to support frontend-only extensions. @Martin also mentioned this as a possible approach to this issue: [Allow Users and Extensions to customize a Custom Menu (Tools/Other) area · Issue #109 · OpenRefine/OpenRefine · GitHub](https://github.com/OpenRefine/OpenRefine/issues/109)

---

<div class="post-metadata">

**Author:** ![h\_piedcoq](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/h_piedcoq/32/84_2.png) [@h\_piedcoq](https://forum.openrefine.org/u/h_piedcoq)\
**Post date:** [October 30, 2025, 7:36pm UTC](https://forum.openrefine.org/t/ai-generated-extension-for-osint/2619/2 "2025-10-30T19:36:45Z")

</div>

Hi Rory, Thank you for the review. I’s definitely Claude the background and yes, the doc is a little bit hallucinated on the GREL thing, and I didn’t have the time to review that.To give you a bit more of context, I decided to ask a LLM for that for a little projet that didn’t need an overkill python tool, but was easier for me to handle with Refine. I thought maybe it would interest some users.The client side approach is convenient for quick developping, but is problematic when you want to use for instance a python wrapper for using recipes. By construction, there are no GREL functions inside.Still it remains interesting to see that… it just works for my purposes. 😉

Also, this extension is part of a bigger project that I use for training and personal projects : a dockerized refine instance, with TOR in the background, and the possibility to play python3 scripts, and collect the data in refine.

---

<div class="post-metadata">

**Author:** ![h\_piedcoq](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.openrefine.org/h_piedcoq/32/84_2.png) [@h\_piedcoq](https://forum.openrefine.org/u/h_piedcoq)\
**Post date:** [November 15, 2025, 1:34pm UTC](https://forum.openrefine.org/t/ai-generated-extension-for-osint/2619/3 "2025-11-15T13:34:09Z")

</div>

Update : I modified the documentation to remove any reference to GREL functions.
