Tldr - ๐Ÿ“š Collaborative cheatsheets for console commands

Overview

What is tldr-pages?

The tldr-pages project is a collection of community-maintained help pages for command-line tools, that aims to be a simpler, more approachable complement to traditional man pages.

Maybe you are new to the command-line world? Or just a little rusty? Or perhaps you can't always remember the arguments to lsof, or tar?

It certainly doesn't help that the first option explained in man tar is:

-b blocksize
   Specify the block size, in 512-byte records, for tape drive I/O.
   As a rule, this argument is only needed when reading from or writing to tape drives,
   and usually not even then as the default block size of 20 records (10240 bytes) is very common.

There seems to be room for simpler help pages, focused on practical examples. How about:

animated svg of the tldr client displaying the tar command

This repository is just that: an ever-growing collection of examples for the most common UNIX, Linux, macOS, SunOS and Windows command-line tools.

How do I use it?

A popular and convenient way to access these pages on your computer is to install the Node.js client, which is supported by the tldr-pages project maintainers:

npm install -g tldr

You can also use the fully-featured official Python client which can be installed via pip3.

pip3 install tldr

That way you can write tldr tar in the terminal to show the tldr page for tar, just like you would write man tar to show its manpage.

However, if you just want to browse without installing anything, check out the PDF version.

There are also various other clients provided by the community, both for the command-line and for other platforms. For a comprehensive list of clients, head over to our Wiki.

How do I contribute?

  • Your favourite command isn't covered?
  • You can think of more examples for an existing command?

All tldr pages are kept as Markdown files right here in this repository, so you can edit them directly and submit your changes as pull requests.

All contributions are welcome! We strive to maintain a welcoming and collaborative community. Have a look at the contributing guidelines, and go ahead!

If you'd like to contribute to translations, you can visit https://lukwebsforge.github.io/tldri18n/ to see the current progress of all translations.

Similar projects

  • Bro pages are a highly readable supplement to man pages. Bro pages show concise, common-case examples for Unix commands. The examples are submitted by the user base, and can be voted up or down; the best entries are what people see first when they look up a command.

  • Cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember.

  • cheat.sh Aggregates cheat sheets from multiple sources (including tldr-pages) into 1 unified interface.

  • devhints Rico's cheatsheets are not just focused on the command-line and include a plethora of other cheatsheets related to programming.

  • eg provides detailed examples with explanations on the command-line. Examples come from the repository, but eg supports displaying custom examples and commands alongside the defaults.

  • kb is a minimalist command-line knowledge base manager. kb can be used to organize your notes and cheatsheets in a minimalist and clean way. It also supports non-text files.

  • navi is an interactive cheatsheet tool, which allows you to browse through specific examples or complete commands on the fly.

What does "tldr" mean?

TL;DR stands for "Too Long; Didn't Read". It originated as Internet slang, where it is used to indicate that a long text (or parts of it) has been skipped as too lengthy. Read more in How-To Geek's article.

