A hobby project by a team of "professionals". Expect surprises, not miracles.
ReShell is a fork of Nilesoft Shell — a Windows Shell extension that lets you customize the classic right-click menu using simple script files.
Nilesoft Shell grew quietly into something useful — most of its improvements after v1.8.1 were driven by community requests, many of them from this project's direction. When active development stopped, the logical next step was to continue it independently. ReShell is that continuation.
Windows has two separate context menu systems:
- The legacy menu — the classic Shell menu that's been around since Windows 95. This is what ReShell works with.
- The modern menu (XAML menu) — introduced in Windows 11. Sleek, fast, and completely out of reach for tools like ReShell.
They are not the same thing, and they are often confused for each other. ReShell only customizes the legacy menu. By default, ReShell disables the modern menu entirely — so you won't see a "Show more options" prompt. The legacy menu is simply always there.
Microsoft's long-term plan is to replace all legacy Shell components with modern equivalents. The moment they decide they no longer need the old menu — it goes away. ReShell, and every tool like it, has an unknown expiration date.
Unknown, because Microsoft hasn't announced anything. Optimistic estimates put it years away. With the current pace of AI-driven development, it could be sooner. Either way — enjoy it while it lasts.
- Windows 10 or Windows 11
- 64-bit (x64)
⚠️ shell.exeandshell.dllalone are not enough — ReShell will not work without ashell.nssconfiguration file. Until an installer is available, download the full release archive which includes a starter configuration.
- Download and extract the release archive — keep the folder structure intact (
imports/subfolder must stay next toshell.dll) - Place the extracted folder wherever you want
- Run
shell.exe— click Register or pressCtrl+R - Right-click anywhere to verify the menu appears
To reload configuration after editing your shell.nss — press Ctrl+R in the ReShell window, or restart Explorer. Note: only the main shell.nss file is watched for changes. Any additional imported files require a manual reload.
About shell.log — ReShell writes a log file next to the DLL. If your menu isn't loading correctly, check here first. It reports basic syntax errors with the approximate line and column where the problem was detected. In rare cases the reported location may not point exactly to the cause — but it's always a good starting point.
Windows locks shell.dll while it is registered and in use. To replace it:
shell.exe /unregister— or pressCtrl+U- Rename the old
shell.dll(e.g.shell.dll.bak) - Copy the new
shell.dllinto the folder shell.exe /register— or pressCtrl+R
If the file is still locked after unregistering, a full PC restart will release it.
- Run
shell.exe— click Unregister or pressCtrl+U - Delete the files
shell.exe supports the following command-line options:
shell -register (-r) — register shell.dll
shell -unregister (-u) — unregister shell.dll
shell -restart (-re) — restart Explorer
shell -treat — disable the Windows 11 modern menu
shell -silent (-s) — suppress messages
shell -? — show help
Options can be combined, e.g. shell -register -restart.
When right-clicking or pressing Shift+F10:
| Keys | Action |
|---|---|
Ctrl (while right-clicking) |
Reload shell.nss |
Ctrl + Right-click |
Reload shell.nss |
Ctrl + Win |
Disable ReShell, restore classic menu |
Windows may show a SmartScreen warning when you run shell.exe. This is expected — the executable is not signed with a paid certificate.
To proceed: click More info → Run anyway.
ReShell is configured through a shell.nss script file. A starter configuration is included in the release archive — it covers the most common use cases and is meant to be trimmed down to your needs, not built from scratch.
To use a configuration file from a different location, set the following registry value:
HKEY_CURRENT_USER\Software\Nilesoft\Shell
Value: config (REG_SZ) = full path to your .nss file
Full syntax documentation: rubicbg.github.io/ReShell-Releases
This project is maintained by a small group of "professionals" who prefer to remain mysterious.
What we can say: one of us does the testing and knows what should and shouldn't work. The rest handle architecture, research, implementation, and documentation — each in their own way, on their own schedule.
It's a hobby project. We work on it when we feel like it. We think that's honest enough.
ReShell is based on Nilesoft Shell by moudey. Without that foundation, none of this exists.
ReShell 0.1.0-alpha — for testing purposes. Not recommended for production use.