Skip to content

About

Trusted Windows software discovery and verified installer downloads with Python, PySide6, Winget, and Azure OpenAI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AppForge

Find trusted Windows software, verify the installer, and download it through one focused desktop app.

CI Python 3.11+ Windows License: GPL-3.0

AppForge software discovery interface

Overview

AppForge is a Windows software discovery and download client built with Python, PySide6, and Fluent Widgets. It combines trusted package metadata with optional AI-assisted web discovery, then sends verified direct installer URLs to the integrated concurrent download engine.

The application is intentionally focused: search for an app, inspect its source and installer metadata, and download or install it without navigating through advertising pages or third-party download portals.

Features

  • Layered discovery through local cache, Winget, publisher websites, Firecrawl, and Azure OpenAI.
  • Strict package identity matching to reject unrelated applications and media archives.
  • Direct HTTPS installer extraction with redirect, content type, and file size validation.
  • x64, ARM64, and x86 architecture selection.
  • Installer, portable, and offline package preferences.
  • Source labels for Winget packages, official publisher pages, and AI-discovered results.
  • SHA-256 comparison and Windows Authenticode verification after download.
  • Inline download progress with pause, resume, retry, cancel, and open-folder actions.
  • Separate Download and install workflow with a final verification summary.
  • Installed application detection with open, update, reinstall, and uninstall actions.
  • Persistent search and logo caching for fast repeat searches.
  • Responsive single-page desktop interface with no unnecessary navigation.

Trust Model

AppForge treats discovery, download validation, and publisher verification as separate stages:

  1. Discovery finds candidate packages from Winget or publisher websites.
  2. Link validation confirms that the final URL is public HTTPS and returns installer content rather than HTML.
  3. Metadata verification checks redirects, installer type, architecture, and byte size.
  4. Post-download verification calculates SHA-256 and asks Windows to validate the Authenticode signature.

An AI-discovered result is not automatically considered publisher-verified. AppForge only reports the verification evidence it actually has.

Requirements

  • Windows 10 or Windows 11
  • Python 3.11+
  • uv
  • Winget is recommended but not required
  • Azure Functions Core Tools are optional for a separately hosted local backend

Quick Start

git clone https://github.com/beyondmarks-ai/App_Forger.git
cd App_Forger
uv sync
uv run python AppForge.py

The desktop app works with Winget and its curated catalog without AI credentials.

AI Web Discovery

Provider credentials belong in the backend and must not be embedded in the desktop executable.

  1. Copy the example backend settings:

    Copy-Item azure_functions/software_discovery/local.settings.example.json `
      azure_functions/software_discovery/local.settings.json
  2. Configure these values in the ignored local.settings.json file:

    Setting Purpose
    FIRECRAWL_API_KEY Search and scrape publisher download pages
    AZURE_OPENAI_API_KEY Authenticate with Azure OpenAI
    AZURE_OPENAI_RESPONSES_URL Full Azure Responses API endpoint
    AZURE_OPENAI_DEPLOYMENT Azure model deployment name
    BRANDFETCH_CLIENT_ID Optional software logo provider client ID
  3. Start AppForge normally. During local development, the desktop invokes the backend handler in a worker thread without exposing a local HTTP port.

For production, deploy azure_functions/software_discovery as an Azure Function and configure the desktop with APPFORGE_BACKEND_URL. Firecrawl and Azure OpenAI credentials remain server-side.

See the backend documentation for request, deployment, and security details.

Configuration

AppForge settings include:

  • Default download folder and parallel task count.
  • Preferred CPU architecture and package format.
  • Installer verification toggle.
  • Search cache lifetime.
  • AI web discovery privacy control.
  • Optional locale sharing for regional publisher pages.

Development

Run the full test suite:

$env:PYTHONPATH = (Get-Location).Path
uv run --with pytest pytest tests -q

Run only the AppForge discovery tests:

uv run --with pytest pytest tests/test_software_discovery.py -q

Compile-check the modified Python modules:

uv run python -m compileall -q app features azure_functions tests

Project Structure

app/                                      Desktop shell and download engine
features/software_pack/                   AppForge search, trust, UI, and install workflow
azure_functions/software_discovery/       Firecrawl and AI discovery backend
features/http_pack/                       Concurrent HTTP download implementation
tests/                                    Unit and regression tests

Security

  • Never commit local.settings.json, API keys, function keys, or provider credentials.
  • Review installer source, signer, and hash information before installation.
  • Report suspected security problems through a private GitHub security advisory rather than a public issue.

License

AppForge is distributed under the GNU General Public License v3.0.

About

Trusted Windows software discovery and verified installer downloads with Python, PySide6, Winget, and Azure OpenAI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages