watermark
IPython magic function to print date/time stamps and various system information.
Decision gist · record as of 2026-08-14
Yes. Watermark is a lightweight, stable utility with low install friction and no known vulnerabilities. It solves a real problem—capturing reproducible environment metadata—with a simple, well-established API. Install it if you work regularly in Jupyter notebooks or IPython and need to document or inspect your computational environment.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a pure-Python wheel distribution.
- Maintenance is aging (236 days since last release), but the repository remains active with recent commits and the package is marked Production/Stable.
License · maintenance · safety
newBSD (permissive) — Licensed under the permissive BSD license, which allows free use, modification, and distribution with minimal restrictions.
last release 2025-12-21 (236 days) · last repo commit 2025-12-21 · 943 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 121,838 downloads/mo, #11,970 on PyPI
Alternatives
Verify before relying
pip install watermark
# In IPython/Jupyter:
%load_ext watermark
%watermark -v -m
# Or as a module:
from watermark import watermark
print(watermark(packages="numpy,scipy"))- Whether GPU information printing (--gpu flag) works reliably on non-NVIDIA hardware or if py3nvml is truly optional.
- How well the retrospective import capture (-iv flag) handles complex import patterns or dynamic imports.
What it is and what it does
Watermark is an IPython magic extension that captures and displays metadata about your computational environment. It works both as a magic command in Jupyter notebooks and IPython sessions (via %watermark) and as a callable function in regular Python code. The extension prints timestamps, Python implementation details, system information (OS, CPU, machine type), and versions of any packages you specify.
The package depends on ipython, importlib-metadata, and setuptools. It supports Python 3.7 and later and has been in production use since 2016. Common use cases include documenting notebook execution time, recording environment snapshots for reproducibility, and checking installed package versions at runtime.
Use it for
- Add a timestamp and environment snapshot to the top of a Jupyter notebook for reproducibility tracking.
- Check versions of key dependencies (numpy, scipy, etc.) at runtime without separate import statements.
- Document system information (CPU cores, OS, Python version) in notebook output for debugging or reporting.
- Verify GPU availability and NVIDIA driver information in machine learning workflows.
- Track which Jupyter environment (Colab, VS Code, Jupyter Lab) a notebook is running in.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Watermark is a lightweight, stable utility with low install friction and no known vulnerabilities. It solves a real problem—capturing reproducible environment metadata—with a simple, well-established API. Install it if you work regularly in Jupyter notebooks or IPython and need to document or inspect your computational environment.
Install
watermark on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance is aging (236 days since last release), but the repository remains active with recent commits and the package is marked Production/Stable.
License in practice
Licensed under the permissive BSD license, which allows free use, modification, and distribution with minimal restrictions.
Quickstart
pip install watermark
# In IPython/Jupyter:
%load_ext watermark
%watermark -v -m
# Or as a module:
from watermark import watermark
print(watermark(packages="numpy,scipy"))
Verify before relying
- Whether GPU information printing (--gpu flag) works reliably on non-NVIDIA hardware or if py3nvml is truly optional.
- How well the retrospective import capture (-iv flag) handles complex import patterns or dynamic imports.
Package facts
| License | newBSD permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesipythonimportlib-metadatasetuptools |
| Maintenance | Aging 236 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 121,838 / month, #11,970 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableFramework :: IPythonIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: watermark-2.6.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ipython magic extension”
- watermarkWatermark is an IPython magic extension that prints date/time stamps,…
- ipython-sqlAdds SQL magic commands to IPython and Jupyter notebooks, letting you…
- jupysqlAdds SQL execution to Jupyter and IPython notebooks via `%sql` and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also ipython · emr-notebooks-magics · session-info · mediapy · invisible-watermark · jupyter-server-documents · uuid-extension · ipython-pygments-lexers · resemble-perth · nbstripout