bijux-cli 0.4.0

Command-line runtime for automation, plugin-driven tools, and interactive workflows with structured output.
Documentation

bijux-cli

Crates.io Rust docs License: Apache-2.0 CI Status GitHub Repository

Repository docs bijux-cli docs

bijux-cli is the public Rust package behind the bijux command runtime.

It is the source of truth for command semantics shared by the native binary, the Python distribution, and the in-process SDK surfaces used by mounted apps and integration tests.

Use it when you want the bijux runtime itself, or when you want to embed mounted app behavior against the same envelopes, exit codes, and routing rules that the installed command uses.

Install the end-user command with either of the public distribution paths:

cargo install bijux-cli
python -m pip install bijux-cli

Then inspect the supported runtime surface with:

bijux --help
bijux doctor
bijux apps --help

What It Provides

  • Own command parsing, normalization, registry lookup, and execution.
  • Own runtime-facing state behavior for config, history, memory, install diagnostics, plugins, and the REPL.
  • Expose read-only query APIs used by maintainer tooling.
  • Do not assemble maintainer reports; bijux-dev-cli owns that surface directly.

Source Layout

  • src/api: stable entrypoints used by the binary, tests, and the Python bridge.
  • src/bootstrap: process wiring and exit-code handling.
  • src/contracts: durable command, envelope, config, plugin, and query types.
  • src/features: domain implementations for config, diagnostics, history, install, memory, and plugins.
  • src/infrastructure: filesystem, process, environment, and state-store adapters.
  • src/interface: CLI and REPL surfaces.
  • src/kernel: execution pipeline and policy resolution.
  • src/routing: command catalog, parser, and registry.
  • src/shared: small cross-cutting helpers.

Reach For Another Surface When

  • you need Python packaging, interpreter diagnostics, or mounted Python app distribution: bijux-cli-python
  • you need repository diagnostics, governance reports, or release proof: bijux-dev
  • you need DAG graph execution rather than the root runtime: bijux-dag-*

Runtime Rules

  • Commands are parsed and normalized before execution.
  • Help, envelopes, and output formatting stay deterministic across repeated runs.
  • Maintainer commands stay outside the runtime binary; this crate does not parse or execute bijux-dev-cli surfaces.
  • The process entrypoint stays thin: decode argv, call the runtime, write streams, map exit codes.

Mounted App SDK

The crate-native SDK under src/sdk uses the same routing context and output envelope as the installed command. ProductMount declares the mount, BijuxApp handles routed calls, and BijuxCliHarness exercises the boundary without spawning a process.

use bijux_cli::sdk::ProductMount;

let mount = ProductMount::new("hello")?
    .binary("bijux-hello")
    .summary("Hello application");

Python-mounted apps use the same descriptor contract. See the mounted Python app guide for interpreter discovery, manifest placement, compatibility checks, and packaging.

Operator References

Question Authority
which commands and output contracts are supported? CLI Surface
how are global, profile, project, and environment values resolved? Configuration Surface
how do I diagnose paths, routing, plugins, Python, or mounted apps? Diagnostics Guide
which generated keys and scopes exist? Generated Configuration Reference

Tests

Internal Documentation

  • ARCHITECTURE.md: runtime layers, dependency direction, state ownership, and extension decisions.
  • CONTRACTS.md: package ownership, invariants, schemas, effects, and failure behavior.
  • PUBLIC_API.md: supported Rust facade, contract types, SDK surface, and compatibility rules.
  • PLUGINS_AND_APPS.md: extension ownership, namespace collision law, lifecycle, execution, and trust boundaries.
  • ROUTING_AND_EXECUTION.md: canonical route resolution, execution policy, lifecycle, and external dispatch.
  • STATE_AND_EFFECTS.md: configuration, durable state, subprocess, stream, locking, and recovery rules.

Release References