____ ____ _ _
| _ \ _____ _/ ___| _ __ __ _ _ __ ___| |__ ___ | |_
| | | |/ _ \ \ / \___ \| '_ \ / _` | '_ \/ __| '_ \ / _ \| __|
| |_| | __/\ V / ___) | | | | (_| | |_) \__ \ | | | (_) | |_
|____/ \___| \_/ |____/|_| |_|\__,_| .__/|___/_| |_|\___/ \__|
|_|
The "Polaroid" of Development Environments.
Share a fully reproducible development sandbox for a repo, issue, or code review in a single file.
- Why DevSnapshot?
- Installation
- Quick Start
- Usage (Create, Inspect, Start)
- Multi-Language Support (Polyglot)
- Security (EnvGuard)
- Supported Environments
- How it Works
- Contributing
DevSnapshot is a tiny, portable, open-source tool that works on Windows, macOS, and Linux. It makes onboarding as simple as "download + run". Instead of telling contributors to "install dependencies" and hope they match, you share a single .devsnap file.
No heavy VMs. No account setup. Just code.
- Cross-Platform: Runs natively on Windows, Mac (Intel/M1), and Linux.
- Zero-Config Onboarding:
devsnap start my-repo.devsnapand you're coding in seconds. - Sherlock Detection: Automatically detects project type (Node, Python, Go) even if manifests like
package.jsonare missing. - Reproducible Bug Reports: Attach a snapshot to a GitHub issue. Maintainers see exactly what you see.
- Lightweight & Portable: Archives only your code and a "brain" (metadata). No massive Docker images.
DevSnapshot is a single binary file. Run it from anywhere.
Windows:
go build -o devsnap.exeMac (Apple Silicon):
GOOS=darwin GOARCH=arm64 go build -o devsnap-mac-arm64
chmod +x devsnap-mac-arm64Linux:
GOOS=linux GOARCH=amd64 go build -o devsnap-linux
chmod +x devsnap-linuxRun this in PowerShell to access devsnap from any folder:
[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\path\to\devsnap_folder", [System.EnvironmentVariableTarget]::User)Since this is a standalone binary (no installation needed), how you run it depends on your OS:
- Open PowerShell in the folder with
devsnap.exe. - Run with
.\:
.\devsnap.exe create- Open Terminal.
- Make it executable first:
chmod +x devsnap-mac-arm64 - Run with
./:
./devsnap-mac-arm64 create- Open Terminal.
- Make it executable:
chmod +x devsnap-linux - Run with
./:
./devsnap-linux createScan your current project and package it into a .devsnap file.
cd my-project
devsnap create
# 📸 Snapping my-project...
# ✅ Snapshot ready: my-project.devsnap🕵️ Sherlock Mode (Advanced Detection)
DevSnapshot features an intelligent "Sherlock" engine that works even when package.json or go.mod is missing:
- Recursively Scans for code files (
.js,.ts,.go, etc.). - Identifies Dependencies by reading
importandrequirestatements. - Resolves Versions using a Hybrid Strategy:
- Source Truth: Checks
node_modulesorgo.modfor exact versions. - CLI Check: If missing, runs
npm listorgo list. - Fallback: Defaults to
latest.
- Source Truth: Checks
- Generates
.devpack: Creates adependencies.devpackfile to lock this environment.
See exactly what's inside before you unzip it.
devsnap inspect my-project.devsnap
# 🔍 Snapshot Metadata
# Name: taskassignly
# Environment: node >=18.0.0
# Setup Cmd: [#DEVPACK_INSTALL]
# Run Cmd: npx viteUnpacks to a safe sandbox (.devsnap_sandbox) and launches the environment.
automatically installs dependencies and starts the app.
devsnap start my-project.devsnap
# 🚀 Starting sandbox...
# 📦 Installing imports from devpack...
# ▶️ Running: npx viteGives you full control over every step.
devsnap start my-project.devsnap --manual
# [?] Install Node dependencies (15 packages)? (Y/n):DevSnapshot now supports Multi-Language Projects (e.g., a Python backend with a Node.js frontend).
It scans your entire project and detects ALL supported environments simultaneously:
Detected polyglot-project [node (>=18.0.0), python (3.10)]
When running devsnap start (especially with --manual), the Interactive Wizard guides you through the setup for each environment sequentially:
- Runtime Check: Verifies you have the necessary tools (e.g., checks for
pythonandnode). - Sequential Install: Prompts to install Node dependencies, then Python dependencies.
- Controlled Launch: Allows you to start services one by one.
Never accidentally leak API keys again. DevSnapshot automatically scans your code for environment variable usage (e.g., process.env.API_KEY, os.getenv("SECRET")).
- Detection: Finds all required keys during
create. - Exclusion: Ignoring local
.envfiles to prevent leaks. - Restoration:
- Generates a template
.envin the sandbox. - Prompts you to enter missing secrets securely at runtime.
- Loads them into the process for that session only.
- Generates a template
| Language | Manifest | Status | Notes |
|---|---|---|---|
| Node.js | package.json |
✅ Stable | Works for all frameworks (React, Vue, Next, etc.) |
| Angular | angular.json |
✅ Stable | Auto-detects Angular & resolves core version |
| Go | go.mod |
✅ Stable | Parses go.mod or scans imports + go list restoration |
| Python | requirements.txt |
✅ Stable | Standard pip install & run |
| Sherlock (Generic) | Missing | 🚀 Live | Smart detection for Node, Python & Go projects without manifests |
| Polyglot | Mixed | ✨ New | Supports Node + Python + Go in the same repo |
Note: Sherlock Mode is currently in a Testing Phase. While it often works like magic, always verify the generated
.devpackfor complex projects.
DevSnapshot isn't magic—it's just smart archiving.
- Analysis (The "Brain"):
- It scans your code to identify languages, frameworks, and dependencies.
- It ignores heavy folders like
node_modules,.venv, ortargetto keep the file small (kB/MBs, not GBs).
- Snapshotting:
- It bundles your source code + a
snapshot.jsonmetadata file into a compressed.devsnaparchive. - It generates a
dependencies.devpack(a lockfile of lockfiles) to ensure identical versions.
- It bundles your source code + a
- Sandboxing:
- When you run
start, it unpacks into a.devsnap_sandboxfolder. - It reconstructs the environment by extracting code and freshly installing dependencies using the native package manager (npm, pip, go, cargo).
- When you run
This ensures Zero Pollution on your main machine and 100% Reproducibility.
We are building the future of Portable Development Environments. Our goal is to make "it works on my machine" a phrase of the past.
Modern development is too fragmented. Docker is heavy. Nix is complex. DevSnapshot bridges the gap: Native performance with Container-like reproducibility.
- ✅ Core Polyglot support (Node, Go, Python, Rust, PHP, Java)
- ✅ Intelligent "Sherlock" detection
- ✅ Cross-platform binaries
- Cloud Snapshots:
devsnap push/pullto S3 or GitHub Packages. - IDE Integration: VS Code extension to auto-load snapshots.
- Deep Containerization: Optional lightweight isolation using OS-native features (verify/jail).
- Plugin System: Allow community to write detectors for new languages (Ruby, Haskell, Swift).
- GUI Wizard: A desktop app for visual snapshot management.
- Startup Time: < 500ms for cached snapshots.
- Archive Size: < 10MB for typical microservices (code-only).
This is a completely Open Source project. We welcome contributions from the community!
- Fork the repo
- Submit Pull Requests
- Report Issues
- BEMP (Browser Enabled Model Protocol): A local, open-source bridge that turns web-based AI interfaces (Gemini, ChatGPT, DeepSeek, Qwen, Kimi, Venice, Blackbox, and others) into an API-like protocol you can call from your own code.
Author: Asish Kumar Sharma Role: Founder & CEO @ SafarNow
A SafarNow Innovation Product
Contact: 📧 asishkksharma@gmail.com
DevSnapshot is proudly Open Source under the MIT License.
We believe developer tools should be foundational infrastructure, accessible to everyone. By choosing MIT, we ensure:
- Zero Friction: You can use this tool in personal, academic, or commercial projects without asking for permission.
- Freedom to Fork: If you need a custom version for your enterprise, you are free to modify the source code.
- Community Ownership: No vendor lock-in. If we stop maintaining it, the community can take over.
- Use this tool for Commercial purposes (e.g., inside your startup).
- Modify the source code to fit your needs.
- Distribute copies of the tool to your team.
- Charge for services that use this tool (e.g., "DevOps consulting using DevSnapshot").
- Hold the authors liable for any damages (software is provided "as is").
- Remove the original copyright notice and license text from the source code.
In summary: As long as you keep the copyright header, you can do whatever you want with this code. Build, break, and scale. 🚀
Please note that the provided binaries are currently NOT digitally signed.
- Why? Code signing certificates are costly for early-stage open-source projects. We plan to implement them in future releases.
- Implication: Your OS (Windows SmartScreen, macOS Gatekeeper) might warn you that the "Publisher is unknown." using the binaries.
- Liability: The author (Asish Kumar Sharma) and SafarNow are NOT responsible for any damages caused by the use of this software. You use it entirely at your own risk.
Paranoid? That's good! Since this is open source, you don't have to trust our binaries. You can consistently audit the code and Build from Source (see Installation).
"We hope DevSnapshot becomes the most credible tool in your workflow. We believe that the more problems we face, the better we get."
This tool is designed to be super easy. If you face any issues or have needs, please contact the author. We are building this for you.
All the best, The SafarNow Team