| Crates.io | littlejohn |
| lib.rs | littlejohn |
| version | 0.6.0 |
| created_at | 2026-01-10 14:54:08.386033+00 |
| updated_at | 2026-01-11 08:17:01.251276+00 |
| description | Terminal UI for littlejohn torrent search with Real-Debrid integration |
| homepage | |
| repository | https://github.com/mat-lo/littlejohn |
| max_upload_size | |
| id | 2034285 |
| size | 229,334 |
Native terminal UI for torrent search with Real-Debrid integration, written in Rust.
cargo install littlejohn
Run directly without installing:
nix run github:mat-lo/littlejohn
Or install to your profile:
nix profile install github:mat-lo/littlejohn
For development, enter a shell with all dependencies:
nix develop
cargo build --release
The binary will be at target/release/littlejohn.
Create a .env file with your settings. The app checks these locations (in order):
.env in the current directory~/.config/littlejohn/.env~/Library/Application Support/littlejohn/.env%APPDATA%\littlejohn\.envRD_API_TOKEN=your_token_here
Get your token from: https://real-debrid.com/apitoken
Optionally set a custom download directory:
DOWNLOAD_DIR=/path/to/downloads
If not set, files are saved to your system's default Downloads folder.
Some sites (Il Corsaro Nero, YTS) use anti-bot protection. Firecrawl helps bypass this:
FIRECRAWL_API_KEY=your_key_here
Get your key from: https://firecrawl.dev
Without this, Il Corsaro Nero won't work and YTS may be less reliable.
On first run, if no Real-Debrid token is configured, the app will show a setup wizard where you can enter your settings. You can also access settings anytime by pressing Shift+S from the search screen.
cargo run --release
Or run the built binary directly:
./target/release/littlejohn
| Key | Action |
|---|---|
Enter |
Search / Process magnet link |
s |
Select sources |
S |
Open settings |
d |
View downloads |
Esc |
Quit |
| Key | Action |
|---|---|
j / Down |
Move down |
k / Up |
Move up |
Enter |
Select torrent |
n |
Next page |
p |
Previous page |
s |
Select sources |
d |
View downloads |
/ |
Back to search |
q |
Quit |
| Key | Action |
|---|---|
j / Down |
Move down |
k / Up |
Move up |
Space |
Toggle file selection |
a |
Toggle all files |
Enter |
Confirm selection |
Esc |
Cancel |
| Key | Action |
|---|---|
j / Down |
Move down |
k / Up |
Move up |
s |
Start selected download |
S |
Start all downloads |
c |
Cancel selected |
C |
Cancel all |
x |
Clear completed |
Esc |
Back |
src/
├── main.rs # Application state, event loop, async messaging
├── ui.rs # Terminal UI rendering (ratatui)
├── realdebrid.rs # Real-Debrid API client
├── lib.rs # Shared types and utilities
└── scrapers/ # Site-specific scrapers
├── mod.rs # Scraper registry and common types
├── x1337.rs # 1337x scraper
├── tpb.rs # TPB scraper
├── bitsearch.rs
├── yts.rs
└── ilcorsaronero.rs
The app uses an async message-passing architecture: