lbxd is a beautiful command-line tool written in Rust that brings Letterboxd to your terminal. View any user's activity, browse collections interactively, and explore movie data with rich terminal displays.
Website Β· crates.io Β· Docs Β· Installation
βββ βββββββ βββ ββββββββββ
βββ ββββββββββββββββββββββββ
βββ ββββββββ ββββββ βββ βββ
βββ ββββββββ ββββββ βββ βββ
ββββββββββββββββββββ βββββββββββ
βββββββββββββββ βββ ββββββββββ
Letterboxd in your terminal
- π Interactive TUI: Browse complete movie collections with a beautiful terminal interface
- π½οΈ Recent Activity: View any user's recent movies, ratings, and reviews
- π Search: Find specific titles in user activity history
- π¬ Movie Database: Search TMDB for detailed movie information
- π€ Export: Export user data to JSON or Markdown formats
- βοΈ Configuration: Persistent settings and user preferences
- πΎ Caching: Offline access with intelligent data caching
- π¨ Beautiful Display: Rich terminal output with ASCII art and colors
- β‘ Fast: Built in Rust for maximum performance and reliability
One-line installation:
# Unix/Linux/macOS
curl -sSL https://raw.githubusercontent.com/Pranav-Karra-3301/lbxd/main/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/Pranav-Karra-3301/lbxd/main/install.ps1 | iexπ For detailed installation instructions across all platforms and package managers, see INSTALLATION.md
Cargo (crates.io):
cargo install lbxdHomebrew (macOS/Linux):
brew tap pranav-karra-3301/lbxd
brew install lbxdFormula maintained at: homebrew-lbxd
Chocolatey (Windows):
choco install lbxdWinget (Windows):
winget install Pranav-Karra-3301.lbxdPrerequisites:
- Rust 1.88.0 or later
- Git
- viu (required for poster display)
Build steps:
# Clone the repository
git clone https://github.com/Pranav-Karra-3301/lbxd.git
cd lbxd
# Install viu (required)
# macOS: brew install viu
# Cargo: cargo install viu
# Install viu if not already installed
cargo install viu
# Build and install lbxd
cargo build --release
cargo install --path .
# Verify installation
lbxd --versionDevelopment build:
# Clone and enter directory
git clone https://github.com/Pranav-Karra-3301/lbxd.git
cd lbxd
# Install dependencies
pip3 install letterboxdpy
# Run in development mode
cargo run -- --help
# Run tests
cargo test
# Build optimized release
cargo build --releaseDownload prebuilt binaries from the releases page:
- Linux:
lbxd-linux-x86_64.tar.gz - macOS Intel:
lbxd-macos-x86_64.tar.gz - macOS Apple Silicon:
lbxd-macos-aarch64.tar.gz - Windows:
lbxd-windows-x86_64.exe.zip
Required:
viufor terminal image display
Built-in:
- rustboxd for Letterboxd data access
- Modern terminal with Unicode support
No setup required:
- β No API keys needed (built-in defaults provided)
- β No Xcode or complex dependencies
- β Works immediately after installation
# Show version and help
lbxd
# Browse a user's collection interactively
lbxd browse username
# Show profile stats
lbxd username# Launch interactive TUI for browsing complete collections
lbxd browse username# Show recent activity for a user
lbxd recent username
# Limit to 10 most recent entries
lbxd recent username --limit 10
# Show only rated films
lbxd recent username --rated
# Show only reviewed films
lbxd recent username --reviewed
# Filter by specific date
lbxd recent username --date 2024-01-15# Search for movies in user's activity
lbxd search username "blade runner"
# Search TMDB movie database
lbxd movie "dune 2021"# Export to JSON
lbxd export username --format json --output data.json
# Export to Markdown
lbxd export username --format markdown --output report.md# Show current settings
lbxd config show
# Set default username
lbxd config set-user myusername
# Check saved username
lbxd config whoamiββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π½οΈ username Activity
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¬ Blade Runner 2049 (2017)
β β
β
β
β
β
(5.0/5)
β₯ Liked
π A stunning sequel that honors the original while expanding the universe...
π
January 15, 2024
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¬ Dune (2021)
β β
β
β
β
β (4.5/5)
π Villeneuve's adaptation is visually breathtaking...
π
January 14, 2024
lbxd automatically creates a cache directory at ~/.cache/lbxd/ to store user data for offline access. Cache entries expire after 6 hours to ensure fresh data.
lbxd comes with built-in API keys for TMDB and OMDB, so it works out of the box without any configuration. If you want to use your own API keys, you can set environment variables:
# Optional: Use your own TMDB API key
export TMDB_API_KEY="your_tmdb_api_key_here"
# Optional: Use your own OMDB API key
export OMDB_API_KEY="your_omdb_api_key_here"For detailed API key configuration, see the API Keys Guide.
# Works immediately with default keys
lbxd recent username
# Optional: Use your own TMDB API key
export TMDB_API_KEY="your_key_here"
lbxd movie "Inception"
# See examples/api-key-demo.sh for more configuration optionsPrerequisites:
- Rust 1.88.0 or later
- Git
- viu (required for poster display)
Development setup:
# Clone the repository
git clone https://github.com/Pranav-Karra-3301/lbxd.git
cd lbxd
# Install viu (required)
# macOS: brew install viu
# Cargo: cargo install viu
# Install viu if not already installed
cargo install viu
# Run in development mode
cargo run -- --help
# Run tests
cargo test
# Run linting
cargo clippy
# Format code
cargo fmt
# Build optimized release
cargo build --releaseProject Structure:
src/
βββ main.rs # CLI entry point and version display
βββ lib.rs # Library root
βββ cli/ # Command-line interface definitions
βββ tui/ # Interactive terminal user interface
βββ display/ # Terminal output and styling
βββ letterboxd_client/ # Letterboxd data integration
βββ tmdb/ # The Movie Database API client
βββ omdb/ # Open Movie Database integration
βββ feed/ # RSS feed parsing
βββ models/ # Data structures and types
βββ cache/ # Intelligent caching system
βββ config/ # Configuration management
βββ export/ # Data export functionality
Environment Variables:
# Optional: Use your own API keys
export TMDB_API_KEY="your_tmdb_api_key_here"
export OMDB_API_KEY="your_omdb_api_key_here"
# Development logging
export RUST_LOG=debugContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Letterboxd for providing RSS feeds and public data
- The Movie Database (TMDB) for comprehensive movie information
- Open Movie Database (OMDB) for additional movie metadata
- The Rust community for excellent crates and development tools
- rustboxd - Native Rust library for Letterboxd data (built-in)
If you encounter any issues or have questions:
- π Report bugs
- π‘ Request features
Built by Pranav Karra
