This repository has been archived on 2023-10-02. You can view files and clone it, but cannot push or open issues/pull-requests.

1.9 KiB


A little command-line helper for publishing Gemini sites or "capsules".


config [lang]             Generate a config directory
page [capsule] [title]    Add a new page with the given title
post [capsule] [title]    Add a new gemlog post with the given title
index                     Generate an index page and feed of posts
publish                   Index and copy posts remotely using scp
help                      Show this help message
version                   Print version info


  • Linux or Unix-based OS
  • Lua 5.4 (other versions >= 5.1 will probably be fine but are untested)
  • scp or rsync, to transfer files remotely


  • Install Lua (including development libraries and headers) and luastatic.

  • Clone this repository and change into the directory. Run:

    luastatic gemwriter.lua env.lua util.lua lang/*.lua \
      /usr/lib/[arch]/liblua[5.x].a -I/usr/include/lua[5.x] -static \
      -o gemwriter

    Replace [arch] with the OS architecture, e.g. x86_64-linux-gnu, and [5.x] with the Lua version. The paths to liblua.a and the development headers (i.e. /usr/include/lua[5.x]/lua.h) may need to be adjusted for your distribution.

  • Move the gemwriter executable to a location in your $PATH.

Quick start

  1. Generate a new config: gemwriter config

  2. Edit ~/.config/gemwriter/config.toml with the correct details about your capsule and gemlog.

  3. Create a new gemlog post: gemwriter post "Hello World!"

  4. Publish your capsule: gemwriter publish


Special thanks to the following contributors: