Skip to main content

Classifyre CLI — scan and classify unstructured data sources

Project description

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.
  • sandbox - run sandbox parsing/detectors for a 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_id is present (--source-id or SOURCE_ID env), default output is rest.
  • Otherwise default output is console.
  • Default batch size is 20.

CLI Options

Global/common:

  • --debug - enable debug logging.
  • --detectors-file <path> - sandbox only.

Extract output options:

  • --output-type rest|file|console
  • --output-batch-size <int>
  • --output-rest-url <url>
  • --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_ID
  • CLASSIFYRE_OUTPUT_TYPE, CLASSIFYRE_OUTPUT_BATCH_SIZE
  • CLASSIFYRE_OUTPUT_REST_URL, CLASSIFYRE_OUTPUT_REST_TIMEOUT_SEC
  • CLASSIFYRE_OUTPUT_FILE_PATH
  • API_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-id optional for manual runs. If omitted, CLI creates external runner automatically.
  • --output-rest-url is optional. If omitted, CLI uses CLASSIFYRE_OUTPUT_REST_URL, then API_URL, then http://localhost:8000.
  • --managed-runner should 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classifyre_cli-0.4.37.tar.gz (733.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

classifyre_cli-0.4.37-py3-none-any.whl (333.4 kB view details)

Uploaded Python 3

File details

Details for the file classifyre_cli-0.4.37.tar.gz.

File metadata

  • Download URL: classifyre_cli-0.4.37.tar.gz
  • Upload date:
  • Size: 733.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}

File hashes

Hashes for classifyre_cli-0.4.37.tar.gz
Algorithm Hash digest
SHA256 e919b61ceeb278cd3b0706cebf854eefc48a386c0a3847b4213dfc00ba58497d
MD5 05509eaa08e62d50d65d450c5f750c3a
BLAKE2b-256 27712f4e5f7c743bdc3327a6a89ced0a2471eb68e19afbf2fc2964559ff37d87

See more details on using hashes here.

File details

Details for the file classifyre_cli-0.4.37-py3-none-any.whl.

File metadata

  • Download URL: classifyre_cli-0.4.37-py3-none-any.whl
  • Upload date:
  • Size: 333.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}

File hashes

Hashes for classifyre_cli-0.4.37-py3-none-any.whl
Algorithm Hash digest
SHA256 9e1c93ca25aaddcdf3b0e1e4f16efdcf84d326144e7cfac3c754fa21ee9f5ccc
MD5 1cdb37e615d2fc4b4a62dda8b182a8d4
BLAKE2b-256 c5f190aedd9f95c75254c9f3dcceaca8f312ada8ba08332945553870891929a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page