annlnk
v0.2.0
Published
A sleek, zero-setup book finder and downloader that lives right in your terminal.
Maintainers
Readme
Finding a book these days is a scavenger hunt. Anna's Archive moves mirrors every few weeks. LibGen throws up captchas. Half the download buttons are dead links dressed as PDFs.
annlnk is a book finder that lives in your terminal, with zero setup and nothing to configure. One search checks Anna's Archive and LibGen at once, and whatever you pick downloads straight to your computer. The files are yours, saved to your downloads folder.
Mostly copied baairon's torlink — the same terminal-first idea, applied to books.
Get started
Install Node (from nodejs.org), it's all annlnk needs — Node 22+.
Open your terminal.
Start it:
npx annlnk
That's the only thing you'll type. annlnk opens straight to a search bar: type what you want, press Enter, and results stream in. From there it's all keypresses, nothing to memorize, and ? brings up the full list anytime.
Finding something
Type what you're looking for and press Enter. Results stream in from every source as they answer, tagged with [AA] for Anna's Archive or [LG] for LibGen. Arrow to what you want and press Enter to download.
| Key | Action |
| --- | --- |
| ↑/↓ | Navigate results |
| ↵ | Search / download selected |
| Tab | Switch Search / Downloads |
| ? | Help |
| ^c | Quit |
Your downloads
Active downloads sit up top with their progress, speed, and time left; when one finishes it drops into Recently downloaded just below, so the list stays tidy. Downloads run in the background while you keep searching, so you can queue up as many as you want.
Files save to ~/Downloads/books on Mac/Linux and %USERPROFILE%\Downloads\books on Windows. Config and cache live in the OS app-data folder via env-paths.
Downloads use a fallback chain — no API key required for most books:
- LibGen direct (default, fast)
- Anna's Archive fast API (optional, if you set
ANNAS_SECRET_KEY)
What it searches
| Source | Notes | | --- | --- | | Anna's Archive | Full metadata search across mirrors | | LibGen | Direct mirror search and download |
If a source is down, the search carries on without it. In some regions (e.g. Singapore) LibGen mirrors may return HTTP 503 — use a VPN if downloads fail while search still works.
Optional: fast downloads
Set your Anna's Archive secret key for faster downloads:
export ANNAS_SECRET_KEY=your_key_here
npx annlnkEnvironment variables
| Variable | Description |
| --- | --- |
| ANNLNK_DOWNLOAD_DIR | Override download folder (default: ~/Downloads/books) |
| ANNAS_SECRET_KEY | Anna's Archive API key for fast downloads |
| ANNAS_BASE_URL | Anna's Archive mirror (default: annas-archive.pk) |
CLI flags
npx annlnk --format epub --lang englishContributing
To run or work on annlnk locally:
- Clone the repository and open the folder.
- Install dependencies:
npm install - Run the development version:
Or build it and run the bundled version:npm run devnpm run build npx annlnk
Before opening a PR, skim CONTRIBUTING.md; it lays out the bar for changes.
After UI changes, regenerate README screenshots:
npm run previewsPrivacy
Your files stay on your disk. annlnk talks directly to Anna's Archive and LibGen — nothing routes through a central server. Search queries and download URLs go straight from your machine to those sources.
Disclaimer
This tool is for educational and personal use. Respect copyright laws in your jurisdiction. The authors are not responsible for misuse.
License
MIT
