Skip to main content

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

logo

English | 中文

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.

quick start

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:

ncli repo

You can also install plugins via pip install nexus-open-cli-doctor for a quick experience.

show2

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

  1. Right-click This PCPropertiesAdvanced system settingsEnvironment Variables

  2. Find Path in the System variables list and double-click to open it

  3. Click New, then add the folder path where ncli.exe is located:

    # Example
    D:\nexusOpenCLI\.venv\Scripts
    

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nexus_open_cli-0.2.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nexus_open_cli-0.2.0-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

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

Hashes for nexus_open_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 094c63b4f347c890cccd94169c23224315ae9642ed93f6fbec0adeecea1639a2
MD5 2a012804c567e02a51db62318b963a28
BLAKE2b-256 fc43ff8534b8fee9714e434296a082fd725de4e74d50d4964b749165ba0cf973

See more details on using hashes here.

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

Hashes for nexus_open_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d91f6efec03ead5676821ab5cd432ea65856d864e7b7fffb4478f2322f12a3c6
MD5 a9a28fd5150b738ee9c97269a157c29d
BLAKE2b-256 c54b0d5a9625f88c214d70c94bd0a5f3aafa1d3c41cf489bf72f3d8e04ef828b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page