# firemark — CLI Reference > A fast, flexible watermarking tool for images and PDFs, written in Rust. ``` firemark [options] ``` `` can be a single file or a folder path. Supported input formats: `.jpg`/`.jpeg`, `.png`, `.pdf`, `.webp`, `.tif`/`.tiff`. --- ## Table of Contents - [Input / Output](#input--output) - [Watermark Type](#watermark-type) - [Content & Templates](#content--templates) - [Typography](#typography) - [Position & Layout](#position--layout) - [Style & Appearance](#style--appearance) - [PDF-specific](#pdf-specific) - [Output Quality](#output-quality) - [Config & Presets](#config--presets) - [General](#general) - [Template Variables](#template-variables) - [Type Reference](#type-reference) - [Examples](#examples) - [Crate Dependencies](#crate-dependencies) --- ## Input / Output | Flag | Description | |---|---| | `` | Input file or folder *(required)* | | `-o, --output ` | Output file path. Supported extensions: `.jpg`, `.jpeg`, `.png`, `.pdf`, `.webp`, `.tif`, `.tiff` | | `-S, --suffix ` | Append suffix to output filename: `{name}-{suffix}.ext`. Used when `-o` is omitted or with `-R` | | `-R, --recursive` | Process folders recursively | | `-j, --jobs ` | Number of parallel worker threads for batch processing (default: CPU count) | | `--overwrite` | Overwrite existing output files without prompting | | `-n, --dry-run` | Preview operations without writing any files | --- ## Watermark Type ``` -t, --type ``` Controls the **visual design style** of the watermark. Default: `diagonal`. ### Text Styles | Value | Description | |---|---| | `diagonal` | Classic angled text stretched across the page | | `stamp` | Bold text inside a circle or rectangle border, like a rubber stamp | | `stencil` | Blocky, cut-out style lettering | | `typewriter` | Monospace font, slightly uneven, vintage feel | | `handwritten` | Cursive/script-style font | | `redacted` | Black bar(s) with text visible through or underneath, like a censored document | ### Shape Styles | Value | Description | |---|---| | `badge` | Text inside a filled shape: circle, hexagon, or ribbon | | `ribbon` | Diagonal banner across a corner (pairs well with `--position top-right`) | | `seal` | Circular embossed seal — main text in the center, secondary text on the outer ring | | `frame` | Repeated text forming a border around the entire page margin | ### Pattern / Repeat Styles | Value | Description | |---|---| | `tile` | Repeated text or image across the whole page in a regular grid | | `mosaic` | Tiled, but with slight random rotation and offset per instance | | `weave` | Diagonal alternating rows of text, offset like a textile or fabric pattern | ### Effect Styles | Value | Description | |---|---| | `ghost` | Very low opacity, single centered mark with a subtle embossed look | | `watercolor` | Soft, blurred edges with a color wash effect | | `noise` | Text rendered with a grainy or distorted texture overlay | | `halftone` | Dot-pattern rendering of the text or image | --- ## Content & Templates | Flag | Description | |---|---| | `-m, --main-text ` | Primary watermark text (default: `"firemark"`) | | `-s, --secondary-text ` | Secondary text below or around the main text (default: `{timestamp}`) | | `-I, --image ` | Path to an image file to use as or combine with the watermark | | `--qr-data ` | Data to encode as a QR code watermark (URL, plain text, etc.) | | `--qr-code-position ` | QR code placement: `center` \| `top-left` \| `top-right` \| `bottom-left` \| `bottom-right` (default: `center`) | | `--qr-code-size ` | QR code size in pixels (default: auto-scaled from image dimensions) | | `--template ` | Full text template using variables (see [Template Variables](#template-variables)) | --- ## Typography | Flag | Description | |---|---| | `-f, --font ` | Font name or path to a `.ttf` / `.otf` file (default: built-in sans-serif) | | `--font-size ` | Font size in points (default: auto-scaled to canvas) | | `--font-weight ` | `thin` \| `light` \| `regular` \| `bold` \| `black` (default: `regular`) | | `--font-style