How a one mistake turned into a VS Code extension I didn’t know the devs needed.
🧵 The Thread Begins with a Panic
It was a regular morning. Coffee in hand☕️, VS Code and me, ready to pick up where I left off yesterday. You know, the part where I stashed a bunch of local changes I didn’t want to commit, but also didn’t want to lose.
And then I updated VS Code.
💥 Poof. My stashes were gone.
I stared at my terminal like it betrayed me. All the WIP config changes, the local tweaks, vanished like they never existed.
The Real Problem? Git Has No Native Way to Export a Stash‼️
I quickly realized
Git lets you stash like a pro, but gives you no easy way to share, export, or move that stash to another machine.
And in a collaborative environment, especially where feature or local configs are needed just to get code running… that’s a real productivity killer.
So naturally, I did what any dev does when something lets them down.
I built a tool.
🔧 Introducing: StashShare a VS Code Extension
StashShare lets you send and receive Git stashes between machines over your local Wi-Fi.
Yes, No commits.
No pushing to remote branches.
No zip-and-drive-share.
Just:
- - Pick a stash
- - Send it over
- - Receive it
- - Automatically gets save it to your stash list Done!.
But… Why Would You Ever Need This?
Let’s play out some real-world dev scenarios:
- You switch machines mid-task, but your WIP changes are stashed.
- You’re pair programming, and your teammate needs a config tweak you stashed earlier.
- You want to save a temporary fix across setups without committing it.
Normally, that means:
- Copy-pasting files
- Slack DMs full of “Can you send me that snippet again?”
- Hacking through temporary branches
With StashShare, you just… stash and share.
⚙ How to Use (Easy!)
• Install StashShare from the VS Code Extensions
.
• Sender: Ctrl/Cmd+Shift+P
-> StashShare: Share Stash
-> Pick a stash
.
• Receiver: Ctrl/Cmd+Shift+P
-> StashShare: Receive Stash
-> Enter sender’s IP
. 𝗗𝗼𝗻𝗲!
𝘈𝘶𝘵𝘰-𝘤𝘭𝘦𝘢𝘯𝘴 𝘶𝘱 𝘢𝘧𝘵𝘦𝘳 60𝘴 𝘪𝘧 𝘯𝘰 𝘳𝘦𝘤𝘦𝘪𝘷𝘦𝘳 𝘧𝘰𝘶𝘯𝘥.
(In the demo, I use the same machine to simulate both roles. In reality, it works across two devices on the same network.
✨ Under the Hood
If you’re curious:
- Built using the VS Code extension API
- Uses Node’s child_process.execSync to run Git commands
- Sets up a minimal TCP server to serve .patch files
- Applies them safely on the receiver using git apply → git stash push
- It’s surprisingly simple. But also… surprisingly missing from Git itself.
Open Source & Open Invitation
This was a weekend build but I’d love to grow it into something more useful with help from the dev community.
If you:
- Use Git stash a lot
- Work across machines
- Pair program frequently Then this tool might save you hours.
Feel free to use it, break it, improve it:
🔗 GitHub Repo — StashShare
✨Feedback, stars, forks, and feature ideas welcome!
Final Thought
We trust Git stash to be our short-term memory, our temporary vault.
But when it fails (and it can), we’re left scrambling.
StashShare doesn’t solve everything, but it makes one missing feature a lot easier to live with.
Because stashing shouldn’t mean starting over.
Top comments (0)