CLI Reference¶
flync_converter ships with three entry points after installation:
Command |
Entry point |
|---|---|
|
Non-interactive, scriptable subcommands |
|
Launches the interactive TUI directly |
|
Launches the PySide6 desktop GUI |
flync-converter -i (or --interactive) is a shorthand flag on the main command that also opens the TUI without needing to type the subcommand.
Commands¶
list-converters¶
Lists all converters currently registered, including any discovered plugins.
flync-converter list-converters
Output is a table with the converter name and a short description taken from each converter’s docstring.
convert¶
Quick, non-interactive conversion from a source path to a destination path.
flync-converter convert \
--source <source_path> \
--output <output_path> \
[--source-format <format>] \
[--output-format <format>] \
[--src-<field> <value> ...] \
[--dst-<field> <value> ...]
Option |
Short |
Description |
Default |
|---|---|---|---|
|
|
Source location to convert from |
(prompted if omitted) |
|
|
Output location to write to |
(prompted if omitted) |
|
|
Source format name (e.g. |
auto-detected |
|
|
Output format name |
|
|
N/A |
Config field for the source converter (see below) |
per-field default |
|
N/A |
Config field for the destination converter (see below) |
per-field default |
When --source-format is omitted, the registry attempts to auto-detect the format from the source path. If source and output formats are identical, no conversion is performed.
Converter config options (--src-* / --dst-*)¶
Each converter can declare its own Pydantic config model with extra fields beyond the base config_path. The convert command exposes every such field as a CLI option, prefixed with --src- (source converter) or --dst- (destination converter). Field names use hyphens (e.g. a field named output_type becomes --dst-output-type).
Discovering available fields
Pass --source-format and/or --output-format together with --help to see the full list of options for those converters:
flync-converter convert -sf yaml -of flync --help
Note
--help must appear after the format flags on the command line. If --help comes first, Click processes it before the format flags are read, so the dynamic options will not yet be listed.
Examples:
# Auto-detect source format, write FLYNC output
flync-converter convert -s data.json -o output/
# Explicit formats
flync-converter convert -s data.yaml -o out/ -sf yaml -of flync
# Pass converter-specific config fields for full automation
flync-converter convert \
-s data.yaml -o out/ \
-sf yaml -of flync \
--dst-output-type CLASSIC
# Enum fields accept the enum value as a string
flync-converter convert \
-s workspace/ -o converted/ \
-sf flync -of flync \
--src-some-flag true \
--dst-output-type EXTENDED
tui¶
Launches the interactive Textual TUI session. Equivalent to flync-converter -i and flync-converter-interactive.
flync-converter tui
# or
flync-converter -i
# or
flync-converter-interactive
convert-interactive¶
A plain-terminal interactive session driven by Rich prompts. Prints a numbered table of converters and asks for each config field sequentially. No mouse, no panels, works over SSH and in environments where a full TUI is not supported.
flync-converter convert-interactive
Prefer tui when running locally; use convert-interactive when you need a lighter, prompt-only flow.
Interactive TUI (tui / flync-converter-interactive)¶
The TUI is built with Textual and presents a single split-panel screen:
┌─ Source ────────────────────┬─ Destination ────────────────┐
│ Format: [ flync ▼] │ Format: [ flync ▼] │
│ │ │
│ * config_path │ * config_path │
│ [________________________] │ [________________________] │
│ │ │
│ output_type │ output_type │
│ [ CLASSIC ▼] │ [ CLASSIC ▼] │
└─────────────────────────────┴──────────────────────────────┘
┌─ Output ────────────────────────────────────────────────────┐
│ INFO flync_converter: Starting conversion │
│ Conversion completed successfully. │
└─────────────────────────────────────────────────────────── ┘
[ WARNING ▼] [ Convert ]
Source panel (left) - defaults to
flync; pick any registered format from the dropdown. Config fields appear immediately below. Required fields are marked with a red*; optional fields show their default value.Destination panel (right) - same layout, also defaults to
flync.Log panel - displays Python log output from the library in real time. Level is controlled by the selector bottom-left.
Log level selector - choose DEBUG / INFO / WARNING / ERROR to filter what appears in the log panel. Defaults to WARNING.
Convert button - enabled only when both formats are selected. Validates both panels inline, then runs the conversion in a background thread with live output in the log panel.
Config fields are generated automatically from each converter’s Pydantic model. If a plugin defines extra fields such as
output_structure,encoding, orindent, they appear without any TUI changes. Enum fields render as a dropdown rather than a text box.
Keyboard shortcut:
Key |
Action |
|---|---|
|
Quit |
Desktop GUI (gui / flync-converter-gui)¶
The GUI is a PySide6 desktop application with the same split-panel layout as the TUI.
flync-converter --gui
# or
flync-converter gui
# or
flync-converter-gui
The GUI mirrors the TUI feature-for-feature:
Resizable split panels - drag the divider to adjust the source/destination ratio.
Dynamic config fields - text inputs for scalar fields, dropdowns for enum fields. Required fields are marked
*in red.Real-time log output - Python log records from the library appear in the log panel. The log level selector controls verbosity.
Threaded conversion - the Convert button is disabled during conversion; output streams live into the log panel. Errors are displayed inline on the relevant panel.
Format auto-detection¶
When --source-format is not supplied to convert, the registry’s pick() method inspects the source path and returns the best-matching registered converter. The detected name is printed before conversion starts.
Exit codes¶
Code |
Meaning |
|---|---|
|
Success |
Non-zero |
Conversion error or unhandled exception (message printed to stderr) |