https://github.com/grishmahat/discord-data-cli
A terminal UI tool to analyze your Discord data exportbuilt in Rust
https://github.com/grishmahat/discord-data-cli
cli data-analysis discord discord-data ratatui rust terminal tui
Last synced: 4 months ago
JSON representation
A terminal UI tool to analyze your Discord data exportbuilt in Rust
- Host: GitHub
- URL: https://github.com/grishmahat/discord-data-cli
- Owner: GrishMahat
- License: gpl-3.0
- Created: 2026-02-23T09:30:58.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-23T10:22:48.000Z (4 months ago)
- Last Synced: 2026-02-23T18:58:19.738Z (4 months ago)
- Topics: cli, data-analysis, discord, discord-data, ratatui, rust, terminal, tui
- Language: Rust
- Homepage:
- Size: 51.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Discord Data Analyzer
[](LICENSE)
[](https://github.com/GrishMahat/discord-data-cli/releases/latest)
[](https://github.com/GrishMahat/discord-data-cli/actions)
A terminal UI tool to analyze your Discord data export — built in Rust.
```
┌─ Discord Data Analyzer ────────────────────────────────────────┐
│ YourName#0000 msgs 12,451 │
│ Ready channels 183 │
├─ Home ── Overview ── Channels ── Settings ──────────────────┤
│ │
│ ┌─ Menu ────────────────────┐ ┌─ Quick Stats ──────────────┐ │
│ │ 1 Analyze Now │ │ Messages 12,451 │ │
│ │ 2 Overview │ │ Channels 183 │ │
│ │ 3 Download Attachments │ │ With text 94.2% │ │
│ │ 4 Messages (All) │ │ Avg length 42 ch │ │
│ │ 5 DMs │ │ Emoji 3,821 │ │
│ │ 6 Group DMs │ │ Servers 27 │ │
│ │ 7 Public Threads │ │ │ │
│ │ 8 Voice Channels │ │ Peak 21:00 843 msgs │ │
│ │ 9 Settings │ └────────────────────────────┘ │
│ │ 10 Quit │ │
│ └───────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
```
## Features
- **Message stats** — total count, channels, emoji, attachments, average length, top words
- **Temporal analysis** — messages by hour-of-day, day-of-week, and month; earliest and latest dates
- **Channel browser** — filter by DMs, Group DMs, Public Threads, and Voice; read message previews
- **Overview dashboard** — server count, audit logs, support tickets, activity events
- **Attachment downloader** — fetch all media files from your message history
- **Session persistence** — resumes your last session automatically on next launch
- **Zero dependencies at runtime** — single static binary, no install required
## Download
Head to the [Releases](https://github.com/GrishMahat/discord-data-cli/releases/latest) page and grab the binary for your platform:
| Platform | File |
|---|---|
| Windows (x64) | `discord-analyzer-windows-x64.exe` |
| macOS (Apple Silicon) | `discord-analyzer-macos-arm64` |
| macOS (Intel) | `discord-analyzer-macos-intel` |
| Linux (x64) | `discord-analyzer-linux-x64` |
On macOS/Linux, mark the binary as executable before running:
```bash
chmod +x discord-analyzer-*
./discord-analyzer-macos-arm64
```
On macOS you may need to allow the binary in **System Settings > Privacy & Security**.
## Get Your Discord Data
1. Open Discord and go to **User Settings** (gear icon next to your username)
2. Scroll down to **Privacy & Safety**
3. Click **Request all of my Data**
4. Confirm the request
5. Wait 1–2 days — Discord will email you a download link
6. Download and extract the zip file
## Usage
Run the binary from your terminal:
```bash
./discord-analyzer
```
On first run, a setup wizard walks you through:
1. **Export path** — paste the path to your extracted Discord data folder
2. **Results directory** — where to save analysis output (defaults to inside the export folder)
3. **Profile ID** — optional, for managing multiple exports
Then select **Analyze Now** from the home menu. Analysis runs in the background with a live progress bar.
## Controls
| Key | Action |
|---|---|
| `w` / `s` or arrow keys | Move up / down |
| `Enter` | Select |
| `b` | Go back |
| `q` | Quit |
| `1`–`5` | Switch channel filters (All / DMs / Groups / Threads / Voice) |
| `u` / `d` | Page up / down in channel list |
| `←` / `→` | Adjust settings values |
## Build from Source
Requires [Rust](https://rustup.rs) stable.
```bash
git clone https://github.com/GrishMahat/discord-data-cli.git
cd discord-data-cli
cargo build --release
./target/release/discord-analyzer
```
## Why Rust?
I originally started this in Python but hadn't touched it in almost a year. Rust was what I was actively using, so I built it in Rust instead. It's not about performance — it just made sense to use the language I actually knew.
## License
GNU General Public License v3 — see [LICENSE](LICENSE)