An interpreter is a program that executes a program written in the language it interprets.
Interpreting a program is less efficient than running a version that has been compiled to machine code, but it is more portable and often easier. It can also be faster than compiling if the compilation time is taken into account.
Most esoteric programming languages are implemented with interpreters, mostly written in non-esoteric languages. However, it's not unknown for esoteric languages to have interpreters for them written in other esolangs (brainfuck or some variation of it is a popular one, being a common way to prove the Turing-completeness of a new language by simulation), and special kind of interpreters, self-interpreters, written in the same language. For different esolang interpreters written in other esolangs, see EsoInterpreters.