Skip to main content

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.

EDDN Tail Demo

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eddn_tail-0.2.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eddn_tail-0.2.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

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

Hashes for eddn_tail-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f7c591821cb2e9dd388a43a596296cd5c34e9af20cc5850761346e23125c3ff1
MD5 64dab0401add5fb3f88d12ea9768bf60
BLAKE2b-256 b0f072271c23e9b98e7015bc8196bcc9116c952d4585496f555bd323bff5fee2

See more details on using hashes here.

Provenance

The following attestation bundles were made for eddn_tail-0.2.0.tar.gz:

Publisher: release.yml on AwaNoodle/eddn-tail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for eddn_tail-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 35d96ddb02a40eb56e0f2c7df208de93176214bb88949b808294e562824f89e8
MD5 d14fe55e6dedf8ecd6c37f60686124ad
BLAKE2b-256 918dc93c4e5e2856037291760500796db1b04921bde0d4e19ed3fb5cc3447b71

See more details on using hashes here.

Provenance

The following attestation bundles were made for eddn_tail-0.2.0-py3-none-any.whl:

Publisher: release.yml on AwaNoodle/eddn-tail

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page