Skip to content

PersonalViolet/nexus_cli

Repository files navigation

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.

show1.mp4
ncli --help
ncli plugin list

Installing Plugins

It is recommended to install plugins via the ncli repo command.

All plugins downloaded using this command are officially registered in the NexusOpenCLI-plugins-registry.

Plugins in the registry have been reviewed and verified by the NexusOpenCLI maintainers. You can browse and discover plugins effortlessly, just like searching for apps on the App Store.

Take ncli repo as an example:

show3.mp4

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

show2.mp4

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages