TopGit tracks gliderlabs/sigil on GitHub. The project has 419 stars. Standalone string interpolator and template processor
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Standalone string interpolator and template processor
echo '${name} is{{ range seq ${count:-3} }} cool{{ end }}!' | sigil -p name=Sigil
Sigil is cool cool cool!
Sigil is a command line tool for template processing and POSIX-compliant
variable expansion. It was created for configuration templating, but can be used
for any text processing.
Other releases can be downloaded from Github Releases.
Using Sigil
Template text can be provided via STDIN or from a file if provided with the -f
flag. Any other arguments are key-values in the form <key>=<value>. They are
used as variables.
There are two forms of variable syntax in Sigil. The first is POSIX style, which
among other features allows default values or enforces required values:
$variable - normal POSIX style
${variable:-"default"} - expansion with default value
${variable:?} - fails when not set
Environment variables are also available as POSIX style variables. This makes
Sigil great for quick and simple string interpolation.
Template style
The other syntax to use variables is consistent with the rest of the templating
syntax. It uses {{ and }} to define template expressions. Variable expansion
in this form is simply used as:
{{ $variable }}
You can do much more with this syntax, such as modifier pipelines. All of which
is explained below.
Custom Delimiters
Sometimes you want to use sigil to generate text, which uses golang templating itself.
For example if you want to generate packer configuration
your template might contain a lot of {{ and }}.
Instead of replacing all {{ with {{“{{”}}, you can change the delimiters,
by setting the SIGIL_DELIMS environment variable. It is the left and right
delimiter strings, separated by a coma.
Use the --in-place flag with -f to write the rendered output back to the
template file, similar to sed -i:
sigil --in-place -f config.tmpl var1=foo var2=bar
This safely replaces the file using an atomic write (temp file + rename), so the
original file is preserved if template processing fails. File permissions are
retained.
Note: --in-place requires the -f flag. It cannot be used with -i (inline)
or stdin input.
Variables from files
Use the --vars-file (or -V) flag to load variables from a file instead of
passing them all as command-line arguments. The flag can be specified multiple
times; files are merged in order, and CLI key=value arguments override any
file-sourced variables.
The file format is auto-detected by extension:
.json - parsed as a JSON object
.yaml / .yml - parsed as a YAML mapping
.env or any other extension - parsed as key=value lines
There are a number of builtin functions that can be used as modifiers,
conditional tests, expansion data sources, and more. There are two references
for functions available:
Sigil builtins
Go template builtins
Here are a few examples:
{{ $variable | capitalize }}
{{ $variable | default "fallback" }} - use fallback when variable is not provided or empty
The most recent commit recorded on gliderlabs/sigil was 15 days ago, based on the GitHub push timestamp. The repository has 46 forks — one of the better signals of community interest.
How many stars does gliderlabs/sigil have?
gliderlabs/sigil has 419 GitHub stars — refresh the page for the live number, or check github.com/gliderlabs/sigil. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is gliderlabs/sigil open source?
Yes — gliderlabs/sigil ships under the BSD-3-Clause license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/gliderlabs/sigil.
What is gliderlabs/sigil?
gliderlabs/sigil (gliderlabs/sigil) is a Go project on GitHub. From the project's own README: Standalone string interpolator and template processor
Where do I read more about gliderlabs/sigil?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/gliderlabs/sigil is the definitive source.
Read full README in the tab above.
Is sigil worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of sigil.