Have you heard if esri has any plans to change GP toolbox format (.tbx file) to text-based format in future?

The issue is that we can't track changes in binary tbx file using source control system. With text based format it would be easy.

Most of our tools are .NET (COM) based. Some used for printing are Python based. Therefore we use a custom toolbox (.tbx), not Python toolbox (.pyt).

Or alternatively (maybe this would be even better approach) esri can provide a tool buildTbx which takes some text-based toolbox descriptor file, finds what tools should be in toolbox, what are inputs and outputs, also other files needed to be included in toolbox (.py files) and creates that binary tbx file as an output.

  • 3
    Wouldn't the actual question be "How to track changes in a binary tbx file with <software|s>?"
    – Martin
    Mar 5, 2014 at 8:52
  • No, I'm not so optimistic about this general approach :) Mar 5, 2014 at 9:04
  • 1
    And yet that's your real problem. All version control software should support binary data by now, so it's also your simplest solution.
    – Vince
    Mar 5, 2014 at 12:12
  • @Vince I can store binaries in any VCS. But I want to find out what changes were made between version 1 and version 2. Mar 5, 2014 at 14:06
  • 2
    Not possible -- It's a binary file. Enhancement requests belong on ideas.esri.com
    – Vince
    Mar 5, 2014 at 14:20

2 Answers 2


For your own tools, you can switch to Python toolboxes. This is the closest match to a text based toolbox as being developed by ArcGIS. However, the documentation about these toolboxes still needs to improve.

Python toolboxes are geoprocessing toolboxes that are created entirely in Python. A Python toolbox and the tools contained within look, act, and work just like toolboxes and tools created in any other way. A Python toolbox (.pyt) is simply an ASCII-based file that defines a toolbox and one or more tools.

  • 1
    Most of our tools are .NET (COM) based. Some used for printing are Python based. We use custom toolbox (.tbx). Here is a link that compares both types of toolboxes: resources.arcgis.com/en/help/main/10.2/index.html#/… Mar 5, 2014 at 9:55
  • Actually, Python toolbox is an invention of a pervert mind. .pyt file is a valid python file however no Python IDE will recognize this fact. Further that led to other perversions. Some guys made a good job adding .pyt syntax highlighting to GitHub. Mar 7, 2014 at 20:22

To answer the question as posted: "No, to my knowledge there are no plans to change the storage format for custom toolboxes away from their binary storage."

Now to also support your needs: I suggest investigating a tool deployment paradigm where your toolboxes are generated (or re-generated) systematically based on revisions to the tool source(s) themselves.

I understand this is a time-consuming (and in my opinion not value-added) approach, but if your objective is to document the differences between time-stamped toolboxes, then the toolbox-builder code plus a configuration XML for each toolbox can be compared to yield a result similar to what you get in "compare sources" in Visual Studio's VSS/TFS source code control solution.

  • Quite literal answer; though I don't have an idea what 'a toolbox generator' could be if the format is known to esri only. Mar 31, 2014 at 9:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.