Skip to content

Stay connected to what's above — accessible sky tracking for everyone

License

Notifications You must be signed in to change notification settings

Orinks/AccessiSky

Repository files navigation

AccessiSky

Stay connected to what's above.

CI License: MIT Python Built with wxPython

AccessiSky helps you stay aware of celestial events — whether or not you can see them. Built with full screen reader support, it brings ISS passes, moon phases, meteor showers, and more to everyone.

Features

  • ISS Tracking: Know when the International Space Station passes over your location
  • Moon Phases: Current phase, illumination percentage, upcoming lunar events
  • Sun Data: Sunrise, sunset, twilight times (civil, nautical, astronomical)
  • Aurora Forecast: Kp index, geomagnetic activity, aurora visibility predictions
  • Space Weather: Solar wind speed and density from NOAA SWPC
  • Meteor Showers: Calendar of 11 major annual showers with peak dates, ZHR, and viewing ratings
  • Planet Visibility: Which planets are visible tonight with rise/set estimates and brightness
  • Eclipse Calendar: Solar and lunar eclipses from 2025-2030 with visibility regions
  • Viewing Conditions: Combined score factoring clouds, moon, darkness, and light pollution
  • Dark Sky Times: When true astronomical darkness begins/ends for astrophotography
  • Location Settings: Save your coordinates for accurate calculations
  • Accessibility First: Full screen reader support, keyboard navigation, proper labels

Installation

Quick Start with uv (Recommended)

uv handles everything automatically — no manual environment activation needed.

# Install uv first (if you don't have it)
# Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the repository
git clone https://github.com/Orinks/AccessiSky.git
cd AccessiSky

# Install and run (uv creates the environment automatically)
uv sync
uv run python -m accessisky

Traditional Method

# Clone the repository
git clone https://github.com/Orinks/AccessiSky.git
cd AccessiSky

# Create and activate virtual environment
python -m venv .venv
# On Windows:
.venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate

# Install and run
pip install -e .[dev]
python -m accessisky

Data Sources

AccessiSky uses free, open APIs that require no API keys:

Live API Data

Local Calculations (with API fallback)

  • Moon phases - USNO API primary, local astronomical algorithms as fallback
  • Meteor showers - IMO (International Meteor Organization) data, calculated locally
  • Planet visibility - Simplified orbital mechanics, calculated locally
  • Eclipses - NASA eclipse data for 2025-2030, stored locally
  • Viewing conditions - Combines weather API data with local calculations

Development

# Run tests
pytest

# Run with coverage
pytest --cov=src/accessisky --cov-report=term-missing

# Lint code
ruff check .

# Format code
ruff format .

Keyboard Shortcuts

  • Ctrl+R - Refresh all data
  • Ctrl+L - Set location
  • Ctrl+, - Settings
  • F1 - ISS Tracker tab
  • F2 - Moon Phases tab
  • F3 - Sun Times tab
  • F4 - Aurora Forecast tab
  • F5 - Meteor Showers tab
  • F6 - Planets tab
  • F7 - Eclipses tab
  • Ctrl+Tab - Next tab
  • Ctrl+Q - Quit

License

MIT License - see LICENSE for details.

Related Projects

Development Setup

# Clone and install with uv
git clone https://github.com/Orinks/AccessiSky.git
cd AccessiSky
uv sync

# Enable pre-push lint hook
git config core.hooksPath .githooks

# Run tests
uv run pytest

# Run linting
uv run ruff check src tests
uv run ruff format src tests

The pre-push hook runs ruff check before every push to catch lint errors early.

About

Stay connected to what's above — accessible sky tracking for everyone

Resources

License

Stars

Watchers

Forks

Packages

No packages published