2.2.1 • Public • Published

    wsl-open (📂 ➡️ 💻)

    pipeline status npm version

    Utility for opening files within the Windows Subsystem for Linux command line in Windows GUI applications.


    Just run wsl-open with the file/directory/URL that you want to open.

    wsl-open { FILE | DIRECTORY | URL }
    • FILE paths can be relative or absolute
    • DIRECTORY paths are the same, with a possible limitation*
    • URLs must include the protocol (http://, https://, ftp://, etc) or begin with www, which is consistent with how xdg-open handles URLs

    *If using a WSL build without the wslpath (prior to Build 1803 - released April 2018), only Windows directories can be opened


    # Opens in your Windows default image viewer
    wsl-open image.png
    # Relative and absolute paths work
    wsl-open ../Downloads/resume.pdf
    wsl-open /home/other/README.txt
    # Directories under Windows
    wsl-open /mnt/c/Users/4u6u5/Music
    # Opens your Windows default browser

    Set file associations

    The real benefit of wsl-open is setting it as the default program in the Windows Subsystem for a particular filetype. This allow you to use Linux's standard xdg-open utility to open files, and wsl-open will handle the rest! This keeps your scripts platform agnostic.

    # Set association for file type
    wsl-open -a image.png
    # Now, you can open up any PNG with xdg-open, and wsl-open will handle it
    xdg-open another_image.png
    # Unassociate wsl-open with a file type
    wsl-open -d image.png
    # Associate wsl-open with links (set wsl-open as your shell's BROWSER)
    wsl-open -w
    # Now URL's work as well!
    # And this allows other programs that depend on xdg-open to use it as well!
    npm repo wsl-open # Same as the previous command

    Protip: I like to furthur generalize my scripts by setting alias open='xdg-open' on my Linux machines, which make them behave more like macOS

    Full specification

    For full details on how the script operates, feel free to check out the manpage or design specification



    The easiest way to get it is to use the Node Package Manager and install it globally.

    # Get npm if you don't have it already
    sudo apt-get install -yqq npm
    # Install
    sudo npm install -g wsl-open


    wsl-open is actually just a single, self contained bash script, so the bare minimum installation is simply downloading the script (either by cloning the repo or via curl) and then adding it to your path. Here is an example:

    # Make a bin folder in your home directory
    mkdir ~/bin
    # Add the bin folder to your PATH in your bashrc
    echo '[[ -e ~/bin ]] && export PATH=$PATH:~/bin' >> ~/.bashrc
    # Download the script to a file named 'wsl-open'
    curl -o ~/bin/wsl-open


    npm i wsl-open

    DownloadsWeekly Downloads






    Unpacked Size

    156 kB

    Total Files


    Last publish


    • 4u6u57