Skip to content

Configuration file

JR edited this page Jan 14, 2024 · 21 revisions

The generated .conf configuration file is of an .ini file-like format of entries and values, separated with whitespace. Each entry is placed in a section, underneath a header in the form of [HeaderName].

The default location of the file varies between platforms, but can often be opened in a graphical editor by passing the program --gedit. Open it and peruse it to get an idea of what settings are available.

# kameloso v3.13.0 configuration file (2024-01-06 19:00:22)

[IRCClient]
nickname                    myNickname
user                        myuser
realName                    John Doe

[IRCBot]
account                     myNickname
password                    hunter2
#pass
quitReason                  Poof!
partReason                  Poof!
admins                      normalNick
homeChannels                #localfriends
guestChannels               #d,##networking

[IRCServer]
address                     irc.libera.chat
port                        6697

[Connection]
ipv6                        true
#privateKeyFile
#certFile
#caBundleFile
ssl                         true
receiveTimeout              1000
messageRate                 1.2
messageBurst                3

[Core]
colours                     true
brightTerminal              false
extendedColours             true
preferHostmasks             false
hideOutgoing                false
colouredOutgoing            true
extendedOutgoingColours     true
reexecToReconnect           false
saveOnExit                  false
exitSummary                 false
eagerLookups                false
headless                    false
#resourceDirectory
prefix                      "!"

...

Strings may be optionally quoted.

Settings for which there exist no command-line argument flag can still be overridden with the --set flag;

$ ./kameloso \
    --set printer.motd \
    --set printer.logs=false \
    --set core.hideOutgoing=false \
    --set connect.rejoinBehaviour=original

[IRCClient]

Entry Description
nickname Nickname.
user User string to register as on the server. Generally not important.
realName "Real name" field.

[IRCBot]

Entry Description
account What services account to log in as.
password Password to log into services with.
pass IRC registration pass string, not to be confused with services password.
quitReason Default string to give when disconnecting from the server.
partReason Default string to give when parting from a channel.
admins Comma-separated names of accounts of users that should enjoy global administrative privileges.
homeChannels Home channels the bot should operate in.
guestChannels Guest channels the bot should idle in.

[IRCServer]

Entry Description
address Server address.
port Server port, default 6667.

[Connection]

Entry Description
ipv6 Whether or not to use IPv6 connections.
privateKeyFile Path to a private key file, if such is necessary.
certFile Path to a certificate file, if such is necessary.
caBundleFile Certificate authority bundle file, if such is necessary.
ssl Whether or not to try to attempt an encrypted connection.
receiveTimeout (Advanced) Receive timeout in milliseconds.
messageRate (Advanced) How often to send messages to the server, in seconds.
messageBurst (Advanced) How many messages can be sent in one go, before throttling.

[Core]

Entry Description
colours Enable terminal colours.
brightTerminal Use terminal colours suited for a bright terminal background.
extendedColours Whether or not to extend terminal colours beyond normal ANSI.
preferHostmasks Use hostmasks to identify users.
hideOutgoing Hide all outgoing text from being echoed in the terminal.
colouredOutgoing Colour text sent to the server.
extendedOutgoingColours Whether or not to extende outgoing colours beyond the normal mIRC-inspired set.
reexecToReconnect Re-execute the program to reconnect, instead of merely reconnecting.
saveOnExit Save all settings upon program exit.
exitSummary Display a connection summary on program exit.
eagerLookups Eagerly look up users in home channels, as opposed to lazily when needed.
headless Disable all terminal output.
resourceDirectory Path to directory to save resource files in.
prefix Command prefix string (e.g. the ! in !command). May be left empty.

[Printer]

Entry Description
enabled Enable the Printer plugin.
monitor Monitor chat by printing activity to the terminal.
colourfulNicknames Colour nicknames in colours based on their nickname hash.
motd Display the Message Of The Day upon connecting.
filterMost Filter most noisy messages.
filterWhois Filter results to WHOIS queries.
hideBlacklistedUsers Hide messages from users on the blacklist.
logs Log home channel activity to file.
logGuestChannels Also log guest channels.
logPrivateMessages Also log private messages.

[Connect]

Entry Description
regainNickname Attempt to regain your wanted nickname if it was taken (and became available).
joinOnInvite Automatically join channels upon being invited.
exitOnSASLFailure Halt connection attempt if SASL login fails.
rejoinBehaviour In what manner to rejoin channels on reconnect; one of merge, mergeHomes, original and carryPrevious.
sendAfterConnect ;;-separated strings to send to the server after successfully connecting.

[Twitch]

Entry Description
enabled Enables the Twitch plugin.
ecount Enables ecount emote-counting.
watchtime Enables tracking viewer watch time.
watchtimeExcludesLurkers Viewers' watch time is only counted if they show chat activity.
songrequestMode Song request mode; one of disabled, youtube or spotify.
songrequestPermsNeeded User permissions needed to issue a song request.
fakeChannelFromQueries Whispers sent are counted as having taken place in that person's channel chat.
promoteBroadcasters Automatically assign broadcasters staff permissions.
promoteModerators Automatically assign moderators operator permissions.
promoteVIPs Automatically assign VIPs elevated permissions.
workerThreads How many threads to spawn to offload HTTP requests to.

[Admin]

Entry Description
enabled Enables the Admin plugin.

[Automode]

Entry Description
enabled Enables the Automode plugin.

[Bash]

Entry Description
enabled Enables the bash.org quotes plugin.
minimumPermissionsNeeded Minimum permissions required to invoke the !bash command.

[Chatbot]

Entry Description
enabled Enables the Chatbot plugin.

[Counter]

Entry Description
enabled Enables the Counter plugin.
minimumPermissionsNeeded Permissions needed to use a counter command.

[Help]

Entry Description
enabled Enables the Help plugin.
repliesInQuery Send help listing in a private message to the invoking user.

[Note]

Entry Description
enabled Enables the Notes plugin.
playBackOnAnyActivity Also playback notes when users show channel activity, and not just on joining.

[Oneliner]

Entry Description
enabled Enables the Oneliner plugin.
onelinersAsTwitchReplies (Twitch) Sends the oneliner as a reply rather than a normal channel message.

[Pipeline]

Entry Description
enabled Enables the Pipeline plugin.
fifoInWorkingDir Save the named FIFO pipe in the current working directory.

[Poll]

Entry Description
enabled Enables the Poll plugin.
onlyOnlineUsersCount Discount a vote if the user parts the channel or goes offline.
forbidPrefixedChoices Don't allow for creation of commands beginning with the prefix (e.g. !).
minimumPermissionsNeeded User level required to vote.

[Quote]

Entry Description
enabled Enables the Quote plugin.
timePrecision How many units to use when parroting a quote; one of year, month, day, minute, second and none.
alwaysPickFirstMatch When searching for a quote, if there were more than one match, always pick the first.

[SedReplace]

Entry Description
enabled Enables the SedReplace plugin.
relaxSyntax Allow malformed s/foo/bar syntax (that are missing closing /).

[Seen]

Entry Description
enabled Enables the Seen plugin.
ignoreNonChatEvents Only consider channel messages as activity.

[Stopwatch]

Entry Description
enabled Enables the Stopwatch plugin.

[Time]

Entry Description
enabled Enables the Time plugin.
amPM Reports the time in AM/PM format.

[Timer]

Entry Description
enabled Enables the Timer plugin.

[Webtitle]

Entry Description
enabled Enables the Webtitle plugin.
descriptions Also include page descriptions when reporting the title.
workerThreads How many threads to spawn to offload HTTP requests to.