Skip to main content

Automates the entire workflow for packaging Windows applications and deploying them to Microsoft Intune

Project description

NAPT - Not a Pkg Tool

Automated Windows application packaging and deployment to Microsoft Intune using PSAppDeployToolkit

License Python 3.11+ Code style: black

Overview

NAPT is a Python-based CLI tool that automates the entire workflow for packaging Windows applications and deploying them to Microsoft Intune. It runs on Windows, Linux, and macOS, though packaging (.intunewin creation) requires Windows.

📚 Full Documentation | Quick Start | User Guide | Developer Reference

Why NAPT?

Packaging applications for Microsoft Intune with PSAppDeployToolkit (PSADT) typically involves a manual, time-consuming process:

  1. Manually check for new versions - Check vendor sites/APIs for updates. Easy to miss versions or waste time when nothing changed.

  2. Create PSADT deployment - Copy template, manually edit Invoke-AppDeployToolkit.ps1 with variables, configure install/uninstall logic. Error-prone and repetitive.

  3. Create detection and requirements scripts - Write PowerShell detection and requirements logic, test thoroughly, maintain version checks. Must update for each new version.

  4. Package as .intunewin - Run IntuneWinAppUtil.exe manually, manage paths, handle errors. Tedious and error-prone.

  5. Upload to Intune - Upload package via portal, fill metadata, configure app info and requirements manually.

  6. Configure deployment - Set up rollout assignments manually for each version.

This manual workflow is repetitive, difficult to automate in CI/CD pipelines, lacks version tracking, and requires re-doing most of the work for every update. NAPT automates this entire workflow with YAML-based recipes and automatic version tracking.

Key Features

  • Automatic version tracking - Automatic discovery from MSI, EXE, URLs, or APIs with caching to skip unnecessary downloads
  • YAML-based recipes - Define app packaging once with layered configuration (Organization → Vendor → Recipe)
  • Automated PSADT packaging - Generate Intune-ready packages with detection and requirements scripts, no manual template editing
  • Cross-platform workflow - Run on Windows, Linux, and macOS (packaging requires Windows)
  • Direct Intune upload - Upload to Microsoft Intune via the Graph API, no portal required

Cross-Platform Support

Feature Windows Linux/macOS
Discovery & Download
PSADT Package Building
Intune Packaging ⚫ Windows Only
Intune Upload

See the Cross-Platform Support section for platform-specific workflows.

Getting Started

See the Quick Start Guide for installation and setup.

Creating Recipes

Recipes are YAML configuration files that define how to discover, download, and package applications.

Example recipes:

  • chrome.yaml - url_download strategy with MSI version extraction
  • git.yaml - api_github strategy for GitHub Releases
  • 7zip-x64-msi.yaml - web_scrape strategy for vendor download pages

Note: The recipes/ and defaults/ directories in this repository are working examples used for development and testing. They are not included in the pip package. Run napt init to create your own workspace with a starter org.yaml.

NAPT supports multiple discovery strategies (url_download, web_scrape, api_github, api_json) - see the Discovery Strategies guide for detailed configuration and more examples.

Contributing

Ideas and feedback are welcome! See Contributing for guidelines.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Author

Roger Cibrian

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napt-0.5.0.tar.gz (106.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

napt-0.5.0-py3-none-any.whl (147.6 kB view details)

Uploaded Python 3

File details

Details for the file napt-0.5.0.tar.gz.

File metadata

  • Download URL: napt-0.5.0.tar.gz
  • Upload date:
  • Size: 106.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napt-0.5.0.tar.gz
Algorithm Hash digest
SHA256 327e0d65b70b4d63e914c49d2cff3dfac949e4ebd7e6094cc6450c33aef9aedc
MD5 3d545b95084484b5ebe097c6467dc9fa
BLAKE2b-256 2ec5f799fb97a1b3c3c6da06ec7fd0ea91a309649675a2a2ba7023fd25f6b345

See more details on using hashes here.

Provenance

The following attestation bundles were made for napt-0.5.0.tar.gz:

Publisher: publish.yml on RogerCibrian/notapkgtool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file napt-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: napt-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 147.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for napt-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6e42c9c8ad0bab26ad5649b21896f843ae326a4031cec35393ad0dcf4828dcd
MD5 73672153af3f15d3465f6ac1b1bfa55d
BLAKE2b-256 f16338fdd29fd9f2bd3577c643963ee236cb769c10cbb701bf5d42267d17def7

See more details on using hashes here.

Provenance

The following attestation bundles were made for napt-0.5.0-py3-none-any.whl:

Publisher: publish.yml on RogerCibrian/notapkgtool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page