MCPcopy Index your code
hub / github.com/OpenRefine/OpenRefine

github.com/OpenRefine/OpenRefine @3.10.1

repository ↗ · DeepWiki ↗ · release 3.10.1 ↗ · Ask this repo → · + Follow
8,977 symbols 33,641 edges 1,306 files 1,152 documented · 13% updated 2d ago3.10.1 · 2026-03-04★ 11,888685 open issues
README

OpenRefine

DOI Join the chat at https://gitter.im/OpenRefine/OpenRefine Snapshot release Coverage Status Translation progress Sponsor on GitHub Donate OpenRefine Store

OpenRefine is a Java-based power tool that allows you to load data, understand it, clean it up, reconcile it, and augment it with data coming from the web. All from a web browser and the comfort and privacy of your own computer.

Official website: https://openrefine.org

Community forum: https://forum.openrefine.org

Download

Snapshot releases

You can download snapshots of the development version of OpenRefine. To do so, you need to be logged in to GitHub. Then, click on the first item with a green tick / check mark on this page and scroll down to the Artifacts section to find the version that matches your operating system.

Run from source

If you have cloned this repository to your computer, you can run OpenRefine with:

  • ./refine on Mac OS and Linux
  • refine.bat on Windows

This requires JDK 11 or newer, Apache Maven and Node.js 18 or newer.

Documentation

Contributing to the project

Contact us

Licensing and legal issues

OpenRefine is open source software and is licensed under the BSD license located in the LICENSE.txt. See the folders licenses under /main/webapp/ as well as within each /extensions for information on open source libraries that OpenRefine depends on.

Funding OpenRefine

OpenRefine is maintained by a small core team and relies on grants plus community support. • Donate or become a monthly sponsor: https://openrefine.org/donate • See our backers: https://openrefine.org/backers • Machine-readable manifest: https://openrefine.org/funding.json

Credits

This software was created by Metaweb Technologies, Inc. and originally written and conceived by David Huynh. Metaweb Technologies, Inc. was acquired by Google, Inc. in July 2010 and the product was renamed Google Refine. In October 2012, it was renamed OpenRefine as it transitioned to a community-driven project.

Since 2020, OpenRefine is fiscally sponsored by Code for Science and Society (CS&S).

See CONTRIBUTING.md for instructions on how to contribute yourself.

Extension points exported contracts — how you extend this code

HasFields (Interface)
Interface for objects that have named fields, which can be retrieved using the dot notation or the bracket notation, e.g [23 …
modules/core/src/main/java/com/google/refine/expr/HasFields.java
Control (Interface)
Interface of GREL controls such as if, forEach, forNonBlank, with. A control can decide which part of the code to execut [15 …
modules/grel/src/main/java/com/google/refine/grel/Control.java
WbExpression (Interface)
The base interface for all expressions, which evaluate to a particular type T in an ExpressionContext. [10 implementers]
extensions/wikibase/src/org/openrefine/wikibase/schema/WbExpression.java
LanguageSpecificParser (Interface)
A parser for an expression language. It is registered in MetaParser with a language prefix to identify it. [15 implementers]
modules/core/src/main/java/com/google/refine/expr/LanguageSpecificParser.java
Function (Interface)
Interface for functions. When a function is called, its arguments have already been evaluated down into non-error values [233 …
modules/grel/src/main/java/com/google/refine/grel/Function.java
ValueMatcher (Interface)
Determines if two statement values should be considered identical or not. @author Antonin Delpeuch [7 implementers]
extensions/wikibase/src/org/openrefine/wikibase/schema/strategies/ValueMatcher.java
UrlExporter (Interface)
@deprecated for 3.9 by tfmorris - this interface is unused internally and will be deleted at the end of the [9 implementers]
modules/core/src/main/java/com/google/refine/exporters/UrlExporter.java
StatementMerger (Interface)
Object which determines how uploaded statements are matched with existing statements on the edited entity. @author Anto [6 …
extensions/wikibase/src/org/openrefine/wikibase/schema/strategies/StatementMerger.java

Core symbols most depended-on inside this repo

get
called by 2786
modules/core/src/main/java/com/google/refine/expr/HasFieldsList.java
StringAt
called by 1011
main/src/com/google/refine/clustering/binning/Metaphone3.java
add
called by 636
modules/core/src/main/java/com/google/refine/preference/TopList.java
contains
called by 607
modules/core/src/main/java/com/google/refine/model/ColumnGroup.java
put
called by 591
modules/core/src/main/java/com/google/refine/preference/PreferenceStore.java
append
called by 542
modules/core/src/main/java/com/google/refine/util/JSONUtilities.java
write
called by 416
main/src/com/google/refine/commands/column/GetColumnsInfoCommand.java
toString
called by 388
main/src/com/google/refine/exporters/sql/SqlData.java

Shape

Method 7,057
Class 1,261
Function 601
Interface 44
Enum 14

Languages

Java91%
TypeScript9%
Python1%

Modules by API surface

main/src/com/google/refine/clustering/binning/Metaphone3.java222 symbols
extensions/wikibase/module/scripts/ajv.js146 symbols
modules/core/src/main/java/com/google/refine/importing/ImportingUtilities.java54 symbols
modules/core/src/main/java/com/google/refine/expr/util/CalendarParser.java48 symbols
main/tests/server/src/com/google/refine/importers/SeparatorBasedImporterTests.java42 symbols
extensions/wikibase/module/scripts/ajv.min.js42 symbols
modules/core/src/main/java/com/google/refine/browsing/facets/ScatterplotFacet.java41 symbols
main/webapp/modules/core/externals/jquery-ui/jquery-ui.js41 symbols
modules/core/src/main/java/com/google/refine/ProjectMetadata.java40 symbols
main/tests/server/src/com/google/refine/importing/ImportingUtilitiesTests.java38 symbols
modules/core/src/main/java/com/google/refine/model/recon/StandardReconConfig.java37 symbols
modules/core/src/main/java/com/google/refine/commands/Command.java37 symbols

Dependencies from manifests, versioned

${project.groupId}:core
${project.groupId}:main
${project.groupId}:server
com.fasterxml.jackson.core:jackson-annotations
com.fasterxml.jackson.core:jackson-core
com.fasterxml.jackson.datatype:jackson-datatype-jdk8
com.fasterxml.jackson:jackson-bom
com.github.luben:zstd-jni1.5.7-6 · 1×
com.mysql:mysql-connector-j8.2.0 · 1×
com.optimaize.languagedetector:language-detector0.6 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add OpenRefine \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact