Hey there! Some of you may have seen my post from a couple weeks ago to the open source community about this project, if you haven’t, feel free to go there and read it for some context.
But for a quick rundown: A friend of mine showed me how both the official clients and the actual tldr-pages repo either openly took AI submissions, or had a relaxed/non-existant AI policy. She also pointed me to ethical-tldr, which is a repo committed to removing all of the AI submissions from tldr, they have their own client forked from the official, but since it’s still written in python, it’s slow, (and python is very tainted). Thus, I decided to learn C from scratch over just a couple of days, and wrote my own client. Hence, my client is called cldr, opposed to tldr.
Now, let’s look at what makes cldr better than tldr. And yes, this is absolutely me “shilling out” for my project, I think it’s awesome and I want people to use it!
For some direct statistics: at best, when printing a page, tldr is 20 times slower than cldr, but on some systems, (my laptop), it can be over 150 times slower, taking 200ms compared to cldr’s 1-2ms. tldr is slow enough to see a very noticeable gap between the moment you run the command and when it actually prints the page. cldr is also smaller than tldr! Taking only 55kB opposed to the 100+kB of tldr.
cldr just overall has a much more polished user experience, with a cleaner interface (compare cldr --list -p common to tldr --list -p common), detailed error messages and debug logs, and when something goes wrong, cldr gives you suggestions on how you can fix it.
By the way, if you don’t want the fancy visuals (maybe you’re scripting) just add --plain to your arguments.
cldr adds the notes feature, allowing you to write as much additional information about a command as you want. For example, if you frequently use a special ffmpeg command, but can never remember it, just write a note about it! And hey, you can make the note as fancy as you’d like, with all of the formatting of normal page files. To get an in-depth lesson on how to write formatted notes, run cldr --help-notes.
cldr also lets you customize the rendering even more than tldr, you can choose from many different colors, backgrounds, and formatting keys to make different parts of pages look however you want! You can run cldr --colors to see everything available!
cldr stores the database of pages locally at $HOME/.local/share/cldr (this can be customized!) instead of tldr’s default behavior of fetching the pages over the internet, this leads to much faster loading, and means you don’t need an internet connection to use cldr.
And best of all, cldr was (and always will be) developed without the usage of any generative ai.
Oh and, by the way, cldr is a direct replacement for tldr in the command line, meaning for *any command you’d run in tldr, you can simply replace the ‘t’ with a ‘c’ and it will work the exact same.
*The only exceptions to this are with -s/--source, -s must instead be changed to -S, AND, while writing this, I realized that the source functionality is broken. Also, -c/--color and -r/--render are not implemented, because I couldn’t even notice them doing anything in the original client.
ETA: I didn’t really make it clear in this post, but cldr uses ethical-tldr pages by default, but if you wish, you can use parameters/env vars to change the source for the pages.
Fantastic work! Thank you.
Thanks for this. Just tested it on my system and it’s amazing.
I’m glad you like it! Keep an eye out for the next release! Today (or maybe tomorrow, or some other soon day) I’ll be releasing v1.8, which is gonna have some awesome features! Namely, reading settings from a config file!
I’ll definitely be waiting for it since it didn’t work on one of my machines, not sure why.
Hmm, how did you install it? Did you build it from source? Or did you use one of the prebuilt binaries/packages?
Most likely, if it isn’t working now, it still won’t work when I release v1.8
Looks interesting, I’ll definitely check it out later.
Re: local pages as opposed to always downloading them Thank you, that always bothered me about tldr - always wasting my time.
Edit: also thanks for the link to ethical-tldr
Re: local pages as opposed to always downloading them Thank you, that always bothered me about tldr - always wasting my time.
100%, it’s so slow. And tbh, my comparisons with the speed of
cldrare also being extremely generous (in favor oftldr), by only comparing the speed of local page reading. If I were to instead just compare the speed of choosing a random command that’s never been accessed before,cldrwould likely be 2000-4000 times faster, since it usually takes less than a millisecond to run, whereastldrcan take 2-4 seconds to fetch the page.
neat!
Do you know https://github.com/tealdeer-rs/tealdeer?
They say “AI usage is discouraged”. Too relaxed of a policy for you already?
I do know about tealdeer! However:
1: While AI usage in tealdeer is discouraged, it’s not heavily restricted/disallowed. 2: tealdeer is not an official client! And therefore isn’t one of the clients I’m comparing
cldrto. 3: Rust is very supportive of AI usage, and is pretty tainted.(Also, after testing,
tealdeeris still at least 10x slower thancldr)fine :) thanks
I’m guessing she doesn’t like it because Rust is tAInted? Not sure though.
Partially correct, see my response for more info
Thanks!







