# Command Reference

[Toolbar](../customize/the_customize_dialog/toolbars) buttons, [menu](../customize/the_customize_dialog/context_menus) items and [hotkeys](../customize/the_customize_dialog/keys) are constructed from one or more commands. There are two main types of commands, or instructions: internal and external.

* [Internal commands](command_reference/internal_commands) are the set of functions built-in to Opus - its "native language" if you like. There are around 30 commands that make up the internal command set, and each command takes one or more [arguments](../customize/creating_your_own_buttons/internal_command_arguments) that defines or modifies its behavior.
* External commands are other programs outside of Opus. Using one or more special [control codes](command_reference/external_control_codes), a toolbar button or hotkey can launch an external program and pass information like the names of selected files to it.

The third type of instruction that can be used in a button or hotkey is the [command modifier](../customize/creating_your_own_buttons/command_modifiers). These are not commands themselves - instead, they modify the behaviour of the overall button.

More:

[Argument Types](command_reference/argument_types)\
[Internal Commands](command_reference/internal_commands)\
[External control codes](command_reference/external_control_codes)\
[Command modifier reference](command_reference/command_modifier_reference)
