CLI Application
Python CLI for source extraction, detector execution, and batched output delivery.
Setup
cd /unstructured/apps/cli
uv sync
# Optional if you want an activated shell instead of `uv run ...`:
source .venv/bin/activate
Optional detector groups:
uv sync --group detectors
# or specific groups: --group secrets --group pii --group threat ...
Command Syntax
Use the thin wrapper:
uv run main.py <command> <recipe.json> [options]
Or direct module entrypoint:
uv run python -m src.main <command> <recipe.json> [options]
Commands:
test- test source connection.discover- discover source resources.extract- run extraction and emit batched output.evaluate-file- internally evaluate detectors against one local file.
Extract Output Model
Extraction always emits in batches.
Recipes do not contain output configuration; output is controlled by CLI flags and environment variables.
Output types:
console- emits NDJSON envelopes to stdout.file- appends NDJSON envelopes to a file.rest- pushes batches to API endpoints and finalizes run.
Default behavior:
- If
source_idis present (--source-idorSOURCE_IDenv), default output isrest. - Otherwise default output is
console. - Default batch size is
20.
CLI Options
Global/common:
--debug- enable debug logging.--detectors-file <path>- file evaluation only.
Extract output options:
--output-type rest|file|console--output-batch-size <int>--output-rest-url <url>(complete API base, including the namespace path)--output-file-path <path>--source-id <uuid>--runner-id <uuid>--managed-runner(REST only; runner lifecycle managed by API orchestrator)
Environment fallbacks:
SOURCE_ID,RUNNER_IDCLASSIFYRE_OUTPUT_TYPE,CLASSIFYRE_OUTPUT_BATCH_SIZECLASSIFYRE_OUTPUT_REST_URL,CLASSIFYRE_OUTPUT_REST_TIMEOUT_SECCLASSIFYRE_OUTPUT_FILE_PATHAPI_URL(fallback base URL for REST output)
Practical Examples
1) Console output (quick local test)
uv run main.py extract ./wordpress-recipe.json --output-type console --output-batch-size 1
You will see NDJSON lines like:
{"event":"batch", ...}{"event":"finish", ...}
2) File output
uv run main.py extract ./wordpress-recipe.json \
--output-type file \
--output-file-path /tmp/classifyre-assets.ndjson \
--output-batch-size 20
3) REST output (manual CLI to backend)
uv run main.py extract ./wordpress-recipe.json \
--output-type rest \
--source-id <source_uuid>
Notes:
--runner-idoptional for manual runs. If omitted, CLI creates external runner automatically.--output-rest-urlis optional. If omitted, CLI usesCLASSIFYRE_OUTPUT_REST_URL, thenAPI_URL, thenhttp://localhost:8000. In a namespaced deployment, pass the complete base (for examplehttps://api.example/ns-id); the CLI appends all asset, finding, runner, and source endpoints beneath it.--managed-runnershould be used only for API-orchestrated runs where runner already exists.
4) REST output with explicit runner (managed/orchestrated style)
uv run main.py extract ./wordpress-recipe.json \
--output-type rest \
--source-id <source_uuid> \
--runner-id <runner_uuid> \
--managed-runner
5) Full extract command with all output flags
uv run main.py extract ./wordpress-recipe.json \
--output-type rest \
--output-batch-size 20 \
--output-rest-url http://localhost:8000 \
--output-file-path /tmp/classifyre-assets.ndjson \
--source-id <source_uuid> \
--runner-id <runner_uuid> \
--managed-runner
Use --output-file-path only when --output-type file.
Dev Scripts
bun run dev- run CLI quickly.bun run lint- ruff format/check.bun run check-types- mypy.bun run test- pytest suite.
Release files for classifyre-cli 0.4.72
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| classifyre_cli-0.4.72.tar.gz | 893.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| classifyre_cli-0.4.72-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / classifyre_cli-0.4.72.tar.gz
| Download URL | classifyre_cli-0.4.72.tar.gz |
|---|---|
| Size | 893.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bbbcc8fb292f62798505b1b81847e3a47243d8560781f9b903d77747d576f119
|
|
BLAKE2b-256 checksum How to use checksums |
59c3b1147be2b6e68f2cab0fcf686f4df2ca1925ed26c71f9df6d13ca214a770
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / classifyre_cli-0.4.72-py3-none-any.whl
| Download URL | classifyre_cli-0.4.72-py3-none-any.whl |
|---|---|
| Size | 412.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c3d2ca462d7e9e6363dada2cdfee2fd456fe1bf47cf5738768b4761f73b165e
|
|
BLAKE2b-256 checksum How to use checksums |
51b8f1975b2faebe9e182293b79d74558eeefb44a3cdf8718af6d3e2053ff1ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|