Net Install Manager (ninman)
A CLI tool (installable via pipx) for managing installations, rollbacks, versioning, and uninstallation of .NET console applications across Linux, macOS, and Windows.
Features
- Source, Pre-compiled & Git Support: Install directly from
.csprojsource, pre-compiled binaries (DLLs/EXEs), or remote Git/GitHub repositories. - Cross-Platform:
- Linux / macOS: Installs to
~/.local/lib/<app>/<version>(or/usr/local/libfor system), atomiccurrentsymlinks, and launchers in~/.local/bin. - Windows: Installs to
%LOCALAPPDATA%\<app>\versions\<version>(orProgram Filesfor system),currentdirectory junctions, and.cmd+ bash launchers inbin/.
- Linux / macOS: Installs to
- Version Management & Rollback: Automatic version detection (csproj, git tags, binary
--version), version regression checks, rollback to previous versions, and version pruning (--versions-to-keep). - Application Registry & Upgrades: Track installed applications and upgrade them directly (
ninman upgrade <app>orninman upgrade --all), including fetching the latest Git commits/tags.
Installation
pipx install net-install-manager
CLI Usage
Installing an Application
# Install a prebuilt asset from a GitHub release
ninman install-release owner repo --asset-pattern "{rid}-{version}"
# Install from a local .csproj file or current directory
ninman install
ninman install ./src/MyApp/MyApp.csproj
ninman install ./dist/MyApp-v1.2.0
# Install directly from GitHub / Git repository
ninman install https://github.com/owner/repo.git
ninman install owner/repo
ninman install owner/repo@v1.2.0
# Multi-project repositories: select a specific project via subpath or --project
ninman install https://github.com/owner/repo.git --project src/CliApp/CliApp.csproj
ninman install https://github.com/owner/repo/tree/main/src/CliApp
ninman install owner/repo#src/CliApp
# Install as self-contained with version pruning
ninman install --self-contained --versions-to-keep 3
# Force installation / reinstallation of older version
ninman install --force --app-version 1.0.0
Application Maintenance
# Upgrade an application or all tracked applications
ninman upgrade myapp
ninman upgrade --all
# Rollback to the previous version
ninman rollback --previous myapp
# Rollback to a specific version
ninman rollback --target-version 1.1.0 myapp
# Uninstall a specific version or everything
ninman uninstall --target-version 1.0.0 myapp
ninman uninstall --all
Installation Status
# List all tracked applications managed by ninman
ninman list-apps
# Describe the installation details of a given application
ninman app-details myapp
# List installed versions of a given application
ninman list-versions myapp
GitHub release installations discover ninman.yml, ninman.yaml, or a .csproj from the
unpacked release asset. Private repositories can use NINMAN_GITHUB_TOKEN, GITHUB_TOKEN, or
GH_TOKEN; tokens are used for requests only and are not stored in the application registry.
Configuration (ninman.yaml)
app_directory: my-app
binary_name: myapp
source_binary_name: MyApp.dll # or MyApp.exe
csproj_path: src/MyApp/MyApp.csproj # optional
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file net_install_manager-0.1.1.tar.gz.
File metadata
- Download URL: net_install_manager-0.1.1.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff149ad6168948e76c0a96e013b27ddbc822041c5d24ef5dcdca26d55d9093d1
|
|
| MD5 |
939abc93edbe792065c5c8b72e9e2d90
|
|
| BLAKE2b-256 |
ca9ed7e739b3cac6f8002e07edff982bf5b21bbd3563496f2cb0faf8e754d806
|
Provenance
The following attestation bundles were made for net_install_manager-0.1.1.tar.gz:
Publisher:
release.yml on tcfoss/net-install-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
net_install_manager-0.1.1.tar.gz -
Subject digest:
ff149ad6168948e76c0a96e013b27ddbc822041c5d24ef5dcdca26d55d9093d1 - Sigstore transparency entry: 2850437717
- Sigstore integration time:
-
Permalink:
tcfoss/net-install-manager@af6cb7ce90e2af31baa0188f1e10c1ce09f166a8 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/tcfoss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@af6cb7ce90e2af31baa0188f1e10c1ce09f166a8 -
Trigger Event:
pull_request
-
Statement type:
File details
Details for the file net_install_manager-0.1.1-py3-none-any.whl.
File metadata
- Download URL: net_install_manager-0.1.1-py3-none-any.whl
- Upload date:
- Size: 42.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
925034a1da2dc9336ee6b30ea9f8e2db8cbeb1afd644d9729ba677de9c14752d
|
|
| MD5 |
770127e88e9e479b30b4616dab660ca6
|
|
| BLAKE2b-256 |
1d416c270fdc88547b18d0351c27da6c38772b0e4b509cfecc38d8172f79b89b
|
Provenance
The following attestation bundles were made for net_install_manager-0.1.1-py3-none-any.whl:
Publisher:
release.yml on tcfoss/net-install-manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
net_install_manager-0.1.1-py3-none-any.whl -
Subject digest:
925034a1da2dc9336ee6b30ea9f8e2db8cbeb1afd644d9729ba677de9c14752d - Sigstore transparency entry: 2850437762
- Sigstore integration time:
-
Permalink:
tcfoss/net-install-manager@af6cb7ce90e2af31baa0188f1e10c1ce09f166a8 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/tcfoss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@af6cb7ce90e2af31baa0188f1e10c1ce09f166a8 -
Trigger Event:
pull_request
-
Statement type: