What is tldr?
tldr is the official Rust client for tldr-pages, the community-maintained collection of simplified man pages: each page is a one-line description of a command followed by a handful of the examples people actually type. The upstream project is called tlrc, the package and the command are both tldr. It is a single static binary with no dependencies, it keeps the whole collection in a local cache so lookups are instant and work offline, and it refreshes that cache on its own when it gets old. Pages come in platform flavours (Linux, macOS, Windows, Android, the BSDs) and in dozens of languages, output colours and layout are a TOML file, and the package ships the man page and bash, zsh and fish completions.
tldr package is a different program, the Haskell client tldr-hs, and Debian's tealdeer also installs a /usr/bin/tldr; neither is tlrc, so this repository is how you get the official client through apt.
β‘ Key Features of tldr
π Examples First
tldr tar prints the eight ways you actually use tar instead of the two hundred flags it accepts. Multi-word commands work as typed: tldr git rebase, tldr docker compose.
β‘ A Local Cache, Not a Request
The first run downloads the whole collection; every lookup after that is a file read, so a page appears before you lift your finger from Enter, on a train or behind a proxy. The cache updates itself once it is older than the age you set, or on --update.
π₯οΈ Every Platform, One Command
Pages are organised by platform. You get the Linux one by default and -p macos or -p windows when you are writing instructions for a machine that is not the one in front of you.
π Your Language
tldr-pages is translated into dozens of languages. tlrc follows LANG and LANGUAGE and falls back to English page by page, or -L picks one for a single lookup.
π Find the Page You Do Not Know
--list prints every page name for the current platform, --search looks through names and descriptions, and --info tells you how old the cache is and which languages it holds.
π¨ Yours to Configure
One config.toml: every colour and style of the rendered page, the cache age before an automatic update, the languages to download, the platform to prefer and a directory of your own pages that is searched before the cache.
apt upgrade keeps you on the latest version.
π¦ Installation from deb.griffo.io
Step 1: Add Repository
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt updateπ There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud and Zed; tldr is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.
π§© About the extrepo option. extrepo is Debian's own tool for external repositories: it writes the sources file and installs the signing key for you, checking the key against signed metadata first. This repository is registered with it as griffo, and the always-free mirror as griffo-free, so on Debian (bookworm, trixie, forky and sid) the commands above are the whole setup.
extrepo sets up the sources file and the key only, so a subscription's credentials still go in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu is not covered, because extrepo publishes metadata for Debian suites only: there, use the sudo or root commands.
Step 2: Install tldr
# Install latest tldr
# If tealdeer is installed apt removes it first: both packages
# put /usr/bin/tldr on your PATH, so this one replaces it
sudo apt install tldr
# Verify installation
tldr --version# Install latest tldr
# If tealdeer is installed apt removes it first: both packages
# put /usr/bin/tldr on your PATH, so this one replaces it
apt install tldr
# Verify installation
tldr --versionStep 3: First run
# The first lookup downloads the pages cache, so it needs
# internet access once; everything after that is local
tldr tar
# Refresh the cache by hand whenever you like
tldr --update
# Where the cache lives, how old it is and which languages it holds
tldr --info
# Every option
tldr --helpπ― Basic Usage Examples
Looking things up:
# The page for a command
tldr tar
# Subcommands, written the way you would type them
tldr git rebase
# A page for another platform
tldr -p macos brew
tldr -p windows choco
# A page in another language for one lookup
tldr -L es tar
# Every page name for this platform, and a search through
# names and descriptions when you do not know the command
tldr --list
tldr --search "compress"Shaping the output:
# Raw markdown, for piping into something else
tldr -R tar
# Drop the blank lines on a small terminal
tldr --compact tar
# No colours, for logs and scripts
tldr --color never tar
# Never touch the network, even if the cache is stale
tldr --offline tar
# Render a page you are writing before you send it upstream
tldr -r my-command.mdKeeping it yours:
# Where the config is read from, and a default to start from
tldr --config-path
mkdir -p "$(dirname "$(tldr --config-path)")"
tldr --gen-config > "$(tldr --config-path)"
# Then in config.toml: cache age before an automatic update,
# the languages to keep, the platform to prefer and the colours
# of every part of a page
# Wipe the cache if a download went wrong
tldr --clean-cacheπ§ Tool Integrations
tldr is a lookup, so it fits beside the tools you already run:
- Your shell: the package installs completions for bash, zsh and fish, so
tldr gi<tab>completes page names from the cache, andman tldris there for the client itself - fzf:
tldr --list | fzf | xargs tldris a fuzzy page picker in one line, and the--rawoutput feeds the preview pane - Fix a page:
tldr --edit tarprints a link that opens that page in the GitHub web editor, so correcting a tldr page is a pull request away - man: tldr does not replace the manual, it is the first thing to read; the full page is one
manaway once you know which flag you want - Scripts and docs:
--color neverand--rawmake the output safe to paste into a README, a ticket or a log
π Why Choose deb.griffo.io?
- Official Debian:
apt install tldrgives you tldr-hs, the Haskell client, andtealdeeris another Rust client with the same command name; neither is the official tlrc - Building from source: current, but a Rust toolchain on every machine and a binary that apt knows nothing about
- The upstream release tarball: the same static binary, but unpacked by hand into your PATH, with no completions, no man page and no updates
- deb.griffo.io: latest version with automatic updates
- β The Official Client: tlrc, the client the tldr-pages project maintains, not one of the many reimplementations
- β
The Command Is tldr: the package is called tldr because that is the command, and it conflicts with and replaces
tealdeerso there is never a fight over/usr/bin/tldr - β Automatic Updates: packages updated within hours of upstream releases, and the pages cache updates itself on top
- β Complete Package: the binary, the man page and the bash, zsh and fish completions
- β Zero Dependencies: a statically linked musl binary, nothing else is pulled in
- β Two Architectures: amd64 and arm64, the same static binary on every suite
- β Multi-Distribution: works on Debian 13 (trixie) or newer: Trixie, Forky and Sid
- β Easy Maintenance: standard apt commands for updates
π¦ Package Build Repository
The Debian packages are automatically built and maintained in this GitHub repository:
- π tldr-debian - Latest release builds
π Related Packages
Also available from deb.griffo.io:
- fzf Fuzzy Finder - Turns
tldr --listinto an interactive page picker - ripgrep - The search tool whose own tldr page you will read first
- eza - Modern ls, another command with far fewer flags to remember
- zoxide - A smarter cd for the shell you are reading the pages in
π Support This Project
If this repository saves you time and effort, please consider supporting it!