Getting started¶
This page walks you from zero to a generated postmortem in three minutes.
1. Install¶
Download from the GitHub Releases page
for darwin, linux, or freebsd × arm64 / x86_64.
Confirm the install:
srekit --version
# srekit version: 0.32.1
# from commit: ...
# built date: ...
# built by: goreleaser
2. One-time configuration¶
Generators that record an author (rfc, oncall-report) resolve the identity in this order:
--author/--emailflagsSREKIT_AUTHOR/SREKIT_EMAILenv varsauthor:/email:in the config filegit config user.name/git config user.email
The config file lives at $XDG_CONFIG_HOME/srekit/config.yaml (~/.config/srekit/config.yaml when the variable is unset). A pre-XDG ~/.srekit.yaml keeps working and wins if it already exists, so nothing to migrate.
If your global git config is already set, you can skip configuration entirely. To opt in to a yaml file:
srekit config init
# Author name [Mikhail Savin]: ⏎
# Email [jtprogru@gmail.com]: ⏎
# Templates dir (leave empty to use embedded templates only): ⏎
# Wrote /Users/jtprogru/.config/srekit/config.yaml
srekit config init --yes runs without prompts, using flag values and git config defaults. See Configuration & precedence for the full picture.
3. Your first artifact¶
A postmortem is a good starter — it exercises author resolution, title-based filenames, and the --out / --stdout flags:
That prints to stdout. To write to a file:
srekit postmortem --title "API outage" --severity SEV-1 \
--start 2026-05-06T08:00Z --end 2026-05-06T09:30Z \
--owner "@oncall" \
--out postmortem-2026-05-06.md
Inspect it — every section is pre-filled with bilingual headings (Russian, with the English term in parentheses) and SRE-canonical fields (severity, timeline, impact, root cause, action items).
4. The unified flag set¶
Every generator command supports the same output flags:
| Flag | Effect |
|---|---|
--out FILE |
write to FILE (refuses to overwrite without --force) |
--stdout |
print to stdout |
--force |
overwrite existing FILE |
--dry-run |
show what would be written, do not write |
--json |
emit the template data payload as JSON instead of rendering |
There is no --template FILE flag: it was removed in v0.30.0 along with srekit license, the one command whose render path read it. Per-artifact customization is done by dropping a <name>.yaml into your templates_dir — see Custom templates workflow.
If you pass neither --out nor --stdout, each command has a sensible default filename (e.g. investigation-<slug>.md for srekit task, oncall-<team>-<start>.md for the on-call report).
5. Check the environment¶
If a generator picks the wrong author, or your customized templates look ignored, ask srekit what it resolved rather than guessing:
It is read-only and makes no network request. srekit doctor --quiet prints only what needs attention, so silence means healthy — see srekit doctor.
6. What's next¶
You now have enough to use srekit day-to-day. To go deeper:
- Custom templates workflow — fork the built-in artifacts into your own git repo and pull/merge upstream changes cleanly.
- jtprogru/sre-templates — a ready-made templates repo in the exact layout srekit expects. Clone it and point
templates_dirat it to skip scaffolding from scratch. - JSON output — pipe generators into
jqfor CI scripts and integrations. - Commands overview — full reference for every subcommand and flag.
- Recipes — concrete workflows that combine srekit with your tooling.