Utility for writing and managing gemini logs (gemlogs) and atom feeds without needing a cgi script.

To check out my personal config, to see how a “normal” setup would be used, look in the sample-configs directory.


other than toot you really should have all these installed if you're on linux.

  • sh and all its goodies (duh)
  • perl
  • date
  • tr
  • sed
  • the toot cli — only if you're using the automatic mastodon toot functionality


  1. git clone https://git.sr.ht/~nytpu/gemlog.sh
  2. cd gemlog.sh
  3. symlink gemlog.sh to anywhere in your $PATH
  4. mkdir ~/.config/gemlog.sh
  5. cp config.sh header.gmi footer.gmi ~/.config/gemlog.sh/
  6. modify ~/.config/gemlog.sh/config.sh with all of your config settings, ~/.config/gemlog.sh/header.gmi with what you want your header to be, and ~/.config/gemlog.sh/footer.gmi with what you want your footer to be

expansion of variables from config.sh is supported in both the header and footer.


  1. Write your post in .gmi format. The first header of any level on the page will be used as a title (it doesn't have to be on the first line). The script will detect any .gmi files that start with a number and assume they're blog posts. Name your files like YYYY-MM-DD.gmi or YYYY-MM-DD-[title-here].gmi so you get them sorted nicely in reverse chronological order.
  2. make sure you're in your gemlog directory then run gemlog.sh to build the index page and the atom feed
  3. if you want your atom feed to be accessible over the web as well as gemini, symlink the atom.xml file to your web server directory


send patches, suggestions, and bug reports to ~nytpu/public-inbox@lists.sr.ht