StaxOffice development and licensing
Install the source checkout with development dependencies, then run either test entry point declared by the repository:
python -m pip install -e ".[dev]"
python -m unittest discover -s tests -v
python -m pytest -q
The current tests cover launcher theming and dispatch plus behavior in StaxMD, StaxWord, StaxCode, and StaxKB. The optional development set also includes Black and Ruff; the repository config targets Python 3.10 and a 120-character line length.
Architecture
staxoffice/
core/
global.py central tool registry
launcher/ UI, theme, cards, CLI, and process launch
modules/
StaxMD/
StaxWord/
StaxCode/
StaxKB/
staxoffice/core/global.py maps public tool names to importable modules. Each
tool module must expose launch(). Launcher card definitions are maintained
separately, so integrating another tool currently requires updating both the
tool registry and launcher definitions.
Tools run as separate Python processes. Standard output and error are captured under the system temporary directory using tool-specific filenames. The launcher briefly checks for an immediate non-zero exit and reports captured error details.
StaxMD divides its window, editor, preview, filesystem tree, menu, and footer
into separate UI components. This is an internal structure, not a stable
plugin API. Although pyproject.toml declares a plugins optional dependency
group, the current README explicitly lists a plugin system as not implemented.
Local operation and privacy
The prototype EULA states that StaxOffice operates locally and does not send documents or content to the licensor. DocsHub records that declared behavior; it is not an independent privacy or security audit.
Licence
StaxOffice is not MIT licensed. Version 0.1.0 is governed by a proprietary prototype EULA. Read the complete upstream EULA before installing or using it.
The EULA grants revocable, non-transferable permission to install and use the software, but restricts copying, modification, derivative works, redistribution, sublicensing, reverse engineering, and circumvention. It also disclaims warranties and limits liability, including for data loss. This page is a practical summary, not a replacement for the governing agreement.
The EULA identifies Queensland, Australia as the governing jurisdiction unless local law requires otherwise. Separately licensed future plugins may use their own terms.