highlights the input file


Highlight file syntax and print to standard output (language is inferred from the file extension)

$ pygmentize []

Explicitly set the language for syntax highlighting
$ pygmentize -l [javascript] [input_file]

List available lexers (processors for input languages)
$ pygmentize -L lexers

Save output to a file in HTML format
$ pygmentize -f html -o [output_file.html] []

List available output formats
$ pygmentize -L formatters

Output an HTML file, with additional formatter options (full page, with line numbers)
$ pygmentize -f html -O "full,linenos=True" -o [output_file.html] [input_file]


pygmentize [-l <lexer> | -g] [-F <filter>[:<options>]] [-f <formatter>] [-O <options>] [-P <option=value>] [-o <outfile>] [<infile>]
pygmentize -S <style> -f <formatter> [-a <arg>] [-O <options>] [-P <option=value>]
pygmentize -L [<which> ...]
pygmentize -N <filename>
pygmentize -C
pygmentize -H <type> <name>
pygmentize -h | -V


Pygments is a generic syntax highlighter for general use in all kinds of software such as forum systems, wikis or other applications that need to prettify source code.

Its highlights are: * a wide range of common languages and markup formats is supported * special attention is paid to details, increasing quality by a fair amount * support for new languages and formats are added easily * a number of output formats, presently HTML, LaTeX and ANSI sequences * it is usable as a command-line tool and as a library * ... and it highlights even Brainfuck!

pygmentize is a command that uses Pygments to highlight the input file and write the result to <outfile>. If no <infile> is given, stdin is used.


A summary of options is included below.

-l <lexer>

Set the lexer name. If not given, the lexer is guessed from the extension of the input file name (this obviously doesn't work if the input is stdin).


Attempt to guess the lexer from the file contents, or pass through as plain text if this fails (this option works for highlighting standard input).

-F <filter>[:<options>]

Add a filter to the token stream. You can give options in the same way as for -O after a colon (note: there must not be spaces around the colon). This option can be given multiple times.

-f <formatter>

Set the formatter name. If not given, it will be guessed from the extension of the output file name. If no output file is given, the terminal formatter will be used by default.

-o <outfile>

Set output file. If not given, stdout is used.

-O <options>

With this option, you can give the lexer and formatter a comma-separated list of options, e.g. "-O bg=light,python=cool". Which options are valid for which lexers and formatters can be found in the documentation. This option can be given multiple times.

-P <option=value>

This option adds lexer and formatter options like the -O option, but you can only give one option per -P. That way, the option value may contain commas and equals signs, which it can't with -O.

-S <style>

Print out style definitions for style <style> and for formatter <formatter>. The meaning of the argument given by -a <arg> is formatter dependent and can be found in the documentation.

-L [<which> ...]

List lexers, formatters, styles or filters. Set <which> to the thing you want to list (e.g. "styles"), or omit it to list everything.

-N <filename>

Guess and print out a lexer name based solely on the given filename. Does not take input or highlight anything. If no specific lexer can be found, "text" is printed.


Like -N, but guess a lexer based on content read from standard input.

-H <type> <name>

Print detailed help for the object <name> of type <type>, where <type> is one of "lexer", "formatter" or "filter".


Show help screen.


Show version of the Pygments package.




pygmentize was written by Georg Brandl <>.

This manual page was written by Piotr Ozarowski <>, for the Debian project (but may be used by others).

Copied to clipboard