Comments
  • [RFC] new syntax for pages

    [RFC] new syntax for pages

    I'm opening this to serve as a discussion thread to decide whether we might want to simplify the pages' syntax.

    The proposal is inspired on Inkscape's man page (source code), and uses a format that I believe is more readable for humans and machines alike, for several reasons:

    • the main heading is changed from a # prefix to a row of ==== underneath, which makes it stand out more in plain text mode;
    • the current syntax involves bullet (unordered) lists of command descriptions with code samples --the actual commands-- between them (rather than within each list item), which is both visually distracting in most markdown renderers, and semantically incorrect;
    • the bullet list syntax was changed to plain paragraphs, which solves both the semantic issue, and a syntactic issue with some renderers not recognizing the code block if preceded by a list entry (case in point, from PR #758)
    • the example code is now indented, so each description/code pair stands out better in the markdown source, and we can easily jump visually from example to example;
    • the adding of indentation triggers markdown's code block formatting, so now we don't have to wrap the examples in backticks (which have been the source of many linting errors)
    • by forgoing the backticks, the examples can be directly copied from the source markdown without the need to remove the backticks manually, which is more cumbersome than e.g. replacing tokens;
    • since the markdown is more readable, clients don't need to be as sophisticated, opening the door to dumb "clients" like the one proposed in #527.

    All in all, I believe this makes the pages be more inline with the markdown philosophy, which is to be human-readable, without the need for a renderer/client. Compare the plaintext source: before, after; and the github-rendered output: before, after.

    But before this is discussed, we must come to agreement regarding which clients are officially supported, and what benchmark we'll hold third-party clients to in order to consider them semi-supported (i.e. we'd pledge not to break them without ample prior warning). Such an agreement might result in the clients currently in the tldr-pages umbrella going back to their original authors, or important third-party adopted under the tldr-pages umbrella (e.g. @ostera's tldr.jsx). Either option would simplify the way the project handles clients, by having a single client management model and a clear standard for clients to match. I'll open the discussion later (probably in a few weeks, as I currently don't have the time to get involved too deeply).

    syntax waiting decision mass changes 
    opened by waldyrious 128
  • Define the brand name of the project

    Define the brand name of the project

    I noticed many names are used for this project, so I think it should be clarified. For example, you can find TL;DR pages, tldr, tldr pages and TLDR pages in various documents and website.

    My suggestion is to use and tldr for the name of npm package and TLDR pages or tldr pages for everything else. How does that sound?

    decision 
    opened by zlatanvasovic 99
  • New pages structure

    New pages structure

    (copied form the conversation at #147)

    The current folder structure looks like:

    pages
      |__ common
      |   |__ tar.md         # gnu command everyone should have
      |   |__ ssh.md         # gnu command everyone should have
      |   |__ npm.md         # just a tool that could be installed on any OS
      |__ linux
      |   |__ emerge.md      # clearly a linux-only tool
      |__ osx
          |__ ssh.md         #  OSX has a different version with different flags
    

    This has worked so far, but

    • the split can feel arbitrary
    • you need to jump around to see if a command is already covered
    • clients potentially need to make a lot of requests to get a given page

    There seems to be a consensus among clients to move to a flatter folder structure, that would look like this:

    pages
       |__ tar.md
       |__ ssh.md
       |__ ssh.osx.md
       |__ emerge.md
       |__ npm.md
    

    By default, we can display <command>.md, but <command>.<os>.md should have precedence if available.

    This means the clients would let OSX users query Linux commands, but after all why not, they might just be curious about it. Or they might be using tldr on a Mac while SSHing on a Linux box that doesn't have it.

    To clear up platform constraints, the description for emerge for example could say "for Linux" or "Gentoo specific command".

    This would be a breaking change though, so we need a plan of attack. One option is to address all open PRs to get to a stable state, then copy all pages to the new structure. The old structure can live on for a while until all clients update. The PR guidelines would say to push changes to the new structure only.

    architecture decision 
    opened by rprieto 82
  • Chinese pages: correct Chinese punctuation

    Chinese pages: correct Chinese punctuation

    Attempt to correct and normalize Chinese punctuation across all Chinese pages.

    Note: I'm not a Chinese speaker, so there may be mistakes.

    cc @einverne @mebeim cc @gyli @wizarot @starccy @ChungZH @zhouLion @xiaolong-666 @sandylaw @shanoaice @telnetning

    Refs: #2897 #3426 #3442

    What I've done so far:

    • Change colons before "More information" links to Chinese colon
    • Change colons at the end of example descriptsion to English colon per @mebeim's comment

    Questions:

    • What should period be at the end of page sentences in page descriptions? for sentences that end with English letters? for sentences that end with Chinese letters?
    mass changes translation 
    opened by bl-ue 77
  • Define a brand image and logo

    Define a brand image and logo

    GitHub have recently added a new feature to the repository settings known as social preview:

    image

    Here's the associated blog post.

    Should tldr-pages have a social preview image? If so, what image or screenshot should we use?

    decision community 
    opened by sbrl 74
  • Define spec for officially sanctioned clients

    Define spec for officially sanctioned clients

    Background:

    • https://github.com/tldr-pages/tldr/pull/744
    • https://github.com/tldr-pages/tldr/wiki/Minimum-specifications-for-TLDR-command-line-clients
    documentation architecture clients decision 
    opened by waldyrious 64
  • Change main client to tldr-cpp-client

    Change main client to tldr-cpp-client

    The tldr c client is now in the homebrew core available, and can simply be installed via

    brew install tldr
    

    without any taps required.

    What's your opinion on promoting it more?

    clients decision 
    opened by Leandros 58
  • Add localization support with po4a.

    Add localization support with po4a.

    Hello @sbrl Pull request is created as you asked. I also generate an initial POT file for translators. More information in https://github.com/tldr-pages/tldr/issues/2339#issuecomment-451690015.

    waiting tooling translation 
    opened by urbalazs 52
  • Support for multiple (human) languages

    Support for multiple (human) languages

    It would be nice if tldr pages existed in other (human) languages too, and not just English. Is there any plan for tldr pages to support multiple languages?

    architecture decision translation 
    opened by arunisaac 52
  • Add GitHub Sponsorship to tldr pages?

    Add GitHub Sponsorship to tldr pages?

    This is something that came up from a mention of the Sponsor button by @mebeim in Gitter: https://gitter.im/tldr-pages/tldr?at=5cf6cc683dcdab4003ed929d

    Sponsor Button Preview

    This is part of the new GitHub Sponsors program, which is in beta.

    At the moment, the GitHub Sponsors program probably isn't the best solution for tldr pages as it is more suited for individual sponsorships, and only supports up to 4 usernames per repository. Quite a few other projects are using OpenCollective as this works better for more people in an organisation. Although, GitHub mentions in their FAQ that:

    GitHub is exploring ways to introduce sponsorships for teams of people that work on a single project.

    To get started with adding sponsorship, we'd need to add a new YAML config in .github/FUNDING.yml. Currently it supports the following entries:

    
    github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
    patreon: # Replace with a single Patreon username
    open_collective: # Replace with a single Open Collective username
    ko_fi: # Replace with a single Ko-fi username
    tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
    community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
    liberapay: # Replace with a single Liberapay username
    issuehunt: # Replace with a single IssueHunt username
    otechie: # Replace with a single Otechie username
    custom: # Replace with a single custom sponsorship URL
    
    
    decision community 
    opened by owenvoke 46
  • Add links to the tools' homepages/websites

    Add links to the tools' homepages/websites

    Firstly, great tool. Thanks for creating it.

    Some tools are pretty obsucure. In my case it was x_x. I came accross it by acident but I'm glad I did. The description caught my interest but searching for the repo wasn't as easy as a websearch.

    It would be very helpful in this case, and I am sure others, if the pages included a link to a repo or a project page.

    clients syntax 
    opened by Jab2870 46
  • ansible-doc: add Spanish translation

    ansible-doc: add Spanish translation

    • [x] The page(s) are in the correct platform directories: common, linux, osx, windows, sunos, android, etc.
    • [ ] The page(s) have at most 8 examples.
    • [x] The page description(s) have links to documentation or a homepage.
    • [x] The page(s) follow the content guidelines.
    • [ ] The PR title conforms to the recommended templates.
    • Version of the command being documented (if known):
    translation 
    opened by kant 0
  • style-guide: refresh page: add rule for ellipsis for unsplittable objects

    style-guide: refresh page: add rule for ellipsis for unsplittable objects

    • [ ] The page(s) are in the correct platform directories: common, linux, osx, windows, sunos, android, etc.
    • [ ] The page(s) have at most 8 examples.
    • [ ] The page description(s) have links to documentation or a homepage.
    • [ ] The page(s) follow the content guidelines.
    • [ ] The PR title conforms to the recommended templates.
    • Version of the command being documented (if known):

    Notes

    This PR addresses this problem when it's not specified how to describe collection of characters (or other unsplittable objects). It's not possible to write smth like this: {{char1 char2 ...}} as it will be interpreted as a collection of space delimited characters which breaks expr index command. Or even worth it can be interpreted (it's not a generic placeholder, so interpretation is undefined and is up to contributors) as a some string literal consisting of 4 characters: c, h, a and r and some suffix (possibly number).

    documentation 
    opened by EmilySeville7cfg 0
  • git credential-cache: add page

    git credential-cache: add page

    • [x] The page(s) are in the correct platform directories: common, linux, osx, windows, sunos, android, etc.
    • [x] The page(s) have at most 8 examples.
    • [x] The page description(s) have links to documentation or a homepage.
    • [x] The page(s) follow the content guidelines.
    • [x] The PR title conforms to the recommended templates.
    • Version of the command being documented (if known):

    #3953

    new command 
    opened by EmilySeville7cfg 0
  • salloc, sattach, sh5util, sprio, sshare: add pages

    salloc, sattach, sh5util, sprio, sshare: add pages

    • [ ] The page(s) are in the correct platform directories: common, linux, osx, windows, sunos, android, etc.
    • [x] The page(s) have at most 8 examples.
    • [x] The page description(s) have links to documentation or a homepage.
    • [x] The page(s) follow the content guidelines.
    • [x] The PR title conforms to the recommended templates.
    • Version of the command being documented (if known):

    closes #2068

    new command 
    opened by EmilySeville7cfg 1
  • vso: add page

    vso: add page

    Signed-off-by: K.B.Dharun Krishna [email protected]

    • [x] The page(s) are in the correct platform directories: linux.
    • [x] The page(s) have at most 8 examples.
    • [x] The page description(s) have links to documentation or a homepage.
    • [x] The page(s) follow the content guidelines.
    • [x] The PR title conforms to the recommended templates.
    • Version of the command being documented (if known): 1.1.4

    Closes #9726

    All options on this page are listed at https://documentation.vanillaos.org/docs/vso/manpage (I wrote the manpage myself ?? )

    new command 
    opened by kbdharun 0
  • coursier: add new documentation pages

    coursier: add new documentation pages

    • [x] The page(s) are in the correct platform directories: common, linux, osx, windows, sunos, android, etc.
    • [x] The page(s) have at most 8 examples.
    • [x] The page description(s) have links to documentation or a homepage.
    • [x] The page(s) follow the content guidelines.
    • [x] The PR title conforms to the recommended templates.
    • v2.1.0-RC4
    new command review needed 
    opened by eliax1996 10
Releases(v1.5b)
  • v1.5b(May 1, 2021)

    Calling all maintainers of both clients and tldr alike!

    The master branch has now been renamed to main.

    Client authors

    While a new mirror branch master that reflects main has been created, please update your clients if required to default to main instead of master. In the future the master mirror branch will be deleted.

    Note though that it is RECOMMENDED that you download our tldr.zip instead of cloning this repository, as per our client specification if appropriate.

    tldr maintainers

    All existing PRs and branch protection rules have been updated.

    Please watch out for new PRs that merge against master, as I have been unable to create a branch protection rule on master that doesn't also block GitHub Actions from pushing to it.

    Source code(tar.gz)
    Source code(zip)
  • v1.5(Mar 20, 2021)

Owner
tldr pages
:books: Collaborative cheatsheets for console commands
tldr pages
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 369 Jan 2, 2023
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 227 Jun 1, 2022
Console progress bar for Rust

Terminal progress bar for Rust Console progress bar for Rust Inspired from pb, support and tested on MacOS, Linux and Windows Documentation Examples s

Ariel Mashraki 507 Dec 22, 2022
๐ŸŒˆ Brings back colour console to Win64 for Garry's Mod SRCDS

?? gmsv_concolormsg This module for Garry's Mod fixes x86-64 Windows 64-bit SRCDS not displaying colours. Why does it do that? Who knows! But it's eas

William 11 Oct 4, 2022
Simple console input macros with the goal of being implemented in the standard library.

Simple console input macros with the goal of being implemented in the standard library.

undersquire 2 Feb 10, 2022
A panic hook for wasm32-unknown-unknown that logs panics with console.error

console_error_panic_hook This crate lets you debug panics on wasm32-unknown-unknown by providing a panic hook that forwards panic messages to console.

Rust and WebAssembly 241 Jan 3, 2023
Wena is a micro-framework that provides an elegant starting point for your console application.

Wena was created by Nuno Maduro, and is a Rust Lang micro-framework that provides an elegant starting point for your console application. This project

null 251 Dec 11, 2022
Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit.

termpause Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit. Usage Add this in your

Just Said 4 Sep 21, 2022
An ascii webcam in your console, written as a way of learning rust.

asciicam An ascii webcam in your console, written as a way of learning rust. asciicam picture of me holding a basketball usage only linux is supported

Vilhelm Bergsรธe 3 Nov 15, 2022
scan markdown files and execute `console` blocks

exec-commands โˆ’ scan markdown files and execute console blocks exec-commands is a utility to update command-line-tool examples embedded in markdown fi

Hajime Suzuki 3 Nov 27, 2022
Logging for text that should stay in the same place in a console.

console_static_text Crate for logging text that should stay in the same place in a console. This measures words to handle wrapping and has some consol

David Sherret 8 Dec 25, 2022
A blazingly fast rust-based bionic reader for blazingly fast reading within a terminal console ๐Ÿฆ€

This Rust-based CLI tool reads text and returns it back in bionic reading format for blazingly fast loading and even faster reading! Bionic reading is

Ismet Handzic 5 Aug 5, 2023
Turn static CLI commands into TUIs with ease

lazycli Turn static CLI commands into TUIs with ease Demo: Usage Pick a command that spits out either a list or table of content, like ls, docker ps,

Jesse Duffield 255 Dec 20, 2022
๐Ÿข Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
๐Ÿค– just is a handy way to save and run project-specific commands.

just just is a handy way to save and run project-specific commands. (้žๅฎ˜ๆ–นไธญๆ–‡ๆ–‡ๆกฃ,่ฟ™้‡Œ,ๅฟซ็œ‹่ฟ‡ๆฅ!) Commands, called recipes, are stored in a file called justfile

Casey Rodarmor 8.2k Jan 5, 2023
1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel

massh 1 library and 2 binary crates to run SSH/SCP commands on a "mass" of hosts in parallel. The binary crates are CLI and GUI "frontends" for the li

null 2 Oct 16, 2022
๐ŸŒŒโญcosmo is a wrapper for Git essentially, allowing you to compress multiple commands into one

โฏ Cosmo Git tooling of the future New feature: Cosmo hooks! Click here for more info! โฏ ?? Features Config files (with defaults!) Fast Easy to use Fri

Jack 1 Oct 31, 2021
Save cli commands and fuzzy find them later

crow - cli command memorizer What is crow? | Installation | Usage | FAQ What is crow? crow (command row) is a CLI tool to help you memorize CLI comman

sandstorm 7 Feb 17, 2022
koyo is a cli tool that lets you run commands as another user. It is similar to doas or sudo.

koyo is a cli tool that lets you run commands as another user. It is similar to doas or sudo.

null 3 Nov 27, 2021