Any ideas why I'm getting double entries on a fresh install of nbextensions?

This may happen if you had several versions of nbextensions previously installed (or if you don't have done the migrate as the last step of the first install). You may have had several installs of nbextensions if you had installed as root, user, perhaps had an IPython version.
If you have performed the migrate step, check if you have a usability directory in your nbextensions path; see the data directories indicated by jupyter --paths. If the usability directory still exists, backup it elsewhere and delete it. Let us know what happens.
I removed my old .ipython directory including the usability folder. So the only one on my system is in the ~\AppData\Roaming\jupyter\nbextensions folder. There was an old zip of 2.x nbextensions in this folder, so at some point, something was upgraded. I removed this an any old files from this directory, but the result are the same.
jupyter migrate said there was nothing to migrate.
I can suggest the following (though I don'k know well the windows install)
Look if ~\AppData\Roaming\jupyter\nbextensions has a subdirectory usability inside.
Otherwise, open an explorer at ~\AppData\Roaming and search for e.g. toc2.yaml . You should find two of them. The one that is not in ~\AppData\Roaming\jupyter\nbextensions\toc2\ will give you the path in excess.
Alright, I deleted the usability. It's better but there are still duplicates. I notice a styling folder and other folders from older branches it seems. Is there a simple was to delete everything and replace with file from master?
Delete the whole ~\AppData\Roaming\jupyter\nbextensions , and also extensions, templates in the same path (if exist) and reinstall via jupyter contrib nbextension install --user
That solved it. Thanks.
I'm getting the same issue, but it looks like something else is causing. The errors I'm getting indicate duplicate extensions in :
C:\Anaconda\share\jupyter\nbextensions\
and
C:\Users\David\AppData\Roaming\jupyter\nbextensions\
Have you tried the command
jupyter contrib nbextension migrate
This should remove old extensions.
I had tried that, but jupyter nbextension install was installing all the extensions in my AppData folder, and then migrate wasn't finding anything to delete. I think it was a stale config file issue. I used to have my Anaconda install in my User directory, but a few months ago re-installed Anaconda, choosing to install it system-wide.
I ended up fixing it by just scorched-earth, uninstalling any conda package jupyter-related, deleting all old jupyter config files (in Anaconda/etc, Anaconda/share, Appdata/Roaming) and re-installing it all. Now all extensions are in Anaconda/share and none in my AppData folder.
Thanks for looking at it, though.
Good to hear it works now. The old installation had some issues, hopefully we do better now.
Most helpful comment
Delete the whole
~\AppData\Roaming\jupyter\nbextensions, and alsoextensions,templatesin the same path (if exist) and reinstall viajupyter contrib nbextension install --user