sloria/doitlive

Because sometimes you need to do it live

Python

3,581

538 commits

updated Oct 5, 2026

See the code

README

========
doitlive
========

|homebrew| |build-status| |pypi|


.. |homebrew| image:: https://badgen.net/homebrew/v/doitlive
  :alt: homebrew badge
  :target: https://github.com/Homebrew/homebrew-core/blob/master/Formula/d/doitlive.rb
.. |build-status| image:: https://github.com/sloria/doitlive/actions/workflows/build-release.yml/badge.svg
  :alt: build status
  :target: https://github.com/sloria/doitlive/actions/workflows/build-release.yml
.. |pypi| image:: https://badgen.net/pypi/v/doitlive
  :alt: pypi badge
  :target: https://pypi.org/project/doitlive/

`doitlive` is a tool for live presentations in the terminal. It reads a file of shell commands and replays the commands in a fake terminal session as you type random characters.

.. image:: https://user-images.githubusercontent.com/2379650/31386572-2e2b9d14-ad95-11e7-9be5-fcc5ed09f0e8.gif
    :alt: Demo
    :target: http://doitlive.readthedocs.io


Get it now
----------

macOS with `Homebrew <http://brew.sh/>`_:
*****************************************

.. code-block:: console

    $ brew update
    $ brew install doitlive

With pip:
*********

.. code-block:: console

    $ pip install doitlive

Quickstart
----------

1. Create a file called ``session.sh``. Fill it with bash commands.
2. Run ``doitlive play session.sh``.

.. code-block:: console

    $ doitlive play session.sh


3. Type like a madman.


More at https://doitlive.readthedocs.io
---------------------------------------

Project Links
-------------

- Docs: https://doitlive.readthedocs.io/
- Changelog: https://doitlive.readthedocs.io/en/latest/changelog.html
- PyPI: https://pypi.python.org/pypi/doitlive
- Issues: https://github.com/sloria/doitlive/issues

Kudos
-----

- Idea came from Jordi Gutiérrez Hermoso's `"Revsets" talk <https://www.youtube.com/watch?list=PLLj6w0Thbv02lEXIDVO46kotA_tv_8_us&feature=player_detailpage&v=NSLvERZQSok#t=978>`_  at PyCon 2014.
- Armin Ronacher's `click <http://click.pocoo.org/>`_ library  made this quick to implement.
- Themes inspired by Sorin Ionescu's `prezto <https://github.com/sorin-ionescu/prezto>`_ zsh themes.
- Hat tip to related projects `HackerTyper <http://hackertyper.com/>`_ and `PlayerPiano <http://i.wearpants.org/blog/playerpiano-amaze-your-friends/>`_


License
-------

MIT licensed. See the bundled `LICENSE <https://github.com/sloria/doitlive/blob/master/LICENSE>`_ file for more details.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

bash
cli
click
command-line
hacktoberfest
ipython
live-coding
presentations
python
script
zsh

Project health

Overall

4.1/10

Maintained

4/10

Code review

1/10
OpenSSF Scorecard

Latest release

5.2.1 · Feb 16, 2026

Releases this year

2

Significant stargazers

(top 24 of 62)

Yangshun Tay

13,540 followers · starred Oct 2017

Chris Rebert

2,334 followers · starred Jun 2014

Itamar Turner-Trauring

408 followers · starred Nov 2023

Spenser Black

160 followers · starred May 2021

sloria/doitlive

Because sometimes you need to do it live

Python

3,581

538 commits

updated Oct 5, 2026

See the code

README

========
doitlive
========

|homebrew| |build-status| |pypi|


.. |homebrew| image:: https://badgen.net/homebrew/v/doitlive
  :alt: homebrew badge
  :target: https://github.com/Homebrew/homebrew-core/blob/master/Formula/d/doitlive.rb
.. |build-status| image:: https://github.com/sloria/doitlive/actions/workflows/build-release.yml/badge.svg
  :alt: build status
  :target: https://github.com/sloria/doitlive/actions/workflows/build-release.yml
.. |pypi| image:: https://badgen.net/pypi/v/doitlive
  :alt: pypi badge
  :target: https://pypi.org/project/doitlive/

`doitlive` is a tool for live presentations in the terminal. It reads a file of shell commands and replays the commands in a fake terminal session as you type random characters.

.. image:: https://user-images.githubusercontent.com/2379650/31386572-2e2b9d14-ad95-11e7-9be5-fcc5ed09f0e8.gif
    :alt: Demo
    :target: http://doitlive.readthedocs.io


Get it now
----------

macOS with `Homebrew <http://brew.sh/>`_:
*****************************************

.. code-block:: console

    $ brew update
    $ brew install doitlive

With pip:
*********

.. code-block:: console

    $ pip install doitlive

Quickstart
----------

1. Create a file called ``session.sh``. Fill it with bash commands.
2. Run ``doitlive play session.sh``.

.. code-block:: console

    $ doitlive play session.sh


3. Type like a madman.


More at https://doitlive.readthedocs.io
---------------------------------------

Project Links
-------------

- Docs: https://doitlive.readthedocs.io/
- Changelog: https://doitlive.readthedocs.io/en/latest/changelog.html
- PyPI: https://pypi.python.org/pypi/doitlive
- Issues: https://github.com/sloria/doitlive/issues

Kudos
-----

- Idea came from Jordi Gutiérrez Hermoso's `"Revsets" talk <https://www.youtube.com/watch?list=PLLj6w0Thbv02lEXIDVO46kotA_tv_8_us&feature=player_detailpage&v=NSLvERZQSok#t=978>`_  at PyCon 2014.
- Armin Ronacher's `click <http://click.pocoo.org/>`_ library  made this quick to implement.
- Themes inspired by Sorin Ionescu's `prezto <https://github.com/sorin-ionescu/prezto>`_ zsh themes.
- Hat tip to related projects `HackerTyper <http://hackertyper.com/>`_ and `PlayerPiano <http://i.wearpants.org/blog/playerpiano-amaze-your-friends/>`_


License
-------

MIT licensed. See the bundled `LICENSE <https://github.com/sloria/doitlive/blob/master/LICENSE>`_ file for more details.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

bash
cli
click
command-line
hacktoberfest
ipython
live-coding
presentations
python
script
zsh

Project health

Overall

4.1/10

Maintained

4/10

Code review

1/10
OpenSSF Scorecard

Latest release

5.2.1 · Feb 16, 2026

Releases this year

2

Significant stargazers

(top 24 of 62)

Yangshun Tay

13,540 followers · starred Oct 2017

Chris Rebert

2,334 followers · starred Jun 2014

Itamar Turner-Trauring

408 followers · starred Nov 2023

Spenser Black

160 followers · starred May 2021