A KinesisTail-like TUI for monitoring the EDDN live stream
Project description
EDDN Tail
A KinesisTail-like TUI for monitoring the Elite Dangerous Data Network (EDDN) live stream in your terminal.
Connects to EDDN's ZeroMQ PUB/SUB relay and displays all messages flowing through the network in real-time — useful for verifying your own submissions or just watching the galaxy's data flow.
Installation
pip install eddn-tail
Or install from source:
pip install .
Or run directly without installing:
python eddn_tail.py [options]
Usage
# Watch all EDDN messages
eddn-tail
# Filter to Scan events only
eddn-tail -f Scan
# Filter by system name
eddn-tail -s Sol
# Filter by station name
eddn-tail -t Jameson Memorial
# Filter by schema
eddn-tail -S commodity/3
# Combine filters (AND logic)
eddn-tail -f FSDJump -s Sol
# Connect to beta EDDN
eddn-tail --beta
# Connect to dev EDDN
eddn-tail --dev
Keybindings
| Key | Action |
|---|---|
/ |
Focus filter input (regex supported) |
Esc |
Clear filter |
p |
Pause/resume stream |
d |
Toggle detail pane |
e |
Export selected message JSON to file |
Ctrl+L |
Clear all received events |
↑/↓ |
Navigate rows |
Enter |
Show full message detail |
q |
Quit |
How it works
EDDN is a publish/subscribe message relay. When tools (like EDMC, EDDI, or Decky plugins) upload data to https://eddn.edcd.io:4430/upload/, the EDDN Gateway validates the message and broadcasts it over a ZeroMQ PUB socket on port 9500. This tool subscribes to that stream, decompresses the zlib-encoded JSON, and displays it in a scrollable, filterable TUI.
| Service | Upload URL | Listener (ZMQ) |
|---|---|---|
| Live | https://eddn.edcd.io:4430/upload/ |
tcp://eddn.edcd.io:9500 |
| Beta | https://beta.eddn.edcd.io:4431/upload/ |
tcp://beta.eddn.edcd.io:9510 |
| Dev | https://dev.eddn.edcd.io:4432/upload/ |
tcp://dev.eddn.edcd.io:9520 |
About the uploaderID column
EDDN relays do not broadcast the original uploaderID. The relay hashes it with a rotating nonce every 3 minutes (SHA-1(nonce + "-" + uploaderID)) before broadcasting, so the values shown in the Uploader column are 40-character hex strings — not commander names. Because the hash changes every 3 minutes, there is no reliable way to filter by uploader from the CLI. Use the in-app live filter (/) for short-term substring matching on any visible column value.
To inspect a message's full JSON payload, select a row and press Enter, or press e to export it to a file.
EDDN message format
Messages on the wire are zlib-compressed JSON with this structure:
{
"$schemaRef": "https://eddn.edcd.io/schemas/journal/1",
"header": {
"uploaderID": "<40-char SHA-1 hash, rotates every 3 min>",
"softwareName": "...",
"softwareVersion": "...",
"gameversion": "...",
"gamebuild": "...",
"gatewayTimestamp": "2026-05-10T22:36:19.745292Z"
},
"message": {
"event": "Scan",
"StarSystem": "Sol",
...
}
}
Supported schemas: journal/1, commodity/3, outfitting/2, shipyard/2.
Development
pip install -e ".[dev]"
pytest
License
MIT © AwaNoodle
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eddn_tail-0.2.0.tar.gz.
File metadata
- Download URL: eddn_tail-0.2.0.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7c591821cb2e9dd388a43a596296cd5c34e9af20cc5850761346e23125c3ff1
|
|
| MD5 |
64dab0401add5fb3f88d12ea9768bf60
|
|
| BLAKE2b-256 |
b0f072271c23e9b98e7015bc8196bcc9116c952d4585496f555bd323bff5fee2
|
Provenance
The following attestation bundles were made for eddn_tail-0.2.0.tar.gz:
Publisher:
release.yml on AwaNoodle/eddn-tail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eddn_tail-0.2.0.tar.gz -
Subject digest:
f7c591821cb2e9dd388a43a596296cd5c34e9af20cc5850761346e23125c3ff1 - Sigstore transparency entry: 1542294046
- Sigstore integration time:
-
Permalink:
AwaNoodle/eddn-tail@da621d36e8e32b71988ac476c5cedd950009e398 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/AwaNoodle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da621d36e8e32b71988ac476c5cedd950009e398 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eddn_tail-0.2.0-py3-none-any.whl.
File metadata
- Download URL: eddn_tail-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35d96ddb02a40eb56e0f2c7df208de93176214bb88949b808294e562824f89e8
|
|
| MD5 |
d14fe55e6dedf8ecd6c37f60686124ad
|
|
| BLAKE2b-256 |
918dc93c4e5e2856037291760500796db1b04921bde0d4e19ed3fb5cc3447b71
|
Provenance
The following attestation bundles were made for eddn_tail-0.2.0-py3-none-any.whl:
Publisher:
release.yml on AwaNoodle/eddn-tail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eddn_tail-0.2.0-py3-none-any.whl -
Subject digest:
35d96ddb02a40eb56e0f2c7df208de93176214bb88949b808294e562824f89e8 - Sigstore transparency entry: 1542294156
- Sigstore integration time:
-
Permalink:
AwaNoodle/eddn-tail@da621d36e8e32b71988ac476c5cedd950009e398 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/AwaNoodle
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@da621d36e8e32b71988ac476c5cedd950009e398 -
Trigger Event:
push
-
Statement type: