Skip to main content

devsnap

Snapshot and diff your development environment — end "works on my machine" debugging.

devsnap is a zero-dependency Python CLI that captures your OS, Python, tool versions (git, node, docker, go, rust, ...), installed packages and selected environment variables into one shareable JSON snapshot. Secrets are masked automatically, so a snapshot is safe to paste into a bug report. Diff two snapshots and see exactly what differs between two machines.

Install

pip install devsnap        # once published to PyPI
# or from source:
pip install git+https://github.com/gptfei/devsnap

Requires Python 3.9+. No third-party dependencies.

Usage

# Take a snapshot on machine A
devsnap snap -o machine-a.json

# Take one on machine B, then compare
devsnap snap -o machine-b.json
devsnap diff machine-a.json machine-b.json

Example diff output:

[python]
  ~ version: 3.11.4 -> 3.12.3

[tools]
  ~ git: git version 2.40.1 -> git version 2.43.0
  + docker = Docker version 25.0.3

devsnap diff exits with code 1 when environments differ, so CI can gate on environment drift. Run devsnap snap without -o to print a readable report instead of JSON.

As a library:

from devsnap import collect_snapshot, diff_snapshots

mine = collect_snapshot()
print(mine.to_json())

Why

"It works on my machine" bugs burn hours because the difference between two environments is invisible. Existing answers are heavy (full system inventory tools) or manual (copying pip freeze output around). devsnap is the small middle ground: one command, one file, one diff.

Contributing

Contributions are welcome — and designed to be easy:

  • Add a tool to collectors/tools.py (one line, alphabetical).
  • Add a collector for a stack we miss (Java, .NET, PHP, databases...). Copy any collector in src/devsnap/collectors/, see base.py.
  • Report a machine where a snapshot comes out wrong.

Read CONTRIBUTING.md, and look for issues labelled good first issue.

中文简介

devsnap 是一个零依赖的 Python 命令行工具:一键把操作系统、Python、 常用工具版本、已装包和(自动打码后的)环境变量拍成一份 JSON 快照, 可以安全地贴进 issue 里。两份快照一 diff,“在我机器上能跑”的差异 立刻现形。

License

MIT — see LICENSE.

Metadata

Release files for devsnap 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devsnap 0.1.1
File Size Uploaded Provenance Actions
devsnap-0.1.1.tar.gz 10.3 kB With provenance Details for devsnap-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for devsnap 0.1.1
File Interpreter ABI Platform Actions
devsnap-0.1.1-py3-none-any.whl Python 3 none any Details for devsnap-0.1.1-py3-none-any.whl

Total release size: 20.6 kB

Release files / devsnap-0.1.1.tar.gz

Download URL devsnap-0.1.1.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9506e67c91b4d74842b45af22cf3b9068f76e44e9be05f8f15fdf674c4fbeddb
BLAKE2b-256 checksum
How to use checksums
b021bf401ba9d7943b0977cee9766c9c07b0ce45ffcd98c01d3d5ddc98702970
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / devsnap-0.1.1-py3-none-any.whl

Download URL devsnap-0.1.1-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a08b2133c927793c6324d3180f4ba7ac19803d11c598c29684e1ee625526edc
BLAKE2b-256 checksum
How to use checksums
a4dd23e6c0f6a4ce3cfb52555bb53a46fbb5e282390ed818bd68a5c83ff4fa4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for devsnap 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for devsnap-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page