a local versioning logging tool for jupyterlab notebooks

Usage no npm install needed!

<script type="module">
  import verdantLog from '';


Verdant Log (under construction)

code style: prettier

🌱🌿🌱 Verdant Log is a fork of Verdant to log how programmers code during programming sessions in a notebook.

To install: jupyter labextension install verdant-log

To use: In jupyter lab, click on the log icon on the side icon panel. Logging will occur passively in the background whether or not the user interacts with the Verdant UI.

Proposed Log Streams

be sure to version logs & software

Stream 1: User programming behavior

  • edits, runs of code
  • when they close the notebook
  • output, including if there's an error
  • adding, removing, moving notebook cells
  • copy paste behavior (can we detect if it's a paste from an external source?)
  • session markers, which we can define as a duration greater than 15 minutes between current and previous activity
  • scrolling, mouse events that might indicate that someone is actively viewing or reading the code (focus in/out)

Stream 2: Usage of Verdant Extension UI

privacy aware do people have trust in the tool?

  • if the sidebar for the tool is open
  • which pane is showing of the tool
  • scrolling, mouse events that might indicate that someone is viewing the information
  • if someone clicks on a version, which do they click
  • search bar history

Delay of survey? Until after the assignment? Is it worth post-assignment to have secret unexpected questions? Ask about particular features, did you use it, did you like it?

Dev Installation

  1. yarn
  2. npm run build
  3. jupyter labextension link .
  4. jupyter lab . to start jupyter lab


This research has been funded by Bloomberg L.P. and has been conducted at the Bloomberg L.P. and at the Natural Programming Group at the Human-Computer Interaction Institute at Carnegie Mellon University. Thank you to the JupyterLab project and also to all our awesome study participants for volunteering early design feedback!