Asdamir.Tools
1.8.0
dotnet tool install --global Asdamir.Tools --version 1.8.0
dotnet new tool-manifest
dotnet tool install --local Asdamir.Tools --version 1.8.0
#tool dotnet:?package=Asdamir.Tools&version=1.8.0
nuke :add-package Asdamir.Tools --version 1.8.0
Asdamir.Tools
Command-line tooling for the Asdamir framework (.NET 10). Command name: asdamir.
- Scaffolding — generate entities, DTOs, repositories, services, controllers, tests, migrations, full apps, modules and MAUI mobile shells following the framework's audited conventions
- audit-lint — static-analysis rules (sync-over-async, silent failures, leaked API surface, unsafe defaults…) that fail CI on violations
- audit verify-archive — verify a folded agent-audit segment offline: no network, no database, no control plane, no licence. The one command here that is not a build gate — it is what a third party runs to check an exported ledger archive without taking the vendor's word for it
Usage
# From source
dotnet run --project src/Asdamir.Tools -- audit lint --path src
# As a packaged tool
asdamir entity new Order
asdamir audit lint --path src
# verify an exported agent-audit archive — WITHOUT --expected-digest the result is
# INTERNALLY_CONSISTENT (UNANCHORED), never VERIFIED
asdamir audit verify-archive --path ./segment.zip --expected-digest <FoldSegmentDigest>
Exit codes for verify-archive are a contract a third party's audit script may rely on: 0–4 are claims
about an archive (VERIFIED / INTERNALLY_CONSISTENT / DIGEST_MISMATCH / BROKEN / FORMAT_ERROR) and
nothing else may occupy them — every other invocation, --help included, exits 64. See the CLI docs.
Documentation
Full guide: CLI documentation.
License
LGPL-3.0 — see the bundled LICENSE file.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.8.0 | 227 | 8/12/2026 |
| 1.7.0 | 103 | 8/9/2026 |
| 1.6.0 | 106 | 8/9/2026 |
| 1.5.1 | 97 | 8/8/2026 |
| 1.5.0 | 101 | 8/8/2026 |
| 1.4.6 | 120 | 8/5/2026 |
| 1.4.5 | 114 | 7/26/2026 |
| 1.4.4 | 119 | 7/26/2026 |
| 1.4.3 | 119 | 7/26/2026 |
| 1.4.2 | 131 | 7/24/2026 |
| 1.4.1 | 109 | 7/22/2026 |
| 1.4.0 | 111 | 7/19/2026 |
| 1.3.16 | 117 | 7/19/2026 |
| 1.3.15 | 105 | 7/19/2026 |
| 1.3.14 | 102 | 7/17/2026 |
| 1.3.13 | 96 | 7/17/2026 |
| 1.3.12 | 118 | 7/16/2026 |
| 1.3.11 | 124 | 7/14/2026 |
| 1.3.10 | 110 | 7/13/2026 |
| 1.3.9 | 112 | 7/12/2026 |
1.7.0 — `asdamir new app` with no name, in a non-interactive shell, used to SCAFFOLD A COMPLETE APP into the current directory and exit 0: the name prompt fell back to the placeholder "GeneratedApp" when no console was attached, and --yes did the same. A missing app name is now a usage error (64) and nothing is written. A mistyped option in the name position (`new app --bogus`) is reported as a mistyped option instead of being blamed on your capitalisation, across all seven commands that take a name. The last eight commands still calling Environment.Exit inside their handlers now return exit codes, which is what makes any of this testable. If you script `new app`, pass the name explicitly — an invocation that relied on the placeholder now fails instead of generating.