Announcing walgot, a Wallabag TUI client

Sunday, November 6, 2022

wallabagtuidev

TLDR; I’ve writen a TUI wallabag client in golang called walgot, a very early version for now… Paint is still fresh but v0.1.2 has been released:

Walgot

What is wallabag?

For those who don’t know, wallabag1 is an opensource “Read it later” application (like Pocket) that can easily be selfhosted.

If you don’t want to selfhost, the lead of wallabag created wallabag.it for a managed version. As I want to support the project I’m actually using wallabag.it as my wallabag backend, but walgot should work with any recent wallabag installation.

I’m using wallabag a lot, for saving articles from my RSS feeds, interesting links from the fediverse or even gemini pages via a small script and a proxy2.

I’m using wallabag daily, from multiple devices:

  • On my phone via the official wallabag application
  • On my e-ink android tablet, with the same application
  • On a computer, using the default Web client.

The last one, while easy to use, is forcing me to have a web browser opened and I find it not simple and snappy enough… Also, if you know me a bit, you know that I’m a big fan of TUI and CLI applications…

So, after not finding what I was looking for, I hesitated for a long time to actually create one… But here we are now :).

Creating walgot

I decided last Monday to create a small PoC. I also wanted to try another TUI library called bubbletea3, which is very different that tcell4 and tview 5 that I’m using for building GTL6. It uses the ELM7 architecture, which I wasn’t familiar with… But that I enjoy a lot now :).

So on Monday, I started writing the first lines of code and even shared a first screenshot on the fediverse8 and a short video on Tuesday9.

After lots of refactoring and tests, I’m happy to announce the first public release of walgot v0.1.2:

Walgot

Important notes about walgot

I’m not going to copy/paste the README here, you can just go to the repository page for this, but a few important notes before you try it:

  • Walgot retrieve all articles at start and doesn’t use a local cache or local database, which means:
    • It requires an internet access, at least when starting, to retrieve all articles at first.
    • Changing status (read, star) requires an internet access. It doesn’t save the status changes to be applies once connection is back.
    • It may take a bit of time to start, depending on the number of saved articles on wallabag.
  • Walgot do not need internet connection to read articles after initial import, so if you just want to read articles and not change their status, you can go offline.

I’m not sure if a local cache will be implemented one day, because it would add a layer of complexity I’m not sure I want to manage in such a simple tool. When I talk about complexity, I’m mainly thinking about consolidating different status managed by different wallabag client.

In term of what it can do for now, in a nutshell:

  • Download all articles, display them in a navigable table (list view).
  • Read article content (detail view).
  • Change article status (read, star) from list or detail view.

… And that’s mostly it for now :). I advide to read the README10 that has a big todolist at the bottom with what is implemented and what will be at some point.

Conclusion

Walgot is very early stages, but I had fun coding it so far :). Let me know if you try it and what you think! Happy to hear about potential improvements too!


Contact

If you find any issue or have any question about this article, feel free to reach out to me via email, mastodon, matrix or even IRC, see the About Me page for details.

See Also

cleanABag, a tool to remove old articles from wallabag

Moving my posts to orgmode