A read-only viewer for the chatlog.html file that Fantasy Grounds writes for
a campaign. It parses the chat/dice log and presents it in a helpful,
navigable way — searching, filtering by speaker, and grouping by session. It
never edits the underlying file; it is a pure viewer.
This project ships two independent implementations of the same tool:
| Version | Location | Description |
|---|---|---|
| Python | chatlog-viewer/python/ |
The original implementation, built with Python and tkinter (fg_chatlog_viewer.py). |
| Go | chatlog-viewer/go/ |
A Go + Bubble Tea terminal (TUI) port. Its parser is a 1:1 port of the Python heuristics — the test suite asserts the Go parser produces byte-for-byte identical entries to the Python one. |
A campaign's db.xml stores character sheets, NPCs, items, notes, etc., but
Fantasy Grounds does not save the chat/dice log into it. The chat history
lives in chatlog.html, which grows every session — that is the file this
tool reads.
chatlog-viewer/
├── python/ Python/tkinter implementation + helper scripts
└── go/ Go/Bubble Tea TUI implementation (parser, ui, cmd)
See each implementation's README for build/run instructions and controls.
Initial release: two working viewers (Python GUI and Go TUI), the Go parser verified for parity against the Python heuristics, session grouping, speaker and message-type filters, search, and original FG colors preserved.