idnits
Check Internet Draft syntax and formatting
TLDR
Check a file for nits
Count nits without displaying them
Show extra information about offending lines
Expect the specified year in the boilerplate instead of the current year
Assume the document is of the specified status
SYNOPSIS
idnits [options] [draft-file ...]
PARAMETERS
-h, --help
Display usage help and exit
-v, --version
Output version information and exit
-q, --quiet
Suppress non-fatal warnings
-t, --terse
Show only fatal errors
--draft DRAFT
Specify draft name (e.g., draft-ietf-foo-01)
--sheet SHEET
Use alternate style sheet URL
--ignore PATTERN
Skip checks matching regex PATTERN
--mute PATTERN
Silence output for matching checks
--checkall
Enable all available checks
--warnall
Treat all issues as warnings
--verbose
Increase output verbosity
DESCRIPTION
idnits is a specialized Perl-based utility for the IETF community that scans Internet Drafts (I-Ds) for common errors, inconsistencies, and stylistic issues known as 'nits'. It verifies essential elements like RFC boilerplate text, Intended status lines, author affiliations, reference formatting, security considerations, and IANA registry hints. The tool categorizes issues by severity (e.g., FATAL, ERROR, WARN) and type (e.g., BOILERPLATE, FORMAT, REFERENCE).
Primarily used by draft authors before submission to the IETF datatracker, idnits promotes higher quality submissions and reduces review overhead. It processes plain text files in RFC 7328 or similar formats, supports multiple input files or stdin, and allows customization via ignore/mute patterns. Output is human-readable with clear explanations and suggestions. Installed via packages like Debian's idnits, it's lightweight and integrates into workflows with tools like xml2rfc.
Regular updates align with IETF guidelines, making it indispensable for RFC-track documents.
CAVEATS
Designed for text-based RFC 7328 I-Ds; limited support for v3 XML drafts. Requires Perl and internet for some checks. False positives possible with non-standard drafts.
NIT CATEGORIES
Common types: BOILERPLATE (RFC text), FORMAT (layout), REFERENCE (biblio), IANA (considerations), SECURITY (text presence).
EXIT CODES
0: no nits; 1: warnings; 2: errors; 3+: fatal issues.
HISTORY
Developed by Paul E. Hoffman in 2003 as 'draft-nits'; evolved into idnits for IETF use. Maintained via GitHub, with updates tracking RFC editor guidelines and datatracker changes.
SEE ALSO
xml2rfc(1), rfcmarkup(1), kramdown-rfc2629(1)


