Extensible Typer CLI with hot-pluggable commands. NexusCLI loads built-in and third-party plugins on every invocation so you can add new commands by installing packages.
Project description
NexusOpenCLI
Extensible Typer CLI with hot-pluggable commands. NexusOpenCLI loads built-in and third-party plugins on every invocation so you can add new commands by installing packages.
Development Motivation
In the process of daily development and using productivity tools, I have identified a long-standing issue:
There are many CLI tools, but they are fragmented and difficult to manage in a unified way.
For example:
- Different tools need to be installed separately, and their commands must be memorized individually
- Functionalities are scattered, lacking a unified entry point
- When wanting to extend functionality, you often need to develop your own CLI from scratch
Therefore, I aim to build a CLI project that is:
Like an App Store for CLI tools
The core goals are:
- Enable CLI tools to be installed like plugins
- Allow commands to be auto-discovered at runtime
Ultimately forming:
An extensible CLI ecosystem infrastructure
Features
- Plugin-based command system with runtime discovery
- Built-in commands for plugin management and batch file renaming
- Configurable plugin sources (entry points and optional folder loader)
- Per-plugin and global language settings
Quick Start
It is recommended to install using pip install nexus-open-cli in a virtual environment in the specified directory, and then enter ncli plugin list to view the current command groups.
ncli --help
ncli plugin list
Installing Plugins
It is recommended to download plugins via ncli repo.
All plugins are reviewed by the maintainers of NexusOpenCLI, allowing you to discover and install plugins just like using an App Store.
Take ncli repo as an example:
You can also install plugins via pip install nexus-open-cli-doctor for a quick experience.
For subsequent plugin installation, you can either use ncli repo (recommended), or install from a local directory or PyPI via pip:
# Install plugin via ncli repo
ncli repo install pluginName
# Install a local plugin folder
pip install /path/to/your-plugin
# Install a plugin published on PyPI
pip install your-plugin-package
Plugins should register into the nexuscli.command entry point group so NexusCLI can discover them on startup. After installing the plugin, type ncli again to verify that the plugin was installed successfully.
Configuration
Inspect or update plugin settings:
ncli plugin config
ncli plugin config-path
Manage plugin directories via interactive prompt or the --set-plugin-dir, --add-plugin-dir, --remove-plugin-dir options.
Note:
ncli plugin config --folder-loader is ineffective for enabling directory loading; this command is deprecated soon. Ignore it.
Development
pip install -e ".[dev]"
pytest
Developing Plugins
You can use the skill/ncli-plugi-dev-helper/SKILL.md skill provided in this repository to quickly develop third-party plugins from scratch (even with zero prior knowledge).
Run ncli Anywhere on Your PC Under Virtual Environment
Windows
Steps
-
Right-click This PC → Properties → Advanced system settings → Environment Variables
-
Find
Pathin the System variables list and double-click to open it -
Click New, then add the folder path where
ncli.exeis located:# Example D:\nexusOpenCLI\.venv\Scripts
License
MIT
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 nexus_open_cli-0.2.0.tar.gz.
File metadata
- Download URL: nexus_open_cli-0.2.0.tar.gz
- Upload date:
- Size: 29.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
094c63b4f347c890cccd94169c23224315ae9642ed93f6fbec0adeecea1639a2
|
|
| MD5 |
2a012804c567e02a51db62318b963a28
|
|
| BLAKE2b-256 |
fc43ff8534b8fee9714e434296a082fd725de4e74d50d4964b749165ba0cf973
|
File details
Details for the file nexus_open_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: nexus_open_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d91f6efec03ead5676821ab5cd432ea65856d864e7b7fffb4478f2322f12a3c6
|
|
| MD5 |
a9a28fd5150b738ee9c97269a157c29d
|
|
| BLAKE2b-256 |
c54b0d5a9625f88c214d70c94bd0a5f3aafa1d3c41cf489bf72f3d8e04ef828b
|