Engine library for dazzlecmd-pattern tool aggregators
Project description
dazzlecmd-lib
The aggregator/dispatch engine behind the dazzlecmd pattern: tool discovery, kit/FQCN dispatch, the runtime registry, and the DazzleEntity continuum object model. It is a standalone framework — it does not require dazzlecmd to be installed; dazzlecmd is just its first consumer.
Build your own dz-pattern CLI in ~10 lines
from dazzlecmd_lib import AggregatorEngine
def main():
engine = AggregatorEngine(
name="my-tools",
command="mt",
tools_dir="tools",
manifest=".mt.json",
version_info=("1.0", "1.0.0_main_1"),
)
return engine.run()
That gives you mt list, mt info <tool>, mt kit, mt version, mt tree, and mt setup for free. Customize via the meta-command registry:
engine.meta_registry.register("mycmd", parser_factory, handler)
engine.meta_registry.override("list", handler=my_custom_list)
engine.meta_registry.unregister("tree")
What's inside
AggregatorEngine— a configurable CLI tool aggregator (discovery + dispatch).FQCNIndex— dual-index lookup for Fully-Qualified Collection Names (kit:tool,aggregator:kit:tool).RunnerRegistry— extensible runtime dispatch (Python, PowerShell, passthrough, …).MetaCommandRegistry— per-engine meta-command registry (override/extend the stock commands).default_meta_commands— stocklist/info/kit/version/tree/setup.ConfigManager— per-aggregator config reading/writing.- The mode subsystem — embedded / submodule / symlink tool-source detection and the dev↔publish toggle.
- The
DazzleEntityobject model and the kit/continuum machinery (built on thedazzle-libbedrock).
The DazzleLib stack
dazzlecmd-lib is an upper-layer member of the DazzleLib library stack. It builds on the bedrock and file-ops layers:
dazzle-lib— Protocols, TypedDict schemas, the continuum/state primitives.dazzle-filekit— cross-platform file operations + metadata preservation.unctools— UNC / drive-type path tools (Windows volume routing).
Consumers built on dazzlecmd-lib include dazzlecmd, amdead, and wtf-windows.
Install
pip install dazzlecmd-lib
Developing alongside a consumer (editable, shadow-proof)
When a consumer (e.g. dazzlecmd) is installed from PyPI, its dazzlecmd-lib dependency comes from PyPI too. To develop against a local checkout, install it editable with --no-deps so the local copy wins over any PyPI copy:
pip install -e C:/code/dazzlecmd-lib --no-deps
Versioning
Pre-1.0: the library reserves the right to make breaking changes during MINOR bumps until 1.0. Consumers should pin dazzlecmd-lib>=0.X.Y,<1.0.
History through 0.8.55 lives in the dazzlecmd monorepo git log (under packages/dazzlecmd-lib/), from which this repository was extracted on 2026-06-24. See CHANGELOG.md.
Contributing
See CONTRIBUTING.md. Issues and roadmap: Issue #1 (Roadmap).
License
GPL-3.0-or-later. See LICENSE.
Project details
Release history Release notifications | RSS feed
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 dazzlecmd_lib-0.8.55.tar.gz.
File metadata
- Download URL: dazzlecmd_lib-0.8.55.tar.gz
- Upload date:
- Size: 246.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7bc8e04725e8cadcb20285de8cf5cf5acc1d17670da492e69dd80febafb57fe
|
|
| MD5 |
ef25f7d649bb12a83a35f01dfd2ce16d
|
|
| BLAKE2b-256 |
1179864d418158cc5c924db13519433a7434fa2ef62873f9744f164bb7d19f46
|
Provenance
The following attestation bundles were made for dazzlecmd_lib-0.8.55.tar.gz:
Publisher:
release.yml on DazzleLib/dazzlecmd-lib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dazzlecmd_lib-0.8.55.tar.gz -
Subject digest:
e7bc8e04725e8cadcb20285de8cf5cf5acc1d17670da492e69dd80febafb57fe - Sigstore transparency entry: 1939620760
- Sigstore integration time:
-
Permalink:
DazzleLib/dazzlecmd-lib@a4a35fbb46a35bf747018f8f8956950477acfe8d -
Branch / Tag:
refs/tags/v0.8.55 - Owner: https://github.com/DazzleLib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a35fbb46a35bf747018f8f8956950477acfe8d -
Trigger Event:
release
-
Statement type:
File details
Details for the file dazzlecmd_lib-0.8.55-py3-none-any.whl.
File metadata
- Download URL: dazzlecmd_lib-0.8.55-py3-none-any.whl
- Upload date:
- Size: 254.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cd077bad7a799ce82e07d8c0cdc536ccb65decd05f0dafd2d202fff74f5f003
|
|
| MD5 |
310ae42fec5bc87cd207720611968df2
|
|
| BLAKE2b-256 |
1f9843a70bdb43936a00f787200bb2184e2d2b044bef7318f99958aa13d1802e
|
Provenance
The following attestation bundles were made for dazzlecmd_lib-0.8.55-py3-none-any.whl:
Publisher:
release.yml on DazzleLib/dazzlecmd-lib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dazzlecmd_lib-0.8.55-py3-none-any.whl -
Subject digest:
8cd077bad7a799ce82e07d8c0cdc536ccb65decd05f0dafd2d202fff74f5f003 - Sigstore transparency entry: 1939620888
- Sigstore integration time:
-
Permalink:
DazzleLib/dazzlecmd-lib@a4a35fbb46a35bf747018f8f8956950477acfe8d -
Branch / Tag:
refs/tags/v0.8.55 - Owner: https://github.com/DazzleLib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a4a35fbb46a35bf747018f8f8956950477acfe8d -
Trigger Event:
release
-
Statement type: