
Security News
Static vs. Runtime Reachability: Insights from Latio’s On the Record Podcast
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.
Aircraft Tracker - Fully configurable airport departure board style display using ADS-B data
Fully Configurable Aircraft Tracker with Airport Departure Board Style Display
A beautiful Python CLI tool that tracks nearby aircraft and displays them in an airport departure board style interface using real-time ADS-B data from the OpenSky Network. Now with comprehensive configuration support for complete customization!
✅ Complete Configuration System - All hardcoded values are now configurable
✅ JSON Configuration Files - Easy-to-edit configuration with example templates
✅ Backwards Compatibility - All existing usage patterns still work
✅ Environment-Specific Configs - Different settings for different use cases
✅ Enhanced Documentation - Comprehensive configuration guides
pip install flight-display
# Clone the repository
git clone <repository-url>
cd flight-display
# Install the package
pip install -e .
# or with uv
uv pip install -e .
# Install dependencies
pip install -r requirements.txt
# or with uv
uv pip install -r requirements.txt
# Run directly
python main.py
# Auto-detect location and start tracking
flight-display
# Use specific coordinates (latitude, longitude)
flight-display --lat 40.7128 --lon -74.0060
# Set custom search radius and update interval
flight-display --radius 100 --interval 30
NEW! Flight Display now supports comprehensive JSON-based configuration:
# Create an example configuration file
flight-display --create-config
# Use your custom configuration
cp config_example.json config.json
# Edit config.json to your preferences
flight-display --config config.json
# Auto-detect location and start tracking
flight-display
# Use specific coordinates (latitude, longitude)
flight-display --lat 40.7128 --lon -74.0060
# Set custom search radius (default: from config or 50km)
flight-display --radius 100
# Set update interval (default: from config or 10 seconds)
flight-display --interval 30
# Use custom configuration file
flight-display --config my-config.json
# Skip online airline database for faster startup
flight-display --no-online-db
# Create example configuration file
flight-display --create-config
Flight Display supports comprehensive JSON configuration files. All aspects of the application can be customized without modifying code.
Generate example config:
flight-display --create-config
Copy and customize:
cp config_example.json config.json
# Edit config.json with your preferences
Use your configuration:
flight-display # Automatically uses config.json if present
# OR
flight-display --config my-custom-config.json
Category | Examples |
---|---|
Display | Colors, thresholds, table format, aircraft limit |
Location | Default coordinates, fallback location, radius |
Aircraft Types | Type mappings (Boeing 737 → B737), unknown codes |
Registration | Country patterns (N → US, G- → UK), private aircraft |
APIs | Endpoints, timeouts, retry behavior |
Units | Conversion factors, distance calculations |
Change default location:
{
"location": {
"default_latitude": 51.5074,
"default_longitude": -0.1278,
"default_location_name": "London, UK"
}
}
Adjust display settings:
{
"display": {
"max_aircraft_displayed": 20,
"high_altitude_threshold": 35000,
"default_update_interval": 5
}
}
Add custom aircraft types:
{
"aircraft_types": {
"type_mappings": {
"Cessna 172": "C172",
"Piper Cherokee": "PA28"
}
}
}
For complete configuration documentation, see CONFIGURATION.md.
flight-display --no-adaptive --radius 50
flight-display --quiet
flight-display --help
### Legacy Usage (Backward compatible)
```bash
# Auto-detect location
python main.py
# Manual coordinates
python main.py 40.7128 -74.0060
The departure board displays the following information for each aircraft:
Column | Description |
---|---|
CALLSIGN | Aircraft callsign or registration |
OPERATOR | Airline or operator name |
TYPE | Aircraft type (e.g., B737, A320) |
ALTITUDE | Current altitude with color coding |
SPEED | Ground speed in knots |
TRACK | Heading in degrees |
V/SPEED | Vertical rate with directional arrows |
DISTANCE | Distance from your location |
# Location Options
--lat, --latitude FLOAT Your latitude coordinate
--lon, --longitude FLOAT Your longitude coordinate
# Display Options
--radius, -r FLOAT Search radius in km (default: 25)
--interval, -i INT Update interval in seconds (default: 15)
--max-radius FLOAT Maximum search radius for adaptive search (default: 200)
# Data Options
--no-online-db Skip fetching online airline database
--no-adaptive Disable adaptive radius search
# Output Options
--quiet, -q Reduce output verbosity
--version, -v Show version information
--help, -h Show help message
The tool includes smart rate limiting handling:
flight-display/
├── src/flight_display/
│ ├── __init__.py # Package initialization
│ ├── tracker.py # Core aircraft tracking logic
│ └── cli.py # Command-line interface
├── main.py # Backward compatibility wrapper
├── main_legacy.py # Legacy implementation
├── pyproject.toml # Package configuration
└── README.md # This file
# Install in development mode
pip install -e .
# Test the CLI
flight-display --help
# Test with specific coordinates
flight-display --lat 51.5074 --lon -0.1278 --radius 50
# Start with auto-detection
flight-display
flight-display --lat 51.4700 --lon -0.4543 --radius 50
flight-display --lat 40.7128 --lon -74.0060 --radius 75 --interval 10
flight-display --no-online-db --radius 30
--radius 100
or higher# Update pip/uv first
pip install --upgrade pip
uv self update
# Clean install
pip uninstall flight-display
pip install -e .
MIT License - See LICENSE file for details.
Contributions welcome! Please feel free to submit issues and pull requests.
Happy flight tracking! ✈️
FAQs
Aircraft Tracker - Fully configurable airport departure board style display using ADS-B data
We found that flight-display demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.
Security News
The latest Opengrep releases add Apex scanning, precision rule tuning, and performance gains for open source static code analysis.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.