Skip to content

Pym/UAP-Archive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UAP Archive

UAP Archive is a Rust CLI/TUI for creating a local, resumable archive of the public UAP Release 01 media catalog published on May 8, 2026 at https://www.war.gov/UFO/.

UAP Archive does not ship the upstream CSV or media files. It reads the public catalog, creates a local manifest, then downloads files with paced, conservative, browser-style HTTP requests, local state, checksums, and resume support.

The goal is to make the release easier to keep, inspect, and cite offline while working through the material file by file.

This is an independent tool. It is not affiliated with or endorsed by any government agency.

UAP Archive CLI

Quick Start

Requirements:

  • Rust 1.94 or newer
  • a terminal
  • enough disk space for the archive, around 3.5 GB for Release 01

Install from GitHub:

cargo install --git https://github.com/Pym/UAP-Archive --locked

Run with the interactive TUI:

uap-archive

Run without the TUI:

uap-archive --no-tui

Workflow

On first launch, the app initializes a local archive plan in uap-archive/. Downloads start only after that initialization step.

If the run is interrupted, launch the app again with the same output directory. It will load the previous state and continue from what remains.

By default, up to 3 assets download in parallel. New external requests are started at least 3 seconds apart.

Output

uap-archive/
  assets/
    pdf/
    images/
    videos/
  records/
  manifest.json
  archive-state.json
  • manifest.json contains the archive plan.
  • archive-state.json tracks progress, resume state, recent errors, and run metadata.
  • assets/ contains the downloaded media.
  • records/ contains lightweight metadata for the archived entries.

Generated archive output is local data and should not be committed or published as part of this repository.

Features

  • downloads public PDFs, images, and videos from the release catalog
  • structured output directory
  • interactive terminal UI with progress, counters, active downloads, and event log
  • non-interactive --no-tui mode for scripts or plain logs
  • resumable downloads
  • retry handling with a configurable consecutive-failure limit
  • local state files for progress and diagnostics
  • SHA-256 hashes for completed files
  • .part files for incomplete downloads, cleaned up on retry

Useful Options

--out <path>                    output directory, default: uap-archive
--concurrency <n>               parallel assets to process, default 3
--delay <n>                     seconds between request starts, default 3
--delay-seconds <n>             alias for --delay
--max-consecutive-failures <n>  stop after n consecutive failed assets, default 3
--retries <n>                   retries per asset after the first attempt, default 2
--force                         redownload files even if already present
--dry-run                       print an existing manifest without network or writes
--no-tui                        use line logs instead of the terminal UI

Keyboard Shortcuts

Before download, after an archive plan exists:

  • Enter, Space, or s: continue
  • d: run the dry-run rehearsal
  • r: rebuild the manifest after confirmation
  • q, Esc, or Ctrl+C: quit

During a run:

  • q or Esc: stop after active downloads finish
  • Ctrl+C: interrupt active downloads now
  • ?: show shortcuts in the event log
  • j/k or arrow keys: scroll the event log
  • PageUp/PageDown, g/G, Home/End: page or jump in the event log

Development

Recommended checks:

cargo fmt
cargo test
cargo clippy --all-targets -- -D warnings
cargo build --release

The test suite uses synthetic fixtures rather than copies of the public catalog.

About

Rust CLI/TUI for archiving the public UAP Release 01 media catalog for offline research and review.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages