app:
  host: 127.0.0.1
  port: 8080
  cert_dir: ~/.local/share/spilltea
  project_dir: ~/.local/share/spilltea
  plugins_dir: ~/.config/spilltea/plugins
  upstream_proxy: "" # e.g. http://corporate-proxy:8888 or $ENV_VAR
  proxy_auth: "" # require basic auth to use the spilltea proxy, format: user:pass or $ENV_VAR (empty = disabled).
  max_body_size_mb: 50 # max response body size read into memory for large streamed responses (MB)
  external_editor: "" # override $EDITOR for external editing (e.g. nvim, code --wait)
  ssl_insecure: false # bypass TLS certificate verification (enable for self-signed cert targets)

intercept:
  default_intercept_enabled: true
  default_capture_response: false
  queue_size: 128 # max pending intercepted requests/responses before the proxy blocks
  auto_forward_regex:
    - '\.(js|css|png|gif|ico|woff2?|ttf|svg)(\?.*)?$'

replay:
  switch_to_page_on_send: true

history:
  skip_duplicates: true # if true, skip saving entries with the same method, host, path and body
  keep_responses: false # if true, response body and headers are stored in history

tui:
  use_nerdfont_icons: false
  default_sidebar_state: "expanded" # hidden, collapsed, expanded
  pretty_print_body: true # auto-indent JSON and HTML response bodies

keybindings:
  global:
    quit: "q,ctrl+c"
    escape: "esc,ctrl+c"
    help: "?"
    open_logs: "ctrl+g"
    toggle_sidebar: "ctrl+b"
    cycle_focus: "tab"
    send_to_replay: "ctrl+r"
    send_to_diff: "ctrl+x"
    copy_as: "ctrl+y"
    copy: "y"
    up: "up,k"
    down: "down,j"
    left: "left,h"
    right: "right,l"
    goto_top: "g"
    goto_bottom: "G,end"
    scroll_up: "pgup,ctrl+u"
    scroll_down: "pgdown,ctrl+d"
    prev_page: "[,ctrl+i"
    next_page: "],ctrl+o"

  intercept:
    toggle_intercept: "i"
    capture_response: "r"
    forward: "f"
    forward_all: "F"
    drop: "d"
    drop_all: "D"
    edit: "e,enter"
    edit_external: "E"
    undo_edits: "u,ctrl+z"

  history:
    delete_entry: "x"
    delete_all: "X"
    sql_query: ":"
    filter: "/"
    flag: "m"

  home:
    open: "l,enter"
    delete: "x"
    filter: "/"

  replay:
    send: "s, enter"
    edit: "e"
    edit_external: "E"
    undo_edits: "u,ctrl+z"
    delete_entry: "x"
    delete_all: "X"
    filter: "/"
    flag: "m"

  diff:
    clear: "x"

  findings:
    dismiss: "x"
    dismiss_all: "X"
    flag: "m"

  plugins:
    toggle: "space"
    edit_config: "e,enter"
    filter: "/"

  docs:
    search: "/"
    search_reset: "r"
    search_next: "n"
    search_prev: "N"
