ChatStats V2 is a desktop app for analyzing Minecraft chat logs from the Permanent Chat Logs mod.
It turns your local chat history into a clean dashboard with player stats, word stats, repeated messages, activity charts, parser notes, and shareable summaries.
ChatStats is a client-POV analyzer. It only analyzes chat that was visible to the Minecraft account that created the logs. It does not claim to show full server-wide activity.
ChatStats reads your local Minecraft chat log files and shows the results inside the app.
Main features:
- Built-in desktop dashboard
- No browser required for normal use
- Optional HTML export
- Searchable player leaderboard
- Player detail pages
- Cached Minecraft player heads beside player names
- GitHub Releases update checker
- Visual polish pass with hover cards, animated status text, and nicer charts
- UI bugfix polish for overview insight cards, simpler toolbar, and better page scrolling
- Top clean words
- Top mentions
- Top commands
- Top linked domains
- Repeated messages overall
- Repeated messages per player
- Activity by hour, weekday, day, and month
- Source file breakdown
- Parser warnings panel
- Copyable Discord/forum summary
- Saved last analysis cache
- Collapsible/auto-hidden settings sidebar
For normal users, download the Windows build from the GitHub Actions artifact or the project Releases page when available.
The user-facing download should contain only:
ChatStats.exe
Double-click ChatStats.exe to run the app.
- Open
ChatStats.exe. - Choose your Minecraft chatlogs folder.
- Enter your Minecraft username.
- Click Analyze Logs.
- View the dashboard inside ChatStats.
After the first run, ChatStats remembers your settings and can reload your last analysis.
Permanent Chat Logs usually stores logs somewhere inside your Minecraft instance folder.
A common location may look similar to:
.minecraft
└── config / chatlogs / logs
or, for launchers/modpacks:
Instances
└── Your Instance
└── chatlogs
The exact location depends on your launcher and mod configuration.
ChatStats supports pasting a folder path into the sidebar if browsing is annoying.
ChatStats can scan folders for common Permanent Chat Logs and chat transcript formats, including:
.json
.json.gz
.gz
.txt
.html
.log
Some Permanent Chat Logs files may be compressed even when the filename ends in .json. ChatStats detects that automatically.
Shows the main summary:
- Captured messages
- Observed players
- Clean words
- Average messages per day
- Your messages vs everyone else
- Hall of Fame highlights
Searchable table of observed players with:
- Message count
- Word count
- Average words per message
- Favorite word
- Most repeated message
- First seen / last seen
Double-click a player to open their detail page. When enabled, ChatStats loads Minecraft player heads beside player names and caches them locally. Use Refresh player heads on the Players page if the cache needs a fresh retry.
Shows deeper stats for one player:
- Messages
- Clean words
- Average words
- Favorite word
- Repeated message
- Longest message preview
- Favorite words chart
Shows cleaned chat word stats:
- Top clean words
- Top mentions
- Top commands
- Top linked domains
- Compact clean word table
ChatStats tries to keep rank names, player names, commands, URLs, and formatting codes out of normal word stats.
Shows repeated full messages:
- Overall repeated messages
- Per-player repeated messages
Shows chat activity patterns:
- Messages by hour
- Messages by weekday
- Messages by day
- Messages by month
Shows:
- Source files analyzed
- Parser warnings
Parser warnings do not always mean the report failed. Often they just mean one file was malformed, incomplete, locked, or still being written by Minecraft.
Click Copy Summary to copy a clean summary that can be pasted into Discord, forums, or messages.
Example:
📊 ChatStats Summary
Captured messages: 1,037
Observed players: 80
Clean words: 2,807 (1,119 unique)
Captured window: 2026-07-03 18:10 → 2026-07-03 21:19
Top visible player: Ollie_ok
Top clean word: visit (46x)
Peak captured hour: 20:00
Most repeated message: 15 repeats — ./visit Example
Generated with ChatStats V2.
ChatStats no longer needs HTML for normal use, but you can still export a browser report.
Use Export HTML if you want a standalone report file.
Advanced settings include:
- HTML output folder
- Browser executable path
- Open exported HTML automatically
- Open output folder instead of browser
ChatStats runs locally on your computer.
It analyzes files from the folder you choose and stores settings/cache beside the app. It does not need a server to analyze your logs.
If Show player heads is enabled, ChatStats contacts public Minecraft avatar services for visible player usernames, then caches the returned 32px head images locally. It can also use Minecraft UUID lookup as a fallback.
Generated outputs may contain Minecraft usernames and chat messages, so review summaries/reports before sharing them publicly.
ChatStats can check GitHub Releases for newer versions.
Use:
Check for Updates
from the sidebar footer.
Advanced settings also include:
Check for updates on startup
Auto-install works when ChatStats is running from the built Windows EXE. The GitHub release needs a downloadable ChatStats.exe asset, or a zip containing ChatStats.exe.
Source/dev mode cannot replace itself automatically, so it will open the downloaded file location or GitHub Releases instead.
Make sure you selected the actual folder containing Permanent Chat Logs files, not just the main .minecraft folder.
Try opening Advanced settings and unchecking:
Ignore server/system messages
Then run the analysis again. This can help test whether the files are being read.
That is usually fine. Logs can be incomplete if Minecraft was still writing them, or if a file is malformed. ChatStats will still use the messages it can safely parse.
The sidebar may have auto-hidden after analysis. Click:
☰ Settings
to bring it back.
Most users only need:
Chatlogs folder
Your Minecraft username
Analyze Logs
Everything else is under Advanced settings.
This project is built with Python and packaged into a Windows EXE using PyInstaller through GitHub Actions.
The main source layout is:
ChatStats.pyw
ChatStats Files/
├── app/
│ ├── launcher_gui.py
│ ├── chatstats.py
│ ├── analytics/
│ └── report/
├── assets/
├── cache/
├── developer/
└── output/
The Windows build workflow lives in:
.github/workflows/build-windows.yml
To build locally, install dependencies and run the PyInstaller spec from the app folder. The GitHub Actions workflow is the recommended build path.
Current source version: v0.13.4-beta