Open Source Components

We’re making ThiefMD components reusable. You can find the components in at We’re also built on top of other great open source software


libwritegood is like GtkSpell for style. libwritegood is based on btford/write-good. It’s easy to use, for example:

var manager = Gtk.SourceLanguageManager.get_default ();
var language = manager.guess_language (null, "text/markdown");
var view = new Gtk.SourceView ();
buffer = new Gtk.SourceBuffer.with_language (language);
buffer.highlight_syntax = true;
view.set_buffer (buffer);
view.set_wrap_mode (Gtk.WrapMode.WORD);

// Enable write-good

checker = new WriteGood.Checker ();
checker.set_language ("en_US");
checker.attach (view);

// Disable hard sentences
checker.check_hard_sentences = false;

// WriteGood doesn't auto-check for changes, may be too compute heavy for large docs
buffer.changed.connect (() => {
    checker.recheck_all ();


writeas-vala is a Write Freely client library. It can be used for submitting and managing posts on or any other Write Freely instance.


Ghost-vala is a simple library for publishing posts to ghost blogs.

Theme Generator

Theme Generator helps generate Markdown editor themes for Ulysses and GtkSourceView based editors.

Have a consistent writing environment no matter where you’re at.


ultheme-vala, a converter for Ulysses Themes to markdown GtkSouceView Style Schemes.

ultheme-vala converts a ultheme package into both a light and dark GtkSourceView Style Scheme. In ThiefMD, we load the file and then persist the theme to disk.

public static int main (string[] args) {
    var ultheme = new Ultheme.Parser (File.new_for_path (args[1]));
    // Display resulting Dark Theme XML for GtkSourceView
    print (ultheme.get_dark_theme ());

    return 0;