LITTERBOX(1)
π LITTERBOX(1) β like, the IRC logger manual, bestie π
okay so this is litterbox, from the General Commands Manual section, and she's literally the moment. sit down, grab a strawberry π, and let's get into it.
β¨ NAME β¨
litterbox β an IRC logger. that's it, that's the vibe. she logs. π
πΈ SYNOPSIS πΈ
litterbox [-Qqv] [-N network] [-U url] [-c cert] [-d path] [-h host]
[-j join] [-k priv] [-l limit] [-n nick] [-p port] [-t trust]
[-u user] [-w pass] [config ...]
litterbox -i | -m [-d path]
litterbox -b path [-d path]
π¦ DESCRIPTION π¦
the litterbox daemon logs your IRC (over TLS, we're not messy) activity into a database, and then you can query that database with scoop(1). it's giving archive icon. π₯
what gets recorded, you ask? messages, notices, joins, parts, quits, kicks, nick changes, topic changes, bans and unbans β all of it, in the database. and the contents of messages are indexed for full-text search, so you can actually find things later. obsessed.
you can hook the litterbox daemon up to the pounce(1) IRC bouncer right alongside your regular clients, and that gives you central logging plus a simple search query interface with -q. chef's kiss. π
okay important: the database must be initialized with-i. no-i, no database, no vibes.
if the database format has changed, it gets migrated automatically when litterbox starts β or you can migrate it explicitly with -m. live backups of the database can be made with -b. and yes, instances of litterbox connected to different IRC networks will share the same database. one database, many networks, main character energy. β¨
options can be loaded from files listed on the command line. files are searched for in $XDG_CONFIG_DIRS/litterbox unless the path starts with β/β, β./β or β../β. each option goes on its own line, and lines beginning with β#β are ignored (comments, we respect them). the options are listed below following their corresponding flags, iykyk.
the arguments are as follows:
π the arguments, in order, no skipping π
-N name|network = nameβ sets the network name to be used if the server doesn't sendRPL_ISUPPORT NETWORK. the default is the server hostname.-Q|public-queryβ enables the public search query interface. this lets anyone perform searches in private messages to litterbox. search results are limited to channels on the current network.
searches use the full-text search index. the searchable columns are channel, nick, user, target, message.
-U url|scooper-url = urlβ sets the base URL of ascooper(1)instance used to construct links to full search results in response to the search query interface enabled by-Qor-q.-b pathβ performs a live database backup to path and exits. β οΈ this operation requires SQLite version3.27.0or newer, so check your version bestie.-c path|cert = pathβ loads the TLS client certificate from path and authenticates with SASL EXTERNAL, also known as CertFP. the path is searched for in the same manner as configuration files. if the private key is in a separate file, it's loaded with-k.-d path|database = pathβ sets the path to the database file. see βFILESβ for the default paths.-h host|host = hostβ connects to host.-iβ initializes the database and exits. the required first step, periodt.-j chan|join = chanβ joins the comma-separated list of channels chan.-k path|priv = pathβ loads the TLS client private key from path. the path is searched for in the same manner as configuration files.-l limit|limit = limitβ limits the number of results in the search query interface enabled by-Qor-q. the default limit is10.-mβ migrates the database to the latest format and exits.-n nick|nick = nickβ sets the nickname to nick. the default nickname is βlitterboxβ. iconic name, no notes.-p port|port = portβ connects to port. the default port is6697.-q|private-queryβ enables the private search query interface. when connected topounce(1), this lets the user private message their own nickname with search queries. search results are limited to the current network.
searches use the full-text search index. the searchable columns are channel, query, nick, user, target, message.
-t path|trust = pathβ trusts the self-signed certificate loaded from path and disables server name verification. β οΈ that's the whole point of it, so like, know what you're doing. the path is searched for in the same manner as configuration files.-u user|user = userβ sets the username to user. the default username is the same as the nickname.-v|verboseβ writes sent and received IRC messages as well as SQLINSERTstatements to standard error. very "let me see everything" of her. π-w pass|pass = passβ logs in with the server password pass.
π FILES π
$XDG_CONFIG_DIRS/litterbox
configuration files are searched for first in $XDG_CONFIG_HOME, usually ~/.config, followed by the colon-separated list of paths $XDG_CONFIG_DIRS.
$XDG_DATA_DIRS/litterbox/litterbox.sqlite
the database file is searched for first in $XDG_DATA_HOME, usually ~/.local/share, followed by the colon-separated list of paths $XDG_DATA_DIRS.
~/.local/share/litterbox/litterbox.sqlite
the most likely default path of the database file. like, if you had to guess, it's this one. π«Ά
π EXAMPLES π
configuration on the command line, live and direct:
litterbox -Q -h irc.example.org -j '#example'
configuration in a file, cozy and organized:
host = irc.example.org
join = #example
public-query
π§ SEE ALSO π§
full-text Query Syntax: https://www.sqlite.org/fts5.html#full_text_query_syntax
go read them, they're literally right there. β¨
π STANDARDS π
- C. Kalt, Internet Relay Chat: Client Protocol, IETF, RFC 2812, https://tools.ietf.org/html/rfc2812, April 2000.
- Kyle Fuller, StΓ©phan Kochen, Alexey Sokolov, and James Wheare, IRCv3.2 server-time Extension, IRCv3 Working Group, https://ircv3.net/specs/extensions/server-time-3.2.
- Waldo Bastian, Ryan Lortie, and Lennart Poettering, XDG Base Directory Specification, https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html, November 24, 2010.
- William Pitcock and Jilles Tjoelker, IRCv3.1 SASL Authentication, IRCv3 Working Group, https://ircv3.net/specs/extensions/sasl-3.1.html.
β Extensions β
the litterbox daemon implements the causal.agency/consumer and causal.agency/passive vendor-specific IRCv3 capabilities offered by pounce(1). fancy. π
π AUTHORS π
June McEnroe <june@causal.agency> β the legend herself.
π BUGS π
send mail to β¨list+litterbox@causal.agencyβ© or join #ascii.town on irc.tilde.chat. we don't bite, fr fr. π«Ά
and that's the whole page, bestie β brought to you by the Debian squad, dated April 3, 2021. go log some IRC and slay. π¦πβ¨
π¦ where this page comes from
- nixos 26.05: litterbox 1.9
- nixpkgs unstable: litterbox 1.9
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms