{"id":44455599,"url":"https://github.com/danilop/nightseek","last_synced_at":"2026-02-12T17:35:09.505Z","repository":{"id":332656519,"uuid":"1134490664","full_name":"danilop/nightseek","owner":"danilop","description":"Python CLI tool for planning astronomy observations - forecasts celestial object visibility, comet tracking, weather integration","archived":false,"fork":false,"pushed_at":"2026-02-08T21:37:53.000Z","size":6094,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-08T23:27:19.297Z","etag":null,"topics":["astronomy","astrophotography","cli","comets","python","skyfield"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danilop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-14T19:41:21.000Z","updated_at":"2026-02-08T21:37:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danilop/nightseek","commit_stats":null,"previous_names":["danilop/nightseek"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/danilop/nightseek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danilop%2Fnightseek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danilop%2Fnightseek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danilop%2Fnightseek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danilop%2Fnightseek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danilop","download_url":"https://codeload.github.com/danilop/nightseek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danilop%2Fnightseek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29374124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astronomy","astrophotography","cli","comets","python","skyfield"],"created_at":"2026-02-12T17:35:08.738Z","updated_at":"2026-02-12T17:35:09.487Z","avatar_url":"https://github.com/danilop.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NightSeek\n\nAn astronomy observation planning tool with both a **Web App** and **CLI**. Generate forecasts showing when planets, deep sky objects, comets, and other celestial targets are optimally positioned in the night sky.\n\n## Web App\n\n**Try it now**: https://nightseek.danilop.net/\n\nThe web app is a Progressive Web App (PWA) that works on desktop and mobile:\n- **Offline Support**: Install as an app and use without internet\n- **Interactive Sky Chart**: Visual representation of the night sky\n- **Object Search**: Find any celestial object by name, common name, or catalog code (M31, Monkey Head Nebula, NGC 2174, Jupiter, etc.)\n- **Weather Integration**: Real-time cloud cover and observing conditions\n- **Drag \u0026 Drop**: Reorder categories to personalize your view\n\n## CLI Tool\n\nFor terminal users who prefer command-line tools.\n\n### Quickstart\n\n### 1. Install uv\n\n[uv](https://docs.astral.sh/uv/) is a fast Python package installer and resolver. Install it with:\n\n```bash\n# macOS/Linux\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Windows\npowershell -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\n### 2. Install NightSeek\n\n```bash\nuv tool install git+https://github.com/danilop/nightseek#subdirectory=cli\n```\n\n### 3. Configure your location\n\nRun the interactive setup on first use:\n\n```bash\nnightseek --setup\n```\n\nThe setup will:\n1. **Auto-detect your location** from IP address (if available)\n2. Let you enter an address (e.g., \"London, UK\")\n3. Let you enter coordinates manually (latitude/longitude)\n\nYou can confirm the auto-detected location or choose another method.\n\n### 4. Generate your forecast\n\n```bash\nnightseek              # 7-day forecast (default)\nnightseek -d 3         # 3-day forecast\nnightseek -d 14        # 14-day forecast\nnightseek -n 10        # Show top 10 objects per night\n```\n\n## Features\n\n### Core Features\n- **~13,000 Deep Sky Objects**: Full OpenNGC catalog (NGC/IC objects) with intelligent filtering\n- **Professional Scoring**: Merit-based 200-point scoring algorithm for optimal target selection\n- **Weather-Integrated Forecasts**: Cloud cover, visibility, wind, humidity, precipitation from Open-Meteo API\n- **Air Quality Integration**: Aerosol optical depth (AOD), dust, PM2.5/PM10 from Open-Meteo Air Quality API\n- **Smart Night Ranking**: Combines moon phase AND weather conditions for optimal observing nights\n- **Airmass Calculations**: Scientifically accurate atmospheric extinction modeling\n\n### Object Tracking\n- **Planets**: All major planets with apparent diameter tracking (current size vs. yearly range)\n- **Comets**: Automatic detection from Minor Planet Center with apparent magnitude calculation\n- **Dwarf Planets**: Pluto, Ceres, Eris, Makemake, Haumea\n- **Asteroids**: Bright asteroids (Vesta, Pallas, Juno, Hygiea)\n- **Interstellar Objects**: Highlights rare visitors like 2I/Borisov\n\n### Observation Planning\n- **Optimal Altitude Tracking**: Shows when objects reach 45°+ for best imaging conditions\n- **Conjunction Alerts**: Automatic detection of close approaches between planets/Moon\n- **5-Tier Weather Rating**: Excellent/Good/Fair/Poor/Bad with cloud percentage ranges\n- **Best Observing Time**: Hourly analysis to find optimal conditions (lowest cloud + precipitation)\n- **Position Angle**: DSO orientation for composition planning\n- **Transit Times**: When objects cross the meridian (optimal viewing)\n- **Transparency Score**: Combined visibility, cloud cover, and aerosol assessment\n- **Dew Risk Warnings**: Based on temperature-dewpoint margin (not just humidity)\n- **Storm Alerts**: CAPE-based atmospheric instability warnings\n\n### Quality of Life\n- **Tonight's Highlights**: Top objects prioritized by imaging quality score\n- **Time-Window Grouping**: Objects grouped by weather conditions, not fixed intervals\n- **Moon Interference Warnings**: Alerts when bright moon affects deep sky visibility\n- **Graceful Degradation**: Works with or without weather/comet data\n- **IP-Based Location**: Auto-detects your location during setup (optional)\n- **Auto-Updates**: Automatically checks for updates once per day and installs them after showing your forecast\n\n## Development Setup\n\nNightSeek has two components, each in its own directory:\n- **CLI (Python)**: `cli/` — managed with [uv](https://docs.astral.sh/uv/)\n- **Web App (TypeScript/React)**: `web/` — managed with [pnpm](https://pnpm.io/)\n\n### Clone the Repository\n\n```bash\ngit clone https://github.com/danilop/nightseek.git\ncd nightseek\n```\n\n### CLI Development (Python + uv)\n\n```bash\n# Install uv (if not already installed)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Navigate to CLI directory\ncd cli\n\n# Install dependencies\nuv sync\n\n# Run from source\nuv run nightseek\n\n# Run tests\nuv run pytest\n\n# Search for objects\nuv run nightseek --search \"M31\"\n```\n\n### Web App Development (TypeScript + pnpm)\n\n```bash\n# Install pnpm (if not already installed)\nnpm install -g pnpm\n\n# Navigate to web directory\ncd web\n\n# Install dependencies\npnpm install\n\n# Start development server\npnpm dev\n\n# Run tests\npnpm test\n\n# Build for production\npnpm build\n```\n\nThe web app is built with:\n- **React 19** + **TypeScript**\n- **Vite** for fast builds\n- **Tailwind CSS** for styling\n- **astronomy-engine** for calculations\n- **Vitest** for testing\n\n### Code Quality Checks\n\nBoth CLI and Web use equivalent static analysis tools. Run all checks with:\n\n```bash\n./precommit.sh\n```\n\n| Check | Python CLI | TypeScript Web |\n|-------|------------|----------------|\n| **Lint** | ruff | Biome |\n| **Format** | ruff format | Biome format |\n| **Type Check** | ty | tsc |\n| **Dead Code** | vulture | knip |\n| **Tests** | pytest | vitest |\n\nThe pre-commit hook runs automatically before each commit.\n\n## Configuration\n\nNightSeek stores your location in a platform-specific config directory:\n- **Windows**: `%APPDATA%\\nightseek\\config`\n- **macOS**: `~/Library/Application Support/nightseek/config`\n- **Linux**: `~/.config/nightseek/config`\n\nThe easiest way to set this up is with the interactive setup:\n\n```bash\nnightseek --setup\n```\n\nYou can also manually edit the config file:\n\n```bash\n# Location coordinates (required)\nLATITUDE=51.4536\nLONGITUDE=-0.1919\n\n# Default forecast days (optional, defaults to 7)\nFORECAST_DAYS=7\n\n# Maximum objects to show per night (optional, defaults to 8)\nMAX_OBJECTS=8\n```\n\n### For Development\n\nWhen developing NightSeek, use CLI parameters to test with different locations:\n\n```bash\ncd cli\nuv run nightseek -lat 40.7128 -lon -74.0060 -d 3\n```\n\n## Usage\n\n### Basic Usage\n\nGenerate a forecast using your saved location:\n\n```bash\nnightseek\n```\n\n### Override Location\n\nSpecify a custom location via CLI parameters:\n\n```bash\nnightseek --latitude 40.7128 --longitude -74.0060\n# Or use short flags:\nnightseek -lat 40.7128 -lon -74.0060\n```\n\n### Custom Forecast Period\n\nChange the number of forecast days (1-30):\n\n```bash\nnightseek --days 3\n# Or use short flag:\nnightseek -d 3\n```\n\n### Limit Objects Shown\n\nChange the maximum objects displayed per night (1-50, default 8):\n\n```bash\nnightseek --max-objects 10\n# Or use short flag:\nnightseek -n 10\n```\n\n### Comet Magnitude Filter\n\nLimit comets by brightness for faster results:\n\n```bash\nnightseek --comet-mag 8    # Only comets brighter than magnitude 8 (binocular visible)\nnightseek --comet-mag 6    # Only naked-eye comets\n# Or use short flag:\nnightseek -cm 8\n```\n\nLower magnitude = brighter = fewer comets = faster forecast.\n\n### Combined Parameters\n\n```bash\nnightseek -lat 34.0522 -lon -118.2437 -d 14 -n 10 -cm 8\n```\n\n### Reconfigure Location\n\nRun the interactive setup again to change your location:\n\n```bash\nnightseek --setup\n```\n\n### Search for Objects\n\nFind any celestial object and check its visibility:\n\n```bash\nnightseek --search \"M31\"           # Andromeda Galaxy\nnightseek --search \"Jupiter\"       # Planet\nnightseek --search \"Orion\"         # Orion Nebula\nnightseek -s \"NGC 7000\"            # North America Nebula\nnightseek -s \"Monkey Head\"         # Search by common name\nnightseek -s \"12P\"                 # Comet by designation\n```\n\nThe search shows:\n- Current visibility status (visible tonight or next visible date)\n- Peak altitude and optimal viewing time\n- When object reaches 45°+ altitude (optimal for imaging)\n- Moon distance to assess interference\n\n### Help\n\n```bash\nnightseek --help\n```\n\n## Updates\n\n### Manual Update\n\nForce check and install updates immediately:\n\n```bash\nnightseek --update\n# or\nnightseek -u\n```\n\n### Auto-Updates\n\nNightSeek also checks automatically in the background:\n\n- **Automatic checks**: Once per day (24-hour cache)\n- **Non-intrusive**: Your forecast displays immediately, update happens after\n- **Transparent**: Shows a message when updating\n- **Zero configuration**: Works automatically, no action needed\n\n**What you'll see:**\n```\n[your forecast output]\n...\n\nℹ️  Update available. Installing latest version...\n✓ Updated successfully. Changes apply on next run.\n```\n\nUpdates are installed using `uv tool install --force --reinstall git+...#subdirectory=cli` and apply the next time you run `nightseek`.\n\n## Output Format\n\nThe forecast includes:\n\n1. **Observing Conditions**:\n   - Dark sky window (astronomical night: sun \u003e18° below horizon)\n   - Moon phases and illumination percentage\n   - Cloud cover range (min-max) during astronomical night\n   - Best observing time (hour with lowest cloud + precipitation probability)\n   - Wind speed, visibility, humidity, dew risk warnings when relevant\n   - Atmospheric stability (pressure) and storm risk (CAPE)\n   - Air quality: AOD, dust levels, transparency score\n   - Combined quality ratings (Excellent/Good/Fair/Poor)\n\n2. **Celestial Events**: Conjunction alerts when planets/Moon are close together\n\n3. **Best Observing Nights**: Optimal nights ranked by moon + weather conditions\n\n4. **Tonight's Observation Plan**:\n   - Time windows grouped by weather conditions (dynamic, not fixed intervals)\n   - Top objects with professional scores (0-200 scale)\n   - Score explanations (\"Why: excellent altitude, dark sky, peak season\")\n   - Planet apparent sizes with context (current vs. yearly range)\n\n5. **Multi-Night Forecast**:\n   - Best targets for each upcoming night\n   - Category icons for quick identification\n   - Quality ratings and peak times\n\n6. **Milky Way Core**: Best viewing opportunity (when moon \u003c30%)\n\n### Weather Integration\n\n- **Days 1-16**: Full weather integration with:\n  - Hourly cloud cover (total + low/mid/high layers)\n  - Best observing time per night (lowest cloud + precipitation)\n  - Atmospheric visibility (transparency score)\n  - Wind speed and gusts\n  - Humidity and dew point (dew risk calculation)\n  - Temperature and pressure (atmospheric stability)\n  - Precipitation probability (min-max range)\n  - CAPE (storm potential indicator)\n- **Days 1-5**: Additional air quality data:\n  - Aerosol Optical Depth (AOD) - atmospheric haze\n  - Dust concentration (Saharan dust events)\n  - PM2.5 and PM10 particulate matter\n- **Days 17-30**: Astronomical data only (moon, object positions)\n- **APIs**: Uses Open-Meteo Weather + Air Quality APIs (free, no API key required)\n\n### Scoring System\n\nNightSeek uses a professional 200-point scoring algorithm:\n\n#### Imaging Quality (0-100 points)\n| Component | Points | Factors |\n|-----------|--------|---------|\n| Airmass/Altitude | 0-40 | Uses Pickering formula; lower airmass = better |\n| Moon Interference | 0-30 | Separation + illumination + object type sensitivity |\n| Peak Timing | 0-15 | Is object at peak during observation window? |\n| Weather | 0-15 | Cloud cover for this time slot |\n\n#### Object Characteristics (0-50 points)\n| Component | Points | Factors |\n|-----------|--------|---------|\n| Surface Brightness | 0-20 | Brighter surface = easier to image |\n| Magnitude | 0-15 | Apparent brightness |\n| Type Suitability | 0-15 | Match object type to conditions |\n\n#### Priority/Rarity (0-50 points)\n| Component | Points | Factors |\n|-----------|--------|---------|\n| Transient Events | 0-25 | Interstellar objects, bright comets |\n| Seasonal Window | 0-15 | Object opposite sun = peak season |\n| Popularity | 0-10 | Messier/famous objects bonus |\n\n#### Score Tiers\n| Score | Rating | Meaning |\n|-------|--------|---------|\n| 150+ | ★★★★★ | Prime target - don't miss |\n| 120-149 | ★★★★☆ | High-quality opportunity |\n| 90-119 | ★★★☆☆ | Worth imaging |\n| 60-89 | ★★☆☆☆ | Acceptable, not optimal |\n| \u003c60 | ★☆☆☆☆ | Wait for better conditions |\n\n### Weather Quality Tiers\n\n| Cloud Cover | Rating | Color |\n|-------------|--------|-------|\n| 0-10% | Excellent | Green |\n| 10-25% | Good | Green |\n| 25-40% | Fair | Yellow |\n| 40-60% | Poor | Yellow |\n| 60%+ | Cloudy | Red |\n\n### Altitude/Airmass Quality\n\n| Airmass | Altitude | Rating |\n|---------|----------|--------|\n| ≤1.05 | ~90° | Excellent (overhead) |\n| ≤1.15 | ~75° | Very Good (high) |\n| ≤1.41 | ~45° | Good (clear) |\n| ≤2.0 | ~30° | Acceptable |\n| \u003e2.0 | \u003c30° | Poor (thick atmosphere) |\n\n## Object Catalog\n\n### Planets\nAll major planets (Mercury through Neptune) with:\n- Current apparent diameter in arcseconds\n- Yearly min/max range for context\n- Subtype classification (inner/outer)\n\n### Comets\n- **Automatically loaded** from Minor Planet Center\n- Includes all comets brighter than magnitude 12 (configurable)\n- **Apparent magnitude** calculated from distance (not absolute magnitude)\n- **Interstellar objects** marked with special highlight\n- Updates automatically with each run (24-hour cache)\n\n### Deep Sky Objects (~13,000)\nLoaded from **OpenNGC** catalog with intelligent filtering:\n- **Galaxies**: NGC/IC galaxies, pairs, groups, clusters\n- **Nebulae**: Emission, reflection, planetary, supernova remnants\n- **Clusters**: Open clusters, globular clusters\n- **Position Angle**: Orientation for composition planning\n- **Surface Brightness**: For imaging difficulty assessment\n\n#### Notable Objects\n- Messier catalog (M1-M110) with priority bonus\n- Caldwell catalog objects\n- Famous named objects (Andromeda, Orion Nebula, etc.)\n\n### Dwarf Planets\n- Pluto, Ceres, Eris, Makemake, Haumea\n- Loaded from MPC orbital elements\n\n### Asteroids\n- Vesta, Pallas, Juno, Hygiea\n- Brightness-filtered from MPC data\n\n### Special Targets\n- **Milky Way Core**: Sagittarius A* region\n- **Conjunctions**: Automatically detected close approaches\n\n## Technical Details\n\n### Astronomical Calculations\n- Uses [Skyfield](https://rhodesmill.org/skyfield/) for precise ephemeris calculations\n- JPL DE421 ephemeris for planet positions\n- **Airmass**: Pickering (2002) formula for accurate atmospheric extinction\n- **Planet Sizes**: Calculated from distance using physical diameters\n- Astronomical twilight threshold (sun \u003e18° below horizon)\n- 10-minute sampling resolution for altitude calculations\n\n### Weather Forecasting\n- Uses [Open-Meteo Weather API](https://open-meteo.com/) for comprehensive 16-day forecast:\n  - Cloud cover (total + low/mid/high layers, hourly)\n  - Visibility (atmospheric transparency)\n  - Wind speed and gusts\n  - Temperature and dew point (dew risk margin)\n  - Relative humidity\n  - Surface pressure (atmospheric stability)\n  - Precipitation probability\n  - CAPE (Convective Available Potential Energy)\n- Uses [Open-Meteo Air Quality API](https://open-meteo.com/en/docs/air-quality-api) for 5-day forecast:\n  - Aerosol Optical Depth (AOD) at 550nm\n  - Dust concentration (μg/m³)\n  - PM2.5 and PM10 particulate matter\n- **Transparency Score**: Combined visibility + cloud + AOD assessment\n- **Best Time Calculation**: Hourly analysis to find lowest cloud + precipitation\n- Combines moon illumination (30%) and cloud cover (70%) for quality scoring\n- No API key required, completely free\n\n### Comet Tracking\n- Uses [Minor Planet Center](https://www.minorplanetcenter.net/) orbital elements database\n- **Apparent magnitude** calculated using: `m = g + 5*log10(Δ) + k*log10(r)`\n  - g = absolute magnitude\n  - Δ = distance from Earth (AU)\n  - r = distance from Sun (AU)\n  - k = magnitude slope parameter\n- Pre-filters by declination to skip objects that can't reach useful altitude\n- Detects interstellar objects (eccentricity \u003e1.0 = hyperbolic orbits)\n- Caches orbital elements locally (24-hour expiry)\n\n### OpenNGC Integration\n- Full [OpenNGC](https://github.com/mattiaverga/OpenNGC) catalog (~13,000 objects)\n- **Common names**: Searchable by popular names (Monkey Head Nebula, Rosette, etc.)\n- Cached locally (7-day expiry)\n- Filtered by:\n  - Maximum magnitude (default: 14)\n  - Observer latitude (only objects that can reach useful altitude)\n  - Object type (excludes non-existent and duplicate entries)\n\n### Caching\nUnified caching system for all external data:\n- **Ephemeris**: Permanent (~17MB, downloaded once)\n- **OpenNGC**: 7-day expiry (~4MB)\n- **Comets**: 24-hour expiry\n- Cache location: Platform-specific cache directory\n\n### Performance\n- First run downloads ~17MB ephemeris data (cached permanently)\n- OpenNGC catalog cached for 7 days\n- Comet orbital elements cached for 24 hours\n- Typical forecast times:\n  - 1-day forecast: ~10-15 seconds\n  - 7-day forecast: ~45-60 seconds\n- Use `--comet-mag 8` for faster results (fewer comets to track)\n\n### Conjunction Detection\nAutomatically detects when objects are close together:\n- Planet-planet conjunctions\n- Planet-Moon conjunctions\n- Threshold: Notable if \u003c5°, highlighted if \u003c2°\n\n## Project Structure\n\n```\nnightseek/\n├── README.md           # This file\n├── LICENSE             # MIT License\n├── precommit.sh        # Unified code quality checks\n├── cli/                # Python CLI tool\n│   ├── main.py         # CLI entry point\n│   ├── config.py       # Configuration management\n│   ├── sky_calculator.py   # Astronomical calculations\n│   ├── catalog.py      # Celestial object catalog\n│   ├── opengc_loader.py    # OpenNGC catalog integration\n│   ├── analyzer.py     # Visibility analysis engine\n│   ├── search.py       # Object search functionality\n│   ├── scoring.py      # Scoring algorithm\n│   ├── weather.py      # Weather forecast integration\n│   ├── formatter.py    # Output formatting\n│   ├── pyproject.toml  # Python dependencies (uv)\n│   └── uv.lock         # Locked Python dependencies\n├── web/                # Web application\n│   ├── src/            # React/TypeScript source\n│   ├── package.json    # Node dependencies (pnpm)\n│   ├── pnpm-lock.yaml  # Locked Node dependencies\n│   └── vite.config.ts  # Vite configuration\n└── .github/workflows/  # CI/CD\n    └── deploy.yml      # GitHub Pages deployment\n```\n\n## Requirements\n\n- Python 3.11+\n- Dependencies managed via uv (see `cli/pyproject.toml`)\n- Key dependencies:\n  - skyfield (astronomical calculations)\n  - pandas (orbital elements parsing)\n  - rich (terminal formatting)\n  - typer (CLI framework)\n  - requests (API calls)\n  - timezonefinder (automatic timezone detection)\n  - platformdirs (cross-platform directories)\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanilop%2Fnightseek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanilop%2Fnightseek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanilop%2Fnightseek/lists"}