CatchUp
Version, currently 0.20.07 versions
gitlab.com/dbohdan/catchup
Ephemeral IRC logger and Web-based log viewer
No shard.yml at tag v0.20.0.
Installation
# Add this to your shard.yml
dependencies:
CatchUp:
gitlab: dbohdan/catchup
version: ~> 0.20.0Then run:
shards installshard.yml
No shard.yml at tag v0.20.0. You can read it on the repository.
Dependencies
No shard.yml at tag v0.20.0.
README
CatchUp
CatchUp is an ephemeral IRC logger and a mobile-friendly Web-based log viewer in a single binary.
It was created for #tcl on freenode (and now Libera Chat), but it is written in Go.
It understands IRC bridges, like the ijchain XMPP bridge and the ischain Slack bridge that operate on the channel.
It only keeps logs for the last 48 hours.
The goal is to let you catch up with the scrollback from your phone, not to keep a record forever.
CatchUp uses SQLite for storage.
The database is created in ${XDG_STATE_HOME}/catchup/, ~/.local/state/catchup/ by default.
Screenshot

Building
Install Go 1.25 or later and Task on your developer machine, clone this repository, and run:
# A static binary for the current platform:
task release
# Or for another target:
task release OS=linux ARCH=amd64
# Or for every supported target:
task release-all
The binaries are written to bin/ as catchup-VERSION-GOOS-GOARCH (for example, catchup-v0.16.0-linux-arm64) and are fully static; they cross-compile without a C toolchain.
Developing
The HTML view uses templ, which generates Go code to create a type-safe template.
Because the generated file (internal/web/index_templ.go) is committed, building only requires Go.
Install the code generator to edit the template:
go get -tool github.com/a-h/templ/cmd/templ@latest
Then edit internal/web/index.templ and run task generate to regenerate.
Command-line options
Usage: catchup [options]
-h, --help Show this help and exit
-V, --version Print version and exit
--host string Host to bind to (default "127.0.0.1")
--port int Port to bind to (default 8080)
--irc-uri string IRC connection URI (default "ircs://irc.libera.chat/#tcl")
--nick string IRC bot's nick (default "CatchUpBot")
--bridge string Matching nicks are treated as bridges to other channels (default "^i[js]chain")
--table string Database table (default "tcl")
--collapsed-nicks string Hide messages from matching nicks by default
For example, --collapsed-nicks='(?i)^UptimeRobot$' initially hides UptimeRobot's messages.
Click [ + ] to show them and [ − ] to hide them again.
License
MIT.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.20.0- Tagged
- Oct 16, 2026
- Commit
31b975deaf07- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
gitlab.com/dbohdan/catchup
Metadata
- Created
- Aug 16, 2026
- Updated
- Oct 24, 2026
- Synced
- Oct 24, 2026
- Versions
- 7