Skip to main content

fx-tool

fx is the grouped project manager and operations CLI for projects built on registers. It is implemented as a first-class registers.cli application: commands are grouped, results are structured, global context is supported, and plain output remains automation-friendly.

Install

pip install fx-tool
pip install "fx-tool[cli]"

The cli extra enables the optional registers.cli Rich and prompt_toolkit integrations for styled help, tables, completion, history, and multiline shell input. Without the extra, fx falls back to standard-library plain text.

Quick Start

fx project init cli MyTool
fx project status MyTool
fx project health MyTool
fx run cli MyTool

DB/FastAPI project:

fx project init db ApiService --layout src
fx run api ApiService --host 0.0.0.0 --port 9000 --reload

Cron project:

fx project init cron OpsJobs
fx cron jobs OpsJobs
fx cron trigger OpsJobs sync-cache --payload '{"dry_run":true}'

Use a global root when repeatedly operating on one project:

fx --root MyTool project status
fx --root MyTool module list
fx --root OpsJobs cron status --output json

Command Model

fx intentionally supports grouped commands only. Legacy flat forms such as fx init, fx status, fx run ., fx install, fx update, and action-router cron forms are removed.

project init|status|health|history
module add|list|remove
plugin link|list|unlink|sync
run auto|cli|api|cron
package install|update|pull
cron jobs|trigger|start|stop|status|workspace|register|workflows|run-workflow|generate|apply

Output Modes

Commands return dictionaries or lists of dictionaries where possible. That makes the same command useful for humans and scripts:

fx project status MyTool
fx project status MyTool --output json
fx module list MyTool --output csv
fx cron jobs OpsJobs --quiet
fx cron status OpsJobs --no-color

If a command ever owns an output argument, use the framework alias:

fx some command --output report.txt --cli-output json

Safety

Changing commands support --dry-run where practical:

fx project init cli MyTool --dry-run
fx module add MyTool cli users --dry-run
fx plugin link MyTool my_package.tools tools --dry-run
fx package install MyTool --dry-run
fx cron trigger OpsJobs sync-cache --payload '{"x":1}' --dry-run

Destructive state operations require confirmation in interactive sessions or --force in automation:

fx module remove MyTool users --force
fx plugin unlink MyTool tools --force
fx cron apply OpsJobs --target linux_cron --force

Interactive Shell

Start the shell explicitly:

fx --interactive

Embedded callers can enable optional shell UX:

from fx import run

run(
    ["--interactive"],
    rich=True,
    completion=True,
    history=True,
    multiline=True,
)

Shell built-ins include help, commands, watch <command> --interval N --count N, pipe <command> | filter FIELD=VALUE | sort FIELD | count, exec <system command>, and exit.

Project Layouts

The default layout is src/<package>/. Use --layout root to create <root>/<package>/, and --package <name> to choose the package name.

CLI projects create a grouped registers.cli starter command. DB projects also create api.py and models.py; DB projects run through Uvicorn as <package>.api:app. Cron projects also create jobs.py and install the script-local registers.cron CLI inside main().

Development

python -m pytest tests/fx
python -m pytest tests

For source-tree smoke checks without reinstalling:

$env:PYTHONPATH="C:\Users\charl\Documents\Python\framework\fx\src;C:\Users\charl\Documents\Python\framework\registers\src"
python -m fx --help

Metadata

Release files for fx-tool 1.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fx-tool 1.2.4
File Size Uploaded
fx_tool-1.2.4.tar.gz 25.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fx-tool 1.2.4
File Interpreter ABI Platform
fx_tool-1.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 57.9 kB

Release files / fx_tool-1.2.4.tar.gz

Download URL fx_tool-1.2.4.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7b112cd32be4b8606f39549b625f1112be727af52dd34e4ec24e3331c0ee0ff9
BLAKE2b-256 checksum
How to use checksums
3fd94ef27db3355fccfef135fdff545b01962504ec01f44995c389f6f8824835
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 9, 2026.

Transparency log

Release files / fx_tool-1.2.4-py3-none-any.whl

Download URL fx_tool-1.2.4-py3-none-any.whl
Size 32.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f6935f909dca8b3c13234e7210940a5e2391f9a95c4cb6a8d57753d3147cd68
BLAKE2b-256 checksum
How to use checksums
792a437a7f8b87cf84b1f5475015439aca5146021833aede1c0af24eda08aa95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.4 This release

2 release files

1.2.1

2 release files

1.1.2

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page