Skip to main content
The mkbrr create command is used to generate new .torrent files from local files or directories.
This command supports creating torrents for single files or entire directories. It also integrates with Presets and Batch Mode for more advanced workflows.

Arguments

Required and optional command arguments

Flags

Available command flags and options

Smart Defaults

Automatic optimizations and settings

Examples

Common usage examples

Smart Defaults

mkbrr automatically optimizes several settings for you:

Piece Size

Automatically calculated based on content size for optimal performance and tracker compatibility

File Name

Generated from tracker domain and content name if not specified (e.g., tracker-domain_content-name.torrent)

Private Flag

Enabled by default for private tracker compatibility. Use --private=false for public trackers

Tracker Rules

Automatically enforces piece size limits and other requirements based on tracker URL. See Tracker Rules for details.
When you provide a tracker URL via the -t flag or presets, mkbrr automatically detects and applies the appropriate tracker-specific rules to ensure your torrents are compliant.

Arguments

  • [path]: (Required unless using -b) The path to the source file or directory you want to create a torrent from.

Flags

Input & Output

string[]
Tracker URL. Can be specified multiple times to add several trackers. Optional.
string
Set torrent name (default: source filename).
string
Optional. Set output path (default: <n>.torrent or <tracker-prefix>_<n>.torrent).
string
Output directory for created torrent.
boolean
default:false
Don’t add tracker domain prefix to output filename.

Advanced Input (Batch & Presets)

string
Batch config file (YAML). Cannot be used with a path argument. With -b, mkbrr create accepts only -v, -q, and -i. Each job takes its settings from the batch file.
For creating multiple torrents in one go. See the Batch Mode documentation for details.
string
Use preset from config.
For reusing common settings across torrents. See the Presets documentation for details.
string
Preset config file (default ~/.config/mkbrr/presets.yaml).
Set custom path to presets.yaml. See the Presets documentation for details.

Content Selection

array
Exclude files matching these patterns (e.g., "*.nfo,*.jpg" or --exclude "*.nfo" --exclude "*.jpg").
Use this to filter out unwanted files like NFOs, samples, or extras that shouldn’t be in the torrent. See the filtering guide for detailed pattern rules and examples.
array
Include only files matching these patterns (e.g., "*.mkv,*.mp4" or --include "*.mkv" --include "*.mp4").
Using include patterns activates whitelist mode. See the filtering guide for detailed pattern rules and examples.

Torrent Internals

boolean
default:true
Make torrent private.
Private flag is enabled by default for tracker compliance. Only disable if you’re creating a public torrent.
number
Set piece length to 2^n bytes (16-27, or 14-27 for a tracker with its own piece size table; automatic if not specified).
Let mkbrr automatically calculate the piece size unless you have specific requirements. The automatic calculation optimizes for both performance and compatibility.
number
Limit maximum automatically calculated piece length to 2^n bytes (16-27, or 14-27 for a tracker with its own piece size table when target piece count is not set; lower if the tracker has a cap).
number
Target approximate number of pieces. Calculates optimal piece length automatically. Mutually exclusive with --piece-length.
boolean
default:false
Randomize the torrent’s info hash by adding or updating a unique, random entropy key in the info dictionary before hashing.
Cross-seeding is the practice of seeding the same content on multiple trackers. Using the entropy flag helps avoid conflicts between trackers.

Seeding & Metadata

array
Specify web seed URLs. Can be used multiple times.
Web seeds provide an HTTP fallback source for the torrent content, improving availability.
string
Specify the source string.
Some trackers require or recommend specific source tags. Check your tracker’s rules.
string
Specify a comment.
boolean
default:false
Omit the creation date from the torrent metadata.
boolean
default:false
Omit the creator string from the torrent metadata.

Season Pack Detection

boolean
default:false
Exit with error if season pack completeness check detects missing episodes.

Execution & Output Control

boolean
default:false
Plan torrent creation without hashing content or writing a torrent file. The command walks and filters the input exactly like a real create, chooses the final piece length, applies tracker size limits, and prints one JSON object to stdout. Cannot be used with --batch.The JSON object contains:
  • content_size: total selected content size in bytes
  • piece_length_exponent: chosen piece length exponent
  • piece_length_bytes: chosen piece length in bytes
  • predicted_torrent_size: exact predicted encoded torrent size in bytes
  • tracker_size_limit: tracker torrent-size limit in bytes, or 0 when none applies
  • notices: piece-size selection notices generated by the create pipeline
number
Manually specify the number of concurrent goroutines used for hashing.
Experimenting with different worker values might yield better performance than the default automatic setting.
boolean
default:false
Be verbose.
boolean
default:false
Enable quiet mode. mkbrr prints only the path of each torrent file that it writes, and writes errors to stderr. Use it in scripts.
boolean
default:false
Display only torrent info without progress (implies verbose).
When mkbrr create encounters symbolic links (symlinks) within the source path:
  • Links are followed: mkbrr reads the content of the file or directory the link points to (the target).
  • Target content is hashed: The torrent pieces will contain the hash data of the target file’s content.
  • Link path is stored: The file path recorded inside the .torrent file’s metadata will be the path of the symbolic link itself, relative to the source path, not the path of the target.
The .torrent file does not record that a file was a link. mkbrr check does not know that a file was a link. It reads the file that the link points to at the time of the check, and compares that content with the stored hashes.
If the target of a link changed or moved after you created the torrent, mkbrr check fails for the pieces of that file.

Examples

Create a private torrent for a single file:
Create a public torrent for a directory: