| Crates.io | briefli |
| lib.rs | briefli |
| version | 0.2.0 |
| created_at | 2025-12-01 22:06:09.947663+00 |
| updated_at | 2025-12-04 10:03:18.007636+00 |
| description | Swiss letter management CLI using Typst - create properly formatted letters for Swiss envelope windows |
| homepage | https://github.com/samvdst/briefli |
| repository | https://github.com/samvdst/briefli |
| max_upload_size | |
| id | 1960722 |
| size | 41,405 |
Swiss letter management CLI using Typst. Create properly formatted letters for Swiss C5 envelopes (A4 folded once) with left or right address windows.
cargo install briefli
git clone https://github.com/samvdst/briefli
cd briefli
cargo install --path .
mkdir my-letters && cd my-letters
briefli init
defaults.toml:location = "ZĂĽrich"
lang = "de"
address-position = "left" # or "right"
[sender.private]
name = "Your Name"
address = "Street 123, 8000 ZĂĽrich"
[sender.work]
name = "Your Name"
address = "Company AG, Street 456, 8001 ZĂĽrich"
briefli new "KĂĽndigung Mietvertrag"
# Creates: 2024-01-15 KĂĽndigung Mietvertrag.typ
.typ file, then compile:briefli build
briefli new <subject> # Create letter with private address (default)
briefli new -w <subject> # Create letter with work address
briefli new --work <subject> # Same as above
briefli build # Compile all .typ files to PDF
briefli list # List all letters and their status
briefli init # Initialize a new letters directory
briefli help # Show help
For C5 envelopes (A4 folded once), the template uses these measurements:
| Element | Left Window | Right Window |
|---|---|---|
| Address from left | 22mm | 118mm |
| Address from top | 60mm | 60mm |
| Address area | 85.5mm Ă— 45mm | 85.5mm Ă— 45mm |
| Sender line from top | 45mm | 45mm |
Use address-position = "left" (default) or "right" depending on your envelope's window position.
my-letters/
├── defaults.toml # Your sender configuration
├── ch-letter-template.typ # Swiss letter template
├── 2024-01-15 Letter.typ # Letter source
└── 2024-01-15 Letter.pdf # Compiled PDF
The ch-letter-template.typ can be customized. Available parameters:
#show: ch-letter.with(
sender: (
name: "Your Name",
address: "Street, ZIP City",
extra: "phone/email", // optional
),
recipient: "Name, Company, Street, ZIP City",
location: "ZĂĽrich",
date: "15.01.2024",
subject: "Letter Subject",
footer: [Optional footer], // optional
font: "Arial", // optional, default: Arial
address-position: "left", // optional, "left" or "right"
)
Licensed under either of:
at your option.
I'm building this for my personal use case, but if you have a cool feature idea, I'm open to hear all about it. PRs always welcome!