Skip to content

Plugin Commands

Plugin management commands for discovering, loading, and managing Truthound plugins.

Overview

Command Description Primary Use Case
plugin list List discovered plugins Discovery
plugin info Show plugin details Inspection
plugin load Load a plugin Activation
plugin unload Unload a plugin Cleanup
plugin enable Enable a plugin Activation
plugin disable Disable a plugin Deactivation
plugin create Create plugin template Development

Plugin Types

Type Description
validator Custom validator plugins
reporter Custom reporter plugins
hook Event hook plugins (before/after validation)
datasource Data source connection plugins
action Notification/action plugins
custom General-purpose custom plugins

Plugin States

State Description Color
discovered Found (not loaded) Yellow
loading Loading in progress Cyan
loaded Load complete Blue
active Activated Green
inactive Deactivated Gray
error Error occurred Red
unloading Unloading in progress Yellow

Plugin Lifecycle

graph LR
    A[discovered] --> B[loading]
    B --> C[loaded]
    C --> D[active]
    D --> E[inactive]
    E --> D
    C --> F[unloading]
    F --> A
    B --> G[error]
    C --> G

Quick Examples

List Plugins

# List all plugins
truthound plugins list

# Filter by type
truthound plugins list --type validator

# Filter by state
truthound plugins list --state active

# Verbose output with details
truthound plugins list --verbose

# JSON output
truthound plugins list --json

Manage Plugins

# Load and activate plugin
truthound plugins load my-validator

# Load without activating
truthound plugins load my-validator --no-activate

# Enable/disable plugin
truthound plugins enable my-validator
truthound plugins disable my-validator

# Unload plugin
truthound plugins unload my-validator

Create Plugins

# Create validator plugin
truthound plugins create my-validator --type validator

# Create with author info
truthound plugins create my-reporter --type reporter --author "John Doe"

# Create in specific directory
truthound plugins create my-hook --type hook --output ./plugins

Plugin Development Workflow

# 1. Create plugin template
truthound plugins create my-custom-validator --type validator

# 2. Develop and install
cd truthound-plugin-my-custom-validator
pip install -e .

# 3. Verify plugin
truthound plugins list

# 4. Load and test
truthound plugins load my-custom-validator
truthound check data.csv --validators my-custom-validator

# 5. Disable/unload when done
truthound plugins disable my-custom-validator
truthound plugins unload my-custom-validator

Generated Plugin Structure

truthound-plugin-my-validator/
├── my_validator/
│   ├── __init__.py
│   └── plugin.py      # Plugin implementation
├── pyproject.toml     # Package config (entry-point)
└── README.md          # Documentation

Use Cases

1. Discover Available Plugins

# See all plugins with their states
truthound plugins list --verbose

# Find validator plugins
truthound plugins list --type validator

2. Manage Plugin Lifecycle

# Load plugin for use
truthound plugins load my-validator

# Temporarily disable
truthound plugins disable my-validator

# Re-enable when needed
truthound plugins enable my-validator

# Unload when no longer needed
truthound plugins unload my-validator

3. Create Custom Plugins

# Create a custom validator
truthound plugins create company-validators \
  --type validator \
  --author "Data Team" \
  --output ./plugins

Command Reference

See Also