Skip to content

junzis/ostk

Repository files navigation

OSTK - OpenSky Toolkit

A desktop application for querying historical flight data from the OpenSky Network Trino database.

Query Builder AI Chat

Features

  • Query Builder - Visual interface for building flight data queries

    • Filter by time range, aircraft (ICAO24), callsign, airports
    • Quick presets: yesterday, last week
    • Inline editing of filter values
  • AI Chat - Natural language interface for queries

    • Ask questions like "Flights from Amsterdam to London yesterday"
    • Powered by Groq (free API with fast inference)
    • Automatic query generation and execution
  • Data Export - Save results in CSV or Parquet format

Installation

Pre-built Binaries

Download from GitHub Releases:

Platform Download
Linux x64 ostk-linux-x64
Windows x64 ostk-windows-x64.exe
macOS Intel OSTK-macos-x64.app.zip
macOS Apple Silicon OSTK-macos-arm64.app.zip

macOS Installation

The macOS app is ad-hoc signed. On first launch, you may see a security warning. To allow the app:

# Unzip and move to Applications
unzip OSTK-macos-*.app.zip
mv OSTK.app /Applications/

# Remove quarantine attribute
xattr -cr /Applications/OSTK.app

Or: Right-click the app → Open → Click "Open" in the dialog.

Linux Installation

# Make executable and run
chmod +x ostk-linux-x64
./ostk-linux-x64

Required dependencies:

# Debian/Ubuntu
sudo apt install libwebkit2gtk-4.1-0

# Arch Linux
sudo pacman -S webkit2gtk-4.1

NVIDIA + Wayland: The app automatically detects NVIDIA GPUs on Wayland and applies necessary workarounds. If you still encounter issues, you can manually set:

WEBKIT_DISABLE_DMABUF_RENDERER=1 ./ostk-linux-x64

Build from Source

Requirements:

  • Rust 1.70+
  • System dependencies (Linux only):
    sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev

Build:

git clone https://github.com/junzis/ostk
cd ostk/ostk-rs
cargo build --release

Run:

cargo run --release

Configuration

OpenSky Credentials

  1. Create an account at OpenSky Network
  2. Go to Settings → OpenSky Credentials
  3. Enter your username and password

LLM Provider (for AI Chat)

Groq (Free)

  1. Get a free API key at console.groq.com
  2. Go to Settings → LLM Provider
  3. Enter your API key and click "Fetch" to load available models
  4. Select a model (e.g., llama-3.3-70b-versatile)

Usage

Query Builder

  1. Click filter chips to add filters (Start Time, ICAO24, etc.)
  2. Edit values inline by clicking on them
  3. Use presets for quick time ranges
  4. Click "Preview Query" to see the generated query
  5. Click "Execute" to run the query
  6. Export results as CSV or Parquet

AI Chat

  1. Configure your Groq API key in Settings
  2. Type natural language queries:
    • "Flights from EHAM to EGLL yesterday"
    • "Get trajectory for aircraft 485A32 on Nov 8, 2025"
    • "All departures from Frankfurt in the last 3 hours"
  3. Click "Execute" on generated queries

Project Structure

ostk-rs/
├── src/
│   ├── main.rs          # Application entry point
│   ├── commands.rs      # Tauri commands (backend API)
│   ├── agent.rs         # LLM agent for query parsing
│   ├── config.rs        # Configuration management
│   ├── state.rs         # Application state
│   └── llm/             # LLM provider implementations
│       ├── mod.rs
│       └── groq.rs
├── web/                 # Frontend (HTML/CSS/JS)
│   ├── index.html
│   ├── css/style.css
│   └── js/app.js
├── resources/
│   └── agent.md         # LLM system prompt
└── tauri.conf.json      # Tauri configuration

Dependencies

  • opensky - Rust client for OpenSky Trino database
  • Tauri - Desktop app framework
  • tokio - Async runtime

License

MIT License - see LICENSE for details.

Related Projects

  • opensky - Rust library for OpenSky Network
  • pyopensky - Python library for OpenSky Network
  • traffic - Air traffic data analysis library

About

Nifty OpenSky tools with good vibes

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors