Skip to content

iSreejith/onmymachine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

onmymachine

Kill "works on my machine" in 10 seconds.

demo

The problem

Your code runs fine. Your teammate pulls it and it crashes. Now you're playing 20 questions on Slack: "What Node version? What's in your PATH? Do you even have Docker?"

Stop asking. Diff the machines.

Quick start

You (the person it works for):

npx onmymachine

This writes onmymachine.json — a fingerprint of your dev environment. Send that file to your teammate (Slack, email, carrier pigeon).

Your teammate (the person it's broken for):

npx onmymachine diff onmymachine.json
Tools
  ✖ node           snapshot: 20.11.0   this machine: 22.3.0
  ● docker         in snapshot (27.1.1) — missing here

Env values
  ✖ JAVA_HOME      snapshot: ~/jdk-21   this machine: ~/jdk-17

✓ 24 tools match
3 differences found — one of these might be your "works on my machine".

Done. No more guessing.

What it captures

  • Tool versions — node, npm, python, git, docker, java, go, rustc, and ~20 more
  • System — OS, release, architecture, shell
  • Env vars — all names; values only for dev-relevant vars (JAVA_HOME, GOPATH, ...)
  • PATH — every entry, so "it's not even on my PATH" gets caught too

Privacy

Built to be safe to share:

  • No hostname, no username — never collected
  • Paths under your home directory become ~
  • Anything that looks like a secret (*_TOKEN, *_KEY, *PASSWORD*, ...) is [redacted]
  • Zero network calls, zero telemetry, zero dependencies — read the entire source over coffee

More

onmymachine --label "sree-laptop"   # name your snapshot
onmymachine diff snap.json --all    # also show what matches
onmymachine diff snap.json --json   # machine-readable diff

CI drift guard: commit a golden snapshot of your build box; onmymachine diff golden.json exits 1 when the runner drifts.

FAQ

Why not just use Docker? Because the bug report says "works on my machine", not "works in my container". Real development happens on hosts — with host Node, host PATH, host env vars.

Windows? First-class. Windows, macOS, and Linux.

Does it upload my snapshot anywhere? Never. It writes a local file. You choose who sees it.

Contributing

Issues and PRs welcome. The whole tool is ~400 lines of dependency-free Node — npm test runs everything.

License

MIT

About

Kill works-on-my-machine in 10 seconds: snapshot your dev environment, share the file, diff it on another machine.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors