[servers]

You can define multiple server sections in the configuration file. Each server section must have a unique name, which is used as the identifier in the [servers.<name>] format.

Eg:

[servers.quakenet] # ...

💡 For a multiple server example see here

nickname

The client's nickname.

# Type: string # Values: any string # Default: not set [servers.<name>] nickname = ""

nick_password

The client's NICKSERV password.

# Type: string # Values: any string # Default: not set [servers.<name>] nick_password = ""

nick_password_file

Read nick_password from the file at the given path.1 2

# Type: string # Values: any string # Default: not set [servers.<name>] nick_password_file = ""

nick_password_file_first_line_only

Read nick_password from the first line of nick_password_file only.

# Type: boolean # Values: true, false # Default: true [servers.<name>] nick_password_file_first_line_only = true

nick_password_command

Executes the command with sh (or equivalent) and reads nick_password as the output.

# Type: string # Values: any string # Default: not set [servers.<name>] nick_password_command = ""

nick_identify_syntax

The server's NICKSERV IDENTIFY syntax.

# Type: string # Values: "nick-password", "password-nick" # Default: not set [servers.<name>] nick_identify_syntax = ""

alt_nicks

Alternative nicknames for the client, if the default is taken.

# Type: array of strings # Values: array of any strings # Default: not set [servers.<name>] alt_nicks = ["Foo", "Bar"]

username

The client's username.

# Type: string # Values: any string # Default: not set [servers.<name>] username = ""

realname

The client's real name.

# Type: string # Values: any string # Default: not set [servers.<name>] realname = ""

server

The server to connect to.

# Type: string # Values: any string # Default: not set [servers.<name>] server = "irc.libera.chat"

port

The port to connect on. If you want to use a plain text port like 6667 you MUST also change the use_tls setting.

# Type: integer # Values: any positive integer # Default: 6697 [servers.<name>] port = 6697

password

The password to connect to the server.

# Type: string # Values: any string # Default: not set [servers.<name>] password = ""

password_file

Read password from the file at the given path.1 2

# Type: string # Values: any string # Default: not set [servers.<name>] password_file = ""

password_file_first_line_only

Read password from the first line of password_file only.

# Type: boolean # Values: true, false # Default: true [servers.<name>] password_file_first_line_only = true

password_command

Executes the command with sh (or equivalent) and reads password as the output.

# Type: string # Values: any string # Default: not set [servers.<name>] password_command = ""

channels

A list of channels to join on connection.

# Type: array of strings # Values: array of any strings # Default: not set [servers.<name>] channels = ["#foo", "#bar"]

channel_keys

A mapping of channel names to keys for join-on-connect.

# Type: map # Values: map with string key value # Default: {} [servers.<name>] channel_keys = { channel1 = "key1" }

ping_time

The amount of inactivity in seconds before the client will ping the server.

# Type: integer # Values: any positive integer # Default: 180 [servers.<name>] ping_time = 180

ping_timeout

The amount of time in seconds for a client to reconnect due to no ping response.

# Type: integer # Values: any positive integer # Default: 20 [servers.<name>] ping_timeout = 20

reconnect_delay

The amount of time in seconds before attempting to reconnect to the server when disconnected.

# Type: integer # Values: any positive integer # Default: 10 [servers.<name>] reconnect_delay = 10

should_ghost

Whether the client should use NickServ GHOST to reclaim its primary nickname if it is in use.

# Type: boolean # Values: true, false # Default: false [servers.<name>] should_ghost = false

ghost_sequence

The command(s) that should be sent to NickServ to recover a nickname.

# Type: array of strings # Values: array of any strings # Default: ["REGAIN"] [servers.<name>] ghost_sequence = ["REGAIN"]

umodes

User modestring to set on connect.

# Type: string # Values: any string # Default: not set [servers.<name>] umodes = "+RB-x"

use_tls

Whether or not to use TLS. Clients will automatically panic if this is enabled without TLS support.

# Type: boolean # Values: true, false # Default: true [servers.<name>] use_tls = true

dangerously_accept_invalid_certs

When true, all certificate validations are skipped.

# Type: boolean # Values: true, false # Default: false [servers.<name>] dangerously_accept_invalid_certs = false

root_cert_path

The path to the root TLS certificate for this server in PEM format.1 2

# Type: string # Values: any string # Default: not set [servers.<name>] root_cert_path = ""

on_connect

Commands which are executed once connected.

# Type: array of string # Values: array of any strings # Default: not set [servers.<name>] on_connect = ["/msg NickServ IDENTIFY foo bar"]

who_poll_enabled

Whether or not to WHO polling is enabled.

# Type: boolean # Values: true, false # Default: true [servers.<name>] who_poll_enabled = true

who_poll_interval

WHO poll interval (in seconds) for servers without away-notify. Specifically, the time between individual WHO requests. Will be increased automatically if the server sends a rate-limiting message.

# Type: integer # Values: 1 .. 3600 # Default: 2 [servers.<name>] who_poll_interval = 2

monitor

A list of nicknames to monitor (if IRCv3 Monitor is supported by the server).

💡 Read more about monitoring users.

# Type: array of string # Values: array of any strings # Default: not set [servers.<name>] monitor = ["Foo", "Bar"]

chathistory

Whether or not to enable IRCv3 Chat History (if it is supported by the server).

# Type: boolean # Values: true, false # Default: true [servers.<name>] chathistory = true

sasl.plain

Plain SASL auth using a username and password

username

The account name used for authentication.

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.plain] username = "username"

password

The password associated with the account used for authentication.

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.plain] password = "password"

password_file

Read password from the file at the given path.1 2

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.plain] password_file = ""

password_file_first_line_only

Read password from the first line of password_file only.

# Type: boolean # Values: true, false # Default: true [servers.<name>] password_file_first_line_only = true

password_command

Executes the command with sh (or equivalent) and reads password as the output.

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.plain] password_command = ""

sasl.external

External SASL auth uses a PEM encoded X509 certificate. Reference.

cert

The path to PEM encoded X509 user certificate for external auth.1 2

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.external] cert = "/path/to/your/certificate.pem"

key

The path to PEM encoded PKCS#8 private key for external auth (optional).1 2

# Type: string # Values: any string # Default: not set [servers.<name>.sasl.external] key = "/path/to/your/private_key.pem"

  1. Shell expansions (e.g. "~/" → "/home/user/") are not supported in path strings. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  2. Windows path strings should usually be specified as literal strings (e.g. 'C:\Users\Default\'), otherwise directory separators will need to be escaped (e.g. "C:\\Users\\Default\\"). ↩ ↩2 ↩3 ↩4 ↩5 ↩6