Keep your processes running after SSH disconnects.
Install • Usage • Why WinKeep? • Contributing
You SSH into your Windows server, start a long-running process, close your laptop, and... everything dies.
Windows has no nohup. No screen. No tmux. Your processes are tied to your SSH session.
winkeep run -- python server.pyThat's it. Close SSH. Come back tomorrow. Your process is still running.
irm https://winkeep.dev/install.ps1 | iexcurl -L https://winkeep.dev/install.bat -o install.bat && install.batgo install github.com/kelvinzer0/winkeep/cmd/winkeep@latestDownload the latest binary from GitHub Releases or SourceForge.
winkeep run -- python server.py
winkeep run --name myapp -- node app.js
winkeep run --session myproject -- npm startwinkeep list # List all background processes
winkeep logs <id> # View process output
winkeep logs <id> --tail 100 # Last 100 lines
winkeep kill <id> # Stop a processwinkeep session create myproject # Create a session
winkeep session list # List sessions
winkeep session kill myproject # Kill all processes in session| Feature | WinKeep | nohup (Linux) | NSSM | pm2 |
|---|---|---|---|---|
| Zero config | ✅ | ✅ | ❌ | ❌ |
| Single binary | ✅ | ✅ | ❌ | ❌ |
| Session management | ✅ | ❌ | ❌ | ✅ |
| Log capture | ✅ | ✅ | ✅ | ✅ |
| Works on Windows | ✅ | ❌ | ✅ | |
| No runtime required | ✅ | ✅ | ✅ | ❌ |
WinKeep uses OS-level process detachment:
- Windows:
CREATE_NEW_PROCESS_GROUP+DETACHED_PROCESSflags - Linux/macOS:
setsidto create a new session
Process metadata and logs are stored in:
- Windows:
%APPDATA%\winkeep\ - Linux/macOS:
~/.config/winkeep/
# Requires Go 1.22+
make build # Build for current platform
make build-all # Build for all platforms
make release # Build release binariesContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE for details.
Made with ❤️ for the Windows SSH community