Magic commands

Magics are special commands for the kernel that are not part of the C++ programming language.

There are defined with the symbol % for a line magic and %% for a cell magic.

A few magics are available in xeus-cling. In the future, user-defined magics will also be enabled.


Dump the code from all entered cells into an executable binary. The content of the cell is used for the body of the main function.

%%executable filename [-- linker options]
  • Example

  • Optional arguments:

Any additional argument is passed to the linker. In particular this can be used with -l to link extra libraries that have otherwise been loaded with

#pragma cling load("...")

Furthermore some options influence code generation:


enable instrumentation with ThreadSanitizer


enable debug information in the executable


This magic command copies the content of the cell in a file named filename.

%%file [-a] filename
  • Example

  • Optional argument:


append the content to the file.


Measure the execution time execution for a line statement (%timeit) or for a block of statements (%%timeit)

  • Usage in line mode

%timeit [-n<N> -r<R> -p<P>] statement
  • Usage in cell mode

%%timeit [-n<N> -r<R> -p<P>]
  • Example

  • Optional arguments:


execute the given statement <N> times in a loop. If this value is not given, a fitting value is chosen.


repeat the loop iteration <R> times and take the best result. Default: 7


use a precision of <P> digits to display the timing result. Default: 3