Skip to main content

Lean, plug-in-driven CLI kernel

Project description

Bijux CLI

A modern, predictable, and extensible CLI framework — with strict runtime contracts, a first-class plugin system, structured output, and built-in diagnostics.


Features at a Glance

  • Plugin-driven architecture – add/override behavior without touching core.
  • Deterministic global flags – strict precedence for consistent behavior (see ADR: Global Flags Precedence).
  • Dependency-Injection kernel – decoupled services, easy to test.
  • Interactive REPL – persistent shell for exploration and debugging.
  • Structured output – JSON/YAML with pretty/compact controls.
  • Diagnostics – environment checks, DI graph inspection, plugin validation.

Installation

Requires Python 3.11+

# Recommended: isolated CLI install
pipx install bijux-cli

# Or via pip
pip install bijux-cli

Quick Start

# See commands and global flags
bijux --help

# Run environment diagnostics
bijux doctor

# Start the interactive shell
bijux
bijux> help
bijux> exit

Usage Examples

Structured Output (JSON/YAML)

# Compact JSON for scripting
bijux status -f json --no-pretty

# Pretty JSON for humans
bijux status -f json --pretty

# YAML
bijux status -f yaml

DI & Developer Introspection

# Inspect DI registrations
bijux dev di -f json | jq

# List loaded plugins
bijux dev list-plugins

Plugins

# Scaffold, install, and validate a plugin
mkdir -p ./tmp_plugin && cd ./tmp_plugin
bijux plugins scaffold my_plugin --template=../plugin_template --force
cd ..
bijux plugins install ./tmp_plugin/my_plugin --force
bijux plugins check my_plugin
bijux plugins list

Global Flags (Precedence)

Higher priority wins and may short-circuit lower ones.

Priority Flag(s) Effect
1 -h, --help Exit 0 immediately; ignore all other flags.
2 -q, --quiet Suppress both stdout and stderr; exit code still reflects the result.
3 -d, --debug Full diagnostics; implies --verbose, forces --pretty.
4 -f, --format <json|yaml> Choose structured output; invalid value → exit code 2.
5 --pretty/--no-pretty Control indentation (default: --pretty).
6 -v, --verbose Add runtime metadata; implied by --debug.

Reference: ADR-0002 Global Flags Precedence https://bijux.github.io/bijux-cli/ADR/0002-global-flags-precedence/


Built-in Commands

Command Purpose Example
doctor Environment health check bijux doctor
status Show CLI status bijux status -f json
repl Interactive shell bijux repl
plugins Manage plugins bijux plugins list
config Manage key-value settings bijux config set core_timeout=5
history REPL history operations bijux history --limit 10
audit Security/compliance audit bijux audit --dry-run
docs Docs/spec generation utilities bijux docs --out spec.json
dev Developer tools (DI, plugins) bijux dev di
sleep Pause execution bijux sleep -s 5
version Display version info bijux version

Plugins are surfaced as top-level commands once installed.


Shell Completion

Enable tab completion (no sudo required):

# Install completion (zsh saves to ~/.zfunc)
bijux --install-completion

# Or print the script if you manage completions manually
bijux --show-completion

Restart your shell afterward. For zsh, ensure compinit runs and your fpath includes the completions' directory.


Configuration & Paths

Defaults (overridable via env vars):

  • Config: ~/.bijux/.envBIJUXCLI_CONFIG
  • History: ~/.bijux/.historyBIJUXCLI_HISTORY_FILE
  • Plugins: ~/.bijux/.pluginsBIJUXCLI_PLUGINS_DIR

Resolution order: CLI flags → Environment → Config file → Defaults

Example override:

export BIJUXCLI_PLUGINS_DIR=./.plugins
export BIJUXCLI_CONFIG=./.env
export BIJUXCLI_HISTORY_FILE=./.history

Documentation


Support & Security


License

Released under the MIT License. https://bijux.github.io/bijux-cli/license/

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

bijux_cli-0.1.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

bijux_cli-0.1.0-py3-none-any.whl (199.6 kB view details)

Uploaded Python 3

File details

Details for the file bijux_cli-0.1.0.tar.gz.

File metadata

  • Download URL: bijux_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for bijux_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9aa20edace77b723b072a087a49bad8064a433623b44a4bdb2f53b05d5b08442
MD5 4b5e328a0dd6fe01d906de4862969ae9
BLAKE2b-256 29c6d5cd690988b5c9ddaf4653414dc7aecad294bba2c975bd82d6532450b1e5

See more details on using hashes here.

File details

Details for the file bijux_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: bijux_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 199.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for bijux_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 632ee90001c40d5100a7b306d7871c6588139f88e4c998cd7e252d2fb6863287
MD5 72d0955a05175e9d96b27edc08c1bae8
BLAKE2b-256 4e2aac2c9d96c867a72bfa1d9c0c935fda62a006009f046dddbbb3ac40397e14

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