Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Otter is a simple HTML report generator for Python jobs. Otter was designed to produce reports on long-running jobs on remote machines, and send them to a web server, but it's able to process many different outputs from Python scripts, and convert them into neat and readible HTML pages.

Otter makes use of Twitter Bootstrap to make an easily themed layout for its output.

Quick Example

Otter can be used to produce reports containing a mixture of prose, data, and figures with minimal code.


This report was generated with just a small number of lines of Python:

import otter
import otter.bootstrap as bt

report = otter.Otter("index.html", author="Daniel Williams", title="Test Page", author_email= "")

with report:
    report + "#Section Title"

    report + "Lorem ipsum dolor sit amet..."

with report:

    row = bt.Row(3)

    import numpy as np
    import matplotlib.pyplot as plt

with report:
    f, ax = plt.subplots(1,1)
    x = np.linspace(0,10, 100)
    ax.plot(x, np.sin(x))

    row[1] + f

    row[0] + {"mass": "1kg", "price": "$1000", "area": 400}

    report + row

with report:
    report + "##Subsection Header"
    report + "Fusce vel lectus ultricies,... "


  • TODO Add support for pandas data tables
  • TODO Add support for custom headers and footers


Tools used in rendering this package: