Skip to main content

Configuration Reference

seiton uses a JSON configuration file. All settings have sensible defaults — no config file is required to get started.

Config File Location

seiton searches for a config file in this order (first match wins):

  1. --config <path> CLI flag
  2. $SEITON_CONFIG environment variable
  3. $XDG_CONFIG_HOME/seiton/config.json
  4. $HOME/.config/seiton/config.json
  5. $HOME/.seitonrc.json

If no file is found, built-in defaults are used. Find your active config path:

seiton config path

Example Configuration

{
"version": 1,
"strength": {
"min_length": 14,
"zxcvbn_min_score": 3
},
"dedup": {
"name_similarity_threshold": 3,
"treat_www_as_same_domain": true
},
"folders": {
"enabled_categories": ["Banking & Finance", "Email", "Social", "Development"],
"custom_rules": [
{ "folder": "Crypto", "keywords": ["binance", "kraken", "coinbase"] },
{ "folder": "Work", "keywords": ["acme.internal", "acme-corp.com"] }
]
}
}

All Configuration Sections

Every section is optional. Missing sections use their defaults.

core — Output and verbosity

KeyTypeDefaultDescription
output_format"text" | "json""text"Output format
color"auto" | "always" | "never""auto"ANSI color mode
verbose0--20Verbosity level (0 = quiet, 1 = info, 2 = debug)
quietbooleanfalseSuppress non-essential output

paths — File paths

KeyTypeDefaultDescription
pending_queuestring | nullnullCustom pending-ops queue file path
bw_binarystring | nullnullCustom bw binary path (if not on PATH)

audit — Audit behavior

KeyTypeDefaultDescription
skip_categoriesstring[][]Finding categories to skip (e.g. ["weak", "reuse"])
limit_per_categoryinteger | nullnullMax findings shown per category (1+)
save_pending_on_sigintbooleantrueSave pending-ops queue when interrupted by Ctrl+C

strength — Password strength rules

KeyTypeDefaultDescription
min_lengthinteger12Minimum acceptable password length
require_digitbooleantrueRequire at least one digit
require_symbolbooleantrueRequire at least one special character
min_character_classes1--42Minimum distinct character classes (lower, upper, digit, symbol)
zxcvbn_min_score0--42Minimum zxcvbn score
extra_common_passwordsstring[][]Additional passwords to flag as weak

dedup — Duplicate detection

KeyTypeDefaultDescription
name_similarity_thresholdinteger3Levenshtein distance for near-duplicate names (0 = exact only)
treat_www_as_same_domainbooleantrueTreat www.example.com and example.com as the same domain
case_insensitive_usernamesbooleantrueIgnore case when comparing usernames
compare_only_primary_uribooleantrueOnly compare the primary URI (not all URIs on an item)

folders — Folder classification

KeyTypeDefaultDescription
preserve_existingbooleantrueSkip items that already have a folder assignment
enabled_categoriesstring[]All 9 built-inWhich built-in categories to suggest
custom_rulesobject[][]User-defined keyword-to-folder rules (evaluated before built-ins)

Built-in categories: Banking & Finance, Email, Social, Shopping, Development, Entertainment, Utilities, Government & ID, Health.

Custom rule format:

{
"folder": "Crypto",
"keywords": ["binance", "kraken", "coinbase", "ledger"]
}

Custom rules are matched against item names and URIs. They take priority over built-in categories. Rules can also be captured interactively during an audit — when you override a folder suggestion, seiton offers to save a new rule to your config file (see Analyzers > Interactive Rule Capture).

ui — User interface

KeyTypeDefaultDescription
mask_characterstring (1--4 chars)"•"Character used to mask passwords in output
show_revision_datebooleantrueShow the item's last-modified date in findings
color_scheme"auto" | "light" | "dark""auto"Color scheme hint
prompt_style"clack" | "plain""clack"Interactive prompt style (plain for accessibility)

logging — Log output

KeyTypeDefaultDescription
format"text" | "json""text"Log output format
level"error" | "warn" | "info" | "debug""info"Minimum log level

Environment Variables

VariableDescription
BW_SESSIONBitwarden session token (required for vault access)
SEITON_CONFIGOverride the config file path
NO_COLORDisable ANSI color output (any non-empty value)
VISUAL / EDITOREditor for seiton config edit
HOME / USERPROFILEHome directory for config file discovery

Section-level overrides use the format SEITON_<SECTION>_<KEY> in uppercase:

export SEITON_STRENGTH_MIN_LENGTH=14
export SEITON_UI_PROMPT_STYLE=plain