# Chapter 10: Scripting

Radare is a very versatile application which supports many kinds of scripting features in different languages.

I have already explained how you can write scripts using radare commands (called 'radare scripts'). Or just interpret the output of external applications as radare commands. This kind of unidirectional scripting is interesting for data adquisition, but probably is a mess if you want to make something more interactive or complex.

For this reason radare have a pluggable interface for scripting languages using the plugin-hack API (See 'language bindings' chapter for more information)

- 10.1 Radare scripts
- 10.2 Boolean expressions
- 10.3 Macros
  - 10.3.1 Iterators
  - 10.3.2 Labels in macros
- 10.4 Language bindings
- 10.5 LUA
- 10.6 Python
  - 10.6.1 Python hello world
  - 10.6.2 radapy (remote api)
  - 10.6.3 ranal (code analysis api)
- 10.7 Ruby