A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Julien Blanchard 693969d7ae Update crates 4 months ago
data Add max_width setting 1 year ago
src Wrap headers too 4 months ago
.gitignore Add bookmarks 2 years ago
Cargo.lock Update crates 4 months ago
Cargo.toml Update crates 4 months ago
LICENSE Add License 1 year ago
Makefile Remove duplicate /bin on uninstall 1 year ago
README.md Correct font configuration in the example config 1 year ago



A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols.







Gemini with some theming:



Castor needs a recent Rust version >= 1.39. Please consider using Rustup if you OS does not package a recent version.


You will need some development libraries:

  • openssl
  • gtk+3
  • gdk-pixbuf
  • pango
  • atk
  • cairo

Build and install

  • run make to build Castor
  • install with sudo make install
  • Open Castor and visit gemini://gemini.circumlunar.space and enjoy your trip!

Building on Ubuntu

  • apt install build-essential rustc cargo libgtk-3-dev libgdk-pixbuf2.0-dev libssl-dev
  • make and make install

Building on MacOS

See instructions here

Building on Windows

See instructions here

Changing settings

You can change some settings like initial URL, colors and delimiters for Headers, Lists, Text and Background. Edit ~/.config/castor/settings.toml and add the values you need. These are the keys currently supported, you can use hex codes, plain colors names or even emojis!

start_url = "gemini://gemini.circumlunar.space/capcom"
max_width = 200

h1 = "red"
h2 = "#FF6347"
h3 = "green"
list = "#C71585"
text = "#FF1493"
background = "#FFC0CB"

h1 = ">"
h2 = "))"
h3 = "}}}"
list = "🌼 "

    family = "monospace"
    size = 11
    family = "serif"
    size = 11
    family = "sans"
    size = 16
    style = "normal"
    family = "monospace"
    size = 13
    style = "italic"
    family = "monospace"
    size = 12
    family = "sans"
    size = 11
    style = "oblique"
    family = "sans"
    size = 10
    style = "italic"
    family = "monospace"
    size = 11

Using client certificate

Castor expects your certificates to be placed in your home directory and named after the gemini capsule domain. For example to water your plant on gemini://astrobotany.mozz.us/plant you will need to have astrobotany.mozz.us.crt and astrobotany.mozz.us.key available in your home.

Mailing list

If you have questions, feature requests, bugs or you just want to keep up to date with Castor you can send a message to the mailing list


You can view my current roadmap here


  • Leonora Tindall for the great article on Rust and GTK that helped me bootstrap this project
  • tiwesdaeg for the incredible icon
  • sloum for the great advices
  • the gemini/gopher/finger community for being awesome