Command line interface to LastPass.com.
Download the latest pre-built binaries from the Releases page:
- Linux x86_64:
lpass-linux-x86_64.tar.gz
- Linux ARM64:
lpass-linux-arm64.tar.gz
- macOS:
lpass-macos.tar.gz
- Windows:
lpass-windows.zip
Extract the binary and place it in your PATH.
Run with Docker:
# Latest version
docker run --rm -it ghcr.io/fragolinux/lastpass-cli:latest
# Specific version
docker run --rm -it ghcr.io/fragolinux/lastpass-cli:1.0.0
lpass
is designed to run on GNU/Linux, Cygwin and Mac OS X.
- LibreSSL or OpenSSL
- libcurl
- libxml2
- pinentry (optional)
- AsciiDoc (build-time documentation generation only)
- xclip, xsel, pbcopy, or putclip from cygutils-extra for clipboard support (optional)
- A binary package is available from the community repository, use pacman to simple install lastpass-cli.
- Can be build from source with the "lastpass-cli-git" *Arch User Repository (AUR). Information about installing packages from the AUR can be found on the Arch wiki.
# from community repository
sudo pacman -S lastpass-cli
# from AUR repository
packer -S lastpass-cli-git
- Packages are available in Fedora 22 and later.
sudo dnf install lastpass-cli
- Packages are available in EPEL for RHEL/CentOS 7 and later.
sudo yum install lastpass-cli
- For older versions: Install the needed build dependencies, and then follow instructions in the 'Building' section.
sudo yum install openssl libcurl libxml2 pinentry xclip openssl-devel libxml2-devel libcurl-devel gcc gcc-c++ make cmake
-
Install the needed build dependencies, and then follow instructions in the 'Building' section.
-
For Ubuntu 16.04 (xenial)
apt-get --no-install-recommends -yqq install \
bash-completion \
build-essential \
cmake \
libcurl3 \
libcurl3-openssl-dev \
libssl1.0.0 \
libssl-dev \
libxml2 \
libxml2-dev \
pkg-config \
ca-certificates \
xclip
- For Debian (stable/oldstable) and other Ubuntus < 18.04
apt-get --no-install-recommends -yqq install \
bash-completion \
build-essential \
cmake \
libcurl3 \
libcurl3-openssl-dev \
libssl1.0 \
libssl1.0-dev \
libxml2 \
libxml2-dev \
pkg-config \
ca-certificates \
xclip
- For Debian (testing/experimental) and Ubuntu >= 18.04
apt-get --no-install-recommends -yqq install \
bash-completion \
build-essential \
cmake \
libcurl4 \
libcurl4-openssl-dev \
libssl-dev \
libxml2 \
libxml2-dev \
libssl1.1 \
pkg-config \
ca-certificates \
xclip
- Install the package:
sudo emerge lastpass-cli
Install the packages listed in the Dependencies section of this document, and then follow instructions in the 'Building' section.
With Homebrew (easiest)
- Install Homebrew, if necessary.
- Update Homebrew's local formula cache:
brew update
- Install the lastpass-cli formula:
brew install lastpass-cli
With MacPorts
- Install MacPorts, if necessary.
- Update MacPorts' local ports tree:
sudo port selfupdate
- Install the lastpass-cli port:
sudo port install lastpass-cli
- Optionally install the documentation:
sudo port install lastpass-cli-doc
Install the packages listed in the Dependencies section of this document, and then follow instructions in the 'Building' section.
- Install the binary package:
sudo pkg install security/lastpass-cli
- Or build the port yourself:
sudo make -C /usr/ports/security/lastpass-cli all install clean
- Install apt-cyg
- Using apt-cyg, install the needed build dependencies, and then follow instructions in the 'Building' section.
apt-cyg install wget make cmake gcc-core gcc-g++ openssl-devel libcurl-devel libxml2-devel libiconv-devel cygutils-extra
$ make
Under the covers, make invokes cmake in a build directory; you may also use cmake directly if you need more control over the build process.
$ sudo make install
These environment variables can be passed to make to do the right thing: PREFIX
, DESTDIR
, BINDIR
, LIBDIR
, MANDIR
.
If you've installed it:
$ lpass
Otherwise, from the build directory:
$ ./lpass
Install asciidoc
and xsltproc
if they are not already installed.
$ sudo apt-get install asciidoc xsltproc
The install-doc
target builds and installs the documentation.
$ sudo make install-doc
Once installed,
$ man lpass
You can view the full documentation in the manpage, man lpass
or view it online.
Pre-built multi-architecture Docker images are available from GitHub Container Registry:
# Pull the latest image
docker pull ghcr.io/fragolinux/lastpass-cli:latest
# Run lpass directly
docker run --rm -it ghcr.io/fragolinux/lastpass-cli:latest --help
# Login to LastPass (interactive)
docker run --rm -it -v ~/.lpass:/root/.lpass ghcr.io/fragolinux/lastpass-cli:latest login [email protected]
# Export data with volume mapping
docker run --rm -v ~/.lpass:/root/.lpass -v $(pwd)/output:/output ghcr.io/fragolinux/lastpass-cli:latest export > /output/export.csv
The Docker image includes:
- lastpass-cli: The main LastPass command-line interface
- jq: JSON processor for data manipulation
- yq: YAML processor
- keepassxc-cli: KeePassXC command-line interface
- All contrib scripts: Including conversion and utility scripts
Map local directories to work with your data:
/backup
- Input directory for data to be processed/output
- Output directory for processed results/logs
- Directory for log files/data
- Working directory for temporary files/root/.lpass
- LastPass session and configuration
Use the provided docker-compose.yml
for automated processing:
# Create required directories
mkdir -p backup output logs data
# Run the automated processor
docker-compose up lastpass-processor
# Or run in interactive mode for manual operations
docker-compose --profile manual up lastpass-cli-manual
# Connect to the running container
docker-compose --profile manual exec lastpass-cli-manual bash
The image includes all scripts from the contrib/
directory. You can override the entrypoint to run custom scripts:
# Run a specific contrib script
docker run --rm -v $(pwd)/data:/data ghcr.io/fragolinux/lastpass-cli:latest /usr/local/share/lastpass-cli/contrib/your-script.sh
# Use as a base for your own automation
docker run --rm -it -v $(pwd):/workspace ghcr.io/fragolinux/lastpass-cli:latest bash -c "
cd /workspace
# Your custom commands here
lpass export --format=json > backup.json
jq '.[] | select(.folder == \"Important\")' backup.json > important.json
"
When using docker-compose, you can set these environment variables:
BACKUP_DIR
: Source directory for input files (default:/backup
)OUTPUT_DIR
: Destination directory for processed files (default:/output
)LOGS_DIR
: Directory for log files (default:/logs
)DEVELOPMENT_MODE
: Set totrue
to keep container running for debugging
# Place your LastPass JSON export in ./backup/
echo '{"export": "data"}' > backup/lastpass-export.json
# Run the conversion
docker-compose up lastpass-processor
# Check results in ./output/ and logs in ./logs/
# Start an interactive session
docker run --rm -it \
-v $(pwd)/backup:/backup \
-v $(pwd)/output:/output \
-v ~/.lpass:/root/.lpass \
ghcr.io/fragolinux/lastpass-cli:latest bash
# Inside the container, you can use all tools:
# lpass login [email protected]
# lpass export --format=json | jq '.[] | select(.folder == "Work")' > /output/work-passwords.json
# keepassxc-cli create /output/work-passwords.kdbx