Professional software deployment for Windows infrastructure
use-cli.com provides a stable REST API, manifest-driven install and uninstall actions, and a CLI client for automated package workflows in enterprise environments.
use-cli.com provides a stable REST API, manifest-driven install and uninstall actions, and a CLI client for automated package workflows in enterprise environments.
Each package supports deterministic install and uninstall command execution paths.
Use the REST API directly or run the packaged client for scripted workstation automation.
Integrates with an Ansible module for repeatable and traceable deployments.
use-cli.com does not redistribute installer files. The server stores only metadata — JSON manifests with instructions. All downloading and execution happens locally, on your Windows machine.
When you request a manifest, the API returns a URL pointing directly to the vendor's official download server (e.g. 7-zip.org, github.com/…). use-cli.com never downloads, modifies, or hosts executable files. The client fetches installers straight from the original source.
curl https://use-cli.com/api/v1/packages/7zip/install-manifest
# →
{
"download_url": "https://www.7-zip.org/a/7z2407-x64.exe",
"sha256_hash": "a1b2c3d4e5f6..."
}
Every manifest includes the SHA-256 hash of the original installer, recorded when the package was added. After downloading, the client computes the hash locally and compares it against the manifest. A mismatch immediately aborts the installation and deletes the file — catching both tampered files and corrupted downloads.
# Client flow (pseudocode)
1. GET /api/v1/packages/7zip/install-manifest
2. Download installer → %TEMP%\7z2407-x64.exe
3. sha256(%TEMP%\7z2407-x64.exe) == manifest.sha256_hash?
YES → run setup.exe /S
NO → ABORT, delete file, report error
The API responds exclusively with structured JSON: URL, hash, install switches, registry keys for uninstall. The server never sends a script, PowerShell code, or binary file. All execution decisions are made by the client running locally.
Both the API server and the CLI client are fully open-source. Anyone can inspect exactly which URL is called, how the hash is verified, and what gets written to the log. No need to take our word for it — the code is available for review.
The client and Ansible module log every installation: timestamp, hostname, user, package, version, result, and any error message. Logs stay on your machine or in your Ansible Tower/AWX database — use-cli.com does not collect data about your installations.
# Example log entry
{
"timestamp": "2026-05-16T10:42:00Z",
"hostname": "workstation-01",
"package": "7zip",
"version": "24.07",
"status": "success",
"requested_by": "ansible"
}
For organisations with air-gapped networks, manifests support an optional
cached_url field — a URL pointing to your internal server
(Nexus, Artifactory, internal share). use-cli.com never populates this field;
your team sets it when standing up an internal repository.
Installers never leave your network.
Validate service availability, inspect package data, and retrieve manifests in under a minute.
curl https://use-cli.com/health
curl https://use-cli.com/api/v1/packages
curl https://use-cli.com/api/v1/packages/7zip
curl https://use-cli.com/api/v1/packages/7zip/install-manifest
curl https://use-cli.com/api/v1/packages/7zip/uninstall-manifest
curl -LO https://use-cli.com/downloads/clinstall.exe
curl -LO https://use-cli.com/downloads/ansible/windows_package_installer.ps1
REST endpoints for package metadata, manifests, categories, and service statistics.
List all available packages.
curl https://use-cli.com/api/v1/packages
Return package details for one package key.
curl https://use-cli.com/api/v1/packages/7zip
Return command, switches, and metadata required for installation.
curl https://use-cli.com/api/v1/packages/7zip/install-manifest
Return command, switches, and metadata required for removal.
curl https://use-cli.com/api/v1/packages/7zip/uninstall-manifest
List all package categories.
curl https://use-cli.com/api/v1/categories
Return package and installation statistics.
curl https://use-cli.com/api/v1/stats
{
"success": true,
"data": {
"name": "7zip",
"display_name": "7-Zip",
"description": "Open source file archiver",
"category": "Utilities",
"official_url": "https://www.7-zip.org"
}
}
{
"success": false,
"error": "Package not found"
}
Recommended method for orchestrated server fleets and repeatable setup pipelines.
pip install ansible
mkdir -p ./modules
curl -L -o ./modules/windows_package_installer.ps1 \
https://use-cli.com/downloads/ansible/windows_package_installer.ps1
Direct module link: /downloads/ansible/windows_package_installer.ps1
Tip: Run playbook with -M ./modules so Ansible uses this module copy.
[windows]
server1 ansible_host=192.168.1.100 ansible_user=Administrator
server2 ansible_host=192.168.1.101 ansible_user=Administrator
---
- name: Install software packages
hosts: windows
vars:
api_url: "https://use-cli.com/api/v1"
tasks:
- name: Install 7-Zip
windows_package_installer:
api_url: "{{ api_url }}"
package_name: "7zip"
state: "present"
ansible-playbook -i hosts.ini deploy.yml -M ./modules
If -vvv output shows module path in .../site-packages/ansible/modules/,
your custom module directory is not being used.
Current service snapshot for operations and deployment teams.