# Adding a new tool Tools are a way to execute something on your code or the output of a compilation. Adding tools requires adding configuration to a properties file for a specific language. For a comprehensive overview of the configuration system, see [Configuration.md](Configuration.md). ```INI tools=rewritecpp tools.rewritecpp.name=rewritecpp tools.rewritecpp.exe=/opt/compiler-explorer/rewritertool/bin/rewritecpp tools.rewritecpp.type=independent tools.rewritecpp.exclude= tools.rewritecpp.class=base-tool tools.rewritecpp.stdinHint=disabled tools.rewritecpp.monacoStdin=false tools.rewritecpp.languageId=cppp tools.rewritecpp.options=--a tools.rewritecpp.args=--b ``` The `name` and `exe` are what they say they are, this is the display name for within CE and the tool executable that will be used. The `type` of the tool represents the stage in which the tool will run: - independent - when running a tool on sourcecode - postcompilation - when running a tool on the assembly or a binary The `exclude` property is to indicate which compilers are proven to be incompatible with the tool. Values of the form `group