Timeline of Evolution of Twtxt/Yarn.social:
- 2016 ā Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017ā2019 ā Community builds CLI tools, but adoption remains niche
- 2020 ā Yarn.social launched by @prologic@twtxt.net with federation, threading, UI
- 2021ā2023 ā Pods sync, user mentions, blocking, search, and media support added
- 2024+ ā Yarn.social becomes the reference Twtxt platform, with active federated pods
hello friends i spent a couple hours today using a random string generator by charm CLI called hotdiva2000 to make a script that 1) generates a static index.html page 2) the page is a prompt generator where all the prompts are from hotdiva2000!!!!!
this makes more sense if you look at it check it out
Show HN: Terminal dashboard that throttles my PC during peak electricity rates
Comments ā Read more
@movq@www.uninformativ.de Yeah, most of the graphical applications are actually KDE programs:
- KMail ā e-mail client
- Okular ā PDF viewer
- Gwenview ā image viewer
- Dolphin ā file browser
- KWallet ā password manager (I want to check out
pass
one day. The most annoying thing is that when I copy a password, it says that the password has been modified and asks me whether I want to save the changes. I never do, because the password is still the same. I donāt get it.)
- KPatience ā card game
- Kdenlive ā video editor
- Kleopatra ā certificate manager
Qt:
- VLC ā video player
- Psi ā Jabber client (I happily used Kopete in the past, but that is not supported anymore or so. I donāt remember.)
- sqlitebrowser ā SQLite browser
Gtk:
- Firefox ā web browser
- Quod Libet ā music player (I should look for a better alternative. Canāt remember why I had to move away from Amarok, was it dead? There was a fork Clementine or so, but I had to drop that for some unknown reason, too.)
- Audacity ā audio editor
- GIMP ā image editor
These are the things that are open right now or that I could think of. Most other stuff I actually do in the terminal.
In the pastā¢, I used the Python KDE4 bindings. That was really nice. I could pass most stuff directly in the constructor and didnāt have to call gazillions of setters improving the experience significantly. If I ever wanted to do GUI programming again, Iād definitely go that route. There are also great Qt bindings for Python if one wanted to avoid the KDE stuff on top. The vast majority I do for myself, though, is either CLI or maybe TUI. A few web shit things, but no GUIs anymore. :-)
@lyse@lyse.isobeef.org oh yeah i use the CLI sometimes itās fun af
@kat@yarn.girlonthemoon.xyz Allegedly, thereās at least a CLI for that, yarnc
. I neither used nor looked at it, though.
you know iām posting from CLI right now and i still havenāt figured out how to reply to my own post via yarnc
Web page readability on the CLI https://xnāgckvb8fzb.com/reader-web-page-readability-on-the-cli/
@andros@twtxt.andros.dev Could you share (perhaps in the extension document) the private key for alice?
I want to compare that I can read the encrypted message both from OpenSSL CLI and from the PHP OpenSSL library, following the spec.
cli/q: š± A simple programming language. - q - Projects I really like this little q lang that Ed has created ā¤ļø Really nice and simpler, great design and implementation and really lovely cross-platform compiler supporting DOS, Windows, Darwin and Linux on AMD64 and ARM64 šŖ
Introducing ralf : Rename A Lot of Files cli tool written in #c. Please, send your suggestions. https://si3t.ch/log/2025-01-27-ralf.txt
Done, I finally finished my cli renamer, something like Thunar file renamer, unsing regex. Need to write a manpage and explain how it works now. If youāre curious: https://git.sr.ht/~prx/ralf
I recently saw in my feeds a tool to see the sky map in a terminal. a Cli tool to see stars position and I hope, constellations. Do you see what I mean?
i self hosted the soft serve git server cuz i felt like it. itās sooo cute i love everything charm CLI does
ssh -p 24010 soft.git.girlonthemoon.xyz
Iām sitting in official cabal.club with nicknames doesnm and doesnm-seed from vps because canāt install cli in Termux
been playing with making fun scripts using charm CLIās gum library :P
one that gets lyrics from an open lyrics databaseās API and accepts input for artist & song names: https://asciinema.org/a/697860
and one that uses a user-provided last.fm API key to pull whatās currently playing or what last played on your account :) https://asciinema.org/a/697874
can i still post from here on cli or do i need to re-auth hmm
GUYS HELP I LOCKED MYSELF OUT OF MY ACCOUNT ON WEB AND I COULDNāT GET EMAILS WORKING IāM STUCK POSTING FROM CLI LOLLLL
iāve been transitioning CLI text editors from nano (godforsaken editor) to micro (normal and not overly opinionated to the point where i feel like iām defusing a bomb trying to learn its keybindings) and the only weird thing is that i canāt get it to persist an alias from nano to micro when i run sudo despite me configuring that. well at least on my servers, it persists on this machine. idk iāll look at it later
posting from CLI just cuz i can lalalala i have nothing to talk about
i like this little ideas utility iāve been using like i keep pulling up the idea table to see what iāve added and it makes me wanna start one of them like the CLI app i wanna write in golang with charmbraceletās bubbletea even though i only have a vague idea of what i want in a CLI app
iāve transitioned text editors from nano (yeah i know) to micro and god micro is just so much better i did not know there was a CLI text editor i could use with sensible keyboard shortcuts that did not leave me feeling like iām typing nuclear codes to do simple tasks like saving and editing
wanna play with CLI stuff or host something new⦠maybe play with that charmbracelet git server but i donāt need that lol
another cli test for icons this time
cli test 3
cli test 2
cli test
the feed is made using my own cli app called txtlog, it also supports bluesky cross-posting as well!
the feed is made using my own cli app called txtlog, it also supports bluesky cross-posting as well!
https://terokarvinen.com/2021/calendar-txt/ keep your calendar in a simple text file. I love the idea #cli
I think itās centralized shit with lying about decentralization. All network is worked by two centralized things: plc.directory (did storage?) and network relay (bsky.network). You can host your relay but this require TOO MUCH resources (2TB storage and 32GB RAM read more ). Also i try running PDS and: 1. I canāt register account via app,only via cli 2. It leaked on 2GB virtual machine then killed by oom after trying to register account via cli
Thank you, @eapl.me@eapl.me! No need to apologize in the introduction, all good. :-)
Section 3: Iām a bit on the fence regarding documenting the HTTP caching headers. Itās a very general HTTP thing, so there is nothing special about them for twtxt. No need for the Twtxt Specification to actually redo it. But on the other hand, a short hint could certainly help client developers and feed authors. Maybe itās thanks to my distroās Ngninx maintainer, but I did not configure anything for the Last-Modified
and ETag
headers to be included in the response, the web server just already did it automatically.
The more that I think about it while typing this reply, the more I think your recommendation suggestion is actually really great. It will definitely beneficial for client developers. In almost all client implementation cases Iād say one has to actually do something specifically in the code to send the If-Modified-Since
and/or If-None-Match
request headers. There is no magic that will do it automatically, as one has to combine data from the last response with the new request.
But I also came across feeds that serve zero response headers that make caching possible at all. So, an explicit recommendation enables feed authors to check their server setups. Yeah, letās absolutely do this! :-)
Regarding section 4 about feed discovery: Yeah, non-HTTP transport protocols are an issue as they do not have User-Agent
headers. How exactly do you envision the discovery_url
to work, though? I wouldnāt limit the transports to HTTP(S) in the Twtxt Specification, though. Itās up to the client to decide which protocols it wants to support.
Since I currently rely on buckketās twtxt
client to fetch the feeds, I can only follow http(s)://
(and file://
) feeds. But in tt2
I will certainly add some gopher://
and gemini://
at some point in time.
Some time ago, @movq@www.uninformativ.de found out that some Gopher/Gemini users prefer to just get an e-mail from people following them: https://twtxt.net/twt/dikni6q So, it might not even be something to be solved as there is no problem in the first place.
Section 5 on protocol support: Youāre right, announcing the different transports in the url
metadata would certainly help. :-)
Section 7 on emojis: Your idea of TUI/CLI avatars is really intriguing I have to say. Maybe I will pick this up in tt2
some day. :-)
@eapl.me@eapl.me here are my replies (somewhat similar to Lyseās and Jamesā)
Metadata in twts: Key=value is too complicated for non-hackers and hard to write by hand. So if there is a need then we should just use #NSFS or the alt-text file in markdown image syntax

if something is NSFWIDs besides datetime. When you edit a twt then you should preserve the datetime if location-based addressing should have any advantages over content-based addressing. If you change the timestamp the its a new post. Just like any other blog cms.
Caching, Yes all good ideas, but that is more a task for the clients not the serving of the twtxt.txt files.
Discovery: User-agent for discovery can become better. Iām working on a wrapper script in PHP, so you donāt need to go to Apaches log-files to see who fetches your feed. But for other Gemini and gopher you need to relay on something else. That could be using my webmentions for twtxt suggestion, or simply defining an email metadata field for letting a person know you follow their feed. Interesting read about why WebMetions might be a bad idea. Twtxt being much simple that a full featured IndieWeb sites, then a lot of the concerns does not apply here. But thatās the issue with any open inbox. This is hard to solve without some form of (centralized or community) spam moderation.
Support more protocols besides http/s. Yes why not, if we can make clients that merge or diffident between the same feed server by multiples URLs
Languages: If the need is big then make a separate feed. I donāt mind seeing stuff in other langues as it is low. You got translating tool if you need to know whats going on. And again when there is a need for easier switching between posting to several feeds, then itās about building clients with a UI that makes it easy. No something that should takes up space in the format/protocol.
Emojis: Iām not sure what this is about. Do you want to use emojis as avatar in CLI clients or it just about rendering emojis?
I think salty.im is simplest than simplex. But attempt to implement this i have problems than salty cli cant decrypt messages from another saltpack realization (and reverse) . Also simplex is more decentralized (like nostr?)
@prologic@twtxt.net Iām sure you can somehow install something that calculates blake2b on OpenBSD. But itās not part of the base system as a standalone CLI tool, there only appear to be Perl modules for it. The other SHA tools do exist.
.deb
to install Headscale, or some other method?
I ended up installing Headscale on my little VPS. Just in case the collide, I turned off WireGuard. Turning that one off (which ran on a container) also frees some memory. Headscale is running quite well! Indeed, I have struggled getting any web management console to work, but it really isnāt needed. Everything needed to commandeer the server is available through the CLI.
Could someone knowledgable reply with the steps a grandpa will take to calculate the hash of a twtxt from the CLI, using out-of-the-box tools? I swear I read about it somewhere, but canāt find it.
@prologic@twtxt.net wellā¦
how would that work exactly?
To my limited knowledge, Keyoxide is an open source project offering different tools for verifying oneās online persona(s). Thatās done by either A) creating an Ariande Profile using the web interface, a CLI. or B) Just using your GPG key. Either way, you add in Identity claims to your different profiles, links and whatnot, and finally advertise your profile ⦠Then there is a second set of Mobile/Web clients and CLI your correspondents can use to check your identity claims. I think of them like the front-ends of GPG Keyservers (which keyoxide leverages for verification when you opt for the GPG Key method), where you verify profiles using links, Key IDs and Fingerprintsā¦
Who maintains cox site? Is it centralized or decentralized can be relied upon?
- Maintainers? Definitely not me, but hereās their Git stuff and OpenCollective page ā¦
- Both ASP and Keyoxide Webtools can be self-hosted. I donāt see a central authority here⦠+ As mentioned on their FAQ page the whole process can be done manually, so you donāt have to relay on any one/thing if you donāt want to, the whole thing is just another tool for convenience (with a bit of eye candy).
Does that mean then that every user is required to have a cox side profile?
Nop. But it looks like a nice option to prove that Iām the same person to whom that may concern if I ever change my Twtxt URL, host/join a yarn pod or if I reach out on other platforms to someone Iāve met in her. Otherwise Iām just happy exchanging GPG keys or confirm the change IRL at a coffee shop or something. š
@mckinley@twtxt.net To answer some of your questions:
Are SSH signatures standardized and are there robust software libraries that can handle them? Weāll need a library in at least Python and Go to provide verified feed support with the currently used clients.
We already have this. Ed25519 libraries exist for all major languages. Aside from using ssh-keygen -Y sign
and ssh-keygen -Y verify
, you can also use the salty
CLI itself (https://git.mills.io/prologic/salty), and Iām sure there are other command-line tools that could be used too.
If we all implemented this, every twt hash would suddenly change and every conversation thread weāve ever had would at least lose its opening post.
Yes. This would happen, so weād have to make a decision around this, either a) a cut-off point or b) some way to progressively transition.
@mckinley@twtxt.net agevault
uses age
, allegedly very secure (aiming to replace pgp
/gpg
). Comparing it with gocryptfs
, from the user perspective, agevault
seems simpler, though CLI exclusive. As the repository states, āLike age, it features no config options, allowing for a straightforward secure flowā. It would also run in all major OS platforms out of the box.
But agevault
is also very new. Though age
has been around for a while now, I donāt see an āauditedā link (neither on agevault
, nor age
).
Iām still figuring out interactions mechanics on Twtxt, for example the at symbol is sufficient to mention someone you follow I guess, like @twtxt@buckket.org when using the twtwt cli. is that implemented in the twtxt cli as well? it wouldnāt heart to try
Good! I guess Iām done setting up my Twtxt. Iāll be juggling between the official CLI and Twixter, although I already have a favorite.
Found a new CLI timetracker assistant named Watson. Works really well.
My cli work-apps: note, plan, dlog (daily log), status and twt.
@prologic@twtxt.net Iāve even added the twthash message hash to my Twtxt bash CLI script so I can properly answer here.
Using the CLI to be in-dis-tractable
[lang=en] That was the reason for twtxt-php =P
I tried using CLI tools but it was too hacky, I think.
More if we consider Jakobās Law, where we have prior expectations of a microblogging system.
A Web interface could be quite minimalistic and usable as well. (And mobile-friendly)
bueno, me he entretenido un montón creando un CLI en Python para los OTP pues el que usaba hecho en Go, se ha quedado muy corto.
Con ayuda de ChatGPT para encender una chispa, y unas bĆŗsquedas para corregir cosas, ha quedado en una hora. š¤
bueno, me he entretenido un montón creando un CLI en Python para los OTP pues el que usaba hecho en Go, se ha quedado muy corto.
Con ayuda de ChatGPT para encender una chispa, y unas bĆŗsquedas para corregir cosas, ha quedado en una hora. š¤