Announcing walgot, a Wallabag TUI client

Posted on 2022-11-06

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, wallabag[1] 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 proxy[2].

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 bubbletea[3], which is **very** different that tcell[4] and tview [5] that I'm using for building GTL[6]. It uses the ELM[7] 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 fediverse[8] and a short video on Tuesday[9].

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 README[10] 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!

Footnotes

_________

[1]: Wallabag project homepage (HTTPS)

[2]: Saving lagrange current tab in wallabag (Gemini)

[3]: Bubbletea github page (HTTPS)

[4]: tCell github page (HTTPS)

[5]: cView git page (HTTPS)

[6]: GTL repository (HTTPS)

[7]: ELM architecture (HTTPS)

[8]: First screenshot of walgot (HTTPS)

[9]: First video of walgot (HTTPS)

[10]: Walgot README (HTTPS)

/gemlog/

Send me a gemini mention

send me an email!

Proxied content from gemini://gmi.bacardi55.io/blog/2022/11/06/announcing-walgot/ (external content)

Gemini request details:

Original URL
gemini://gmi.bacardi55.io/blog/2022/11/06/announcing-walgot/
Status code
Success
Meta
text/gemini; lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.