Your own ebook library: organise, convert and read your books on any device, free
Your whole book collection on your phone, in a reader that runs in the browser, served from your own laptop over Wi-Fi. calibre is the free, open-source ebook manager that does it: a tidy library with covers and series, a one-line converter for Kindle and Kobo, and a built-in web reader. No account, no subscription, and it all lives in one folder.
- Everything in one folder you can back up, move to a USB stick or delete
- About 900MB of free disk space: the download is 217MB and calibre is 663MB once unpacked (you can delete the download afterwards)
- DRM-free ebooks, ideally EPUB. No books yet? Step 2 gets you free, legal classics
- The terminal basics from Level 0 (opening a terminal and pasting a command). The steps are written for Windows PowerShell, with the Mac and Linux setup in step 1
Download calibre Portable
The Portable version needs no admin rights and keeps calibre, your books and your settings together in one folder.
Here's where you're heading: your own books, in calibre's reader, on a phone-sized screen.

calibre's web reader at phone size (390 by 844), served from the laptop. On Windows, this mission uses calibre Portable: calibre's own site describes it as self contained, with your library and settings kept together in one folder, and nothing installed into Windows. Open PowerShell and paste these lines. They download the official installer from calibre's GitHub page (217MB) and unpack it into a
Calibre Portablefolder in your user folder:Windows PowerShell$dl = "$env:USERPROFILE\Downloads\calibre-portable-installer-9.16.0.exe" curl.exe -L -o $dl "https://github.com/kovidgoyal/calibre/releases/download/v9.16.0/calibre-portable-installer-9.16.0.exe" Start-Process $dl -ArgumentList "`"$env:USERPROFILE`"" -WaitGiving the installer a folder like this is calibre's documented "automated install": no questions, no admin prompt, and it's done in under a minute. The finished folder holds the program, an empty
Calibre Libraryand aCalibre Settingsfolder.Now point this PowerShell window at calibre's command-line tools, and keep their settings inside the portable folder (the same thing
calibre-portable.exedoes when you double-click it):Windows PowerShell (paste in every new window)$cal = "$env:USERPROFILE\Calibre Portable" $env:Path = "$cal\Calibre;$env:Path" $env:CALIBRE_CONFIG_DIRECTORY = "$cal\Calibre Settings" $env:CALIBRE_PORTABLE_BUILD = "$cal\calibre-portable.exe" $lib = "$cal\Calibre Library" calibredb --versionOutputcalibredb.exe (calibre 9.16)TipTheCALIBRE_PORTABLE_BUILDline keeps calibre's cache inside the portable folder too. Without it, the tools make acalibre-cachefolder in AppData.On a Mac or Linux, install calibre from its download page ↗. On a Mac, drag it into Applications. On Linux, calibre's official installer can put it in your home folder with no admin rights:
Linuxwget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin install_dir=~/calibre-bin isolated=yThen set up the same shortcuts in Terminal (paste them in every new window):
Mac Terminalexport PATH="/Applications/calibre.app/Contents/MacOS:$PATH" lib="$HOME/Calibre Library"; mkdir -p "$lib" calibredb --versionLinux Terminalexport PATH="$HOME/calibre-bin/calibre:$PATH" lib="$HOME/Calibre Library"; mkdir -p "$lib" calibredb --versionEvery later command works the same on Mac and Linux with two changes: write paths with forward slashes (
"$books/sign-of-the-four.epub"instead of"$books\sign-of-the-four.epub"), and put$libin double quotes (--with-library "$lib"), because the folder name has a space in it.
calibredb --version prints calibre 9.16 (or newer).If it breaksError: Path to Calibre Portable (...) too long. It must be less than 59 characters. + 2 more
Error: Path to Calibre Portable (...) too long. It must be less than 59 characters.
Calibre Portable folder must be 58 characters or fewer. Click OK (and Cancel if it then asks you to pick a folder), then run the command again with a shorter place, such as your user folder (as above) or a folder on a USB stick like E:\Books. Put that folder in place of $env:USERPROFILE in the Start-Process line and in the first setup line below.curl gives a 404 error
calibre-portable-installer, and use it in the curl line instead (change the file name in the first line too).