LinuxCommandLibrary

agate

Browse Gemini protocol content

TLDR

Run and generate a private key and certificate

$ agate --content [path/to/content]/ --addr [[::]:1965] --addr [0.0.0.0:1965] --hostname [example.com] --lang [en-US]
copy

Run server
$ agate [path/to/file]
copy

Display help
$ agate [[-h|--help]]
copy

SYNOPSIS

agate [OPTIONS] [INPUT_DIR] [OUTPUT_DIR]

PARAMETERS

-h, --help
    Prints help information

-V, --version
    Prints version information

-c, --config <CONFIG>
    Configuration file path [default: agate.toml]

-d, --drafts
    Include draft posts during build

--base-url <BASE_URL>
    Base URL for links [default: /]

--destination <OUTPUT_DIR>
    Output directory [default: _site]

--index-file <INDEX_FILE>
    Index filename [default: index]

-s, --serve [<URL>]
    Serve site after build [default: http://localhost:8080]

--source <INPUT_DIR>
    Input/source directory [default: .]

--title <TITLE>
    Site title [default: Agate]

-v, --verbose
    Increase verbosity (repeatable)

-w, --watch
    Watch for changes and rebuild

DESCRIPTION

Agate is a lightweight, high-performance static website generator written in Rust. Designed for simplicity, it transforms Markdown files, including posts and pages, into fully static HTML sites suitable for blogs, documentation, or personal websites.

Core features include automatic sitemap generation, RSS feeds, customizable permalinks (pretty, date, ordinal, or none), draft support, and a minimal template system using Tera. It supports front-matter in YAML or TOML for metadata like titles, dates, and tags. Development workflow is streamlined with built-in serving and file watching.

Configuration is handled via an optional agate.toml file, allowing overrides for site title, base URL, index filenames, and more. Agate prioritizes speed and low resource usage, rebuilding sites in milliseconds even for thousands of pages. No JavaScript runtime or complex build tools required—ideal for users seeking an alternative to heavier generators like Hugo or Jekyll.

Installation via Cargo: cargo install agate. Output is production-ready, easily deployable to any static host.

CAVEATS

Limited templating compared to Hugo; Markdown-focused with basic syntax support. Requires Rust/Cargo for installation. No built-in themes—customize via templates.

CONFIGURATION EXAMPLE

agate.toml:
[site]
title = "My Blog"
base_url = "https://example.com"
index_file = "index.html"

DEVELOPMENT USAGE

Run agate -s -w to build, serve, and auto-reload on changes.

PERMALINK STYLES

Set via config: pretty (%year/%slug.html), date (%year/%month/%day/%slug.html), ordinal, or none.

HISTORY

Created by Michael Jones in 2023 as a simple, fast alternative to complex static generators. First stable release 0.1.0 via crates.io. Actively maintained with focus on performance and minimalism.

SEE ALSO

pandoc(1), rsync(1)

Copied to clipboard