Configuration Reference
Complete reference for TonieToolbox configuration system based on the settings registry.
Configuration File Structure
TonieToolbox uses a centralized JSON configuration file with hierarchical settings organized into logical sections.
Configuration Location
Default path:
- All platforms: ~/.tonietoolbox/config.json
Path Resolution
The ~ expands to the user's home directory:
- Linux/macOS:
/home/username/.tonietoolbox/config.json - Windows:
C:\Users\username\.tonietoolbox\config.json
Configuration Format
TonieToolbox v1.0+ uses JSON format (config version 2.0):
{
"metadata": {
"description": "TonieToolbox centralized configuration",
"config_version": "2.0"
},
"application": {
"logging": {
"level": "INFO",
"log_to_file": false
},
"teddycloud": {
"url": null,
"ignore_ssl_verify": false,
"username": null,
"password": null,
"certificate_path": null,
"private_key_path": null
},
"version": {
"check_for_updates": true,
"notify_if_not_latest": true,
"pre_releases": false,
"auto_update": false
}
}
}
Configuration Sections
Metadata Section
Core configuration metadata (always present).
metadata.description
Human-readable configuration description.
Type: String
Default: "TonieToolbox centralized configuration"
metadata.config_version
Configuration format version.
Type: String
Default: "2.0"
Application Logging
Logging behavior and output configuration.
application.logging.level
Logging verbosity level.
Type: String
Default: "INFO"
Options: "TRACE", "DEBUG", "INFO", "WARNING", "ERROR"
Example:
application.logging.log_to_file
Enable file logging.
Type: Boolean
Default: false
application.logging.log_file_path
Custom log file directory path.
Type: String
Default: ~/.tonietoolbox/
application.logging.max_log_size
Maximum log file size before rotation.
Type: Integer (bytes)
Default: 10485760 (10MB)
application.logging.backup_count
Number of backup log files to keep.
Type: Integer
Default: 5
application.logging.console_format
Console log message format.
Type: String
Default: "%(levelname)-8s %(name)s: %(message)s"
application.logging.file_format
File log message format.
Type: String
Default: "%(asctime)s %(levelname)-8s %(name)s: %(message)s"
TeddyCloud Integration
TeddyCloud server connection settings.
application.teddycloud.url
TeddyCloud server URL.
Type: String
Default: null
Example:
application.teddycloud.ignore_ssl_verify
Ignore SSL certificate verification.
Type: Boolean
Default: false
Security Warning: Only use with trusted servers.
application.teddycloud.username
Basic authentication username.
Type: String
Default: null
application.teddycloud.password
Basic authentication password.
Type: String
Default: null
application.teddycloud.certificate_path
Client certificate file path for cert-based auth.
Type: String
Default: null
application.teddycloud.private_key_path
Client private key file path for cert-based auth.
Type: String
Default: null
application.teddycloud.connection_timeout
Connection timeout in seconds.
Type: Integer
Default: 10
application.teddycloud.read_timeout
Read timeout in seconds.
Type: Integer
Default: 300
application.teddycloud.chunk_size
Upload chunk size in bytes.
Type: Integer
Default: 1048576 (1MB)
application.teddycloud.max_retries
Maximum retry attempts for failed operations.
Type: Integer
Default: 3
application.teddycloud.retry_delay
Delay between retry attempts in seconds.
Type: Integer
Default: 5
Version Management
Update checking and notification settings.
application.version.check_for_updates
Check for updates automatically on startup.
Type: Boolean
Default: true
application.version.notify_if_not_latest
Show notification if newer version available.
Type: Boolean
Default: true
application.version.pre_releases
Include pre-release versions (alpha, beta, rc).
Type: Boolean
Default: false
application.version.auto_update
Enable automatic updates.
Type: Boolean
Default: false
application.version.cache_expiry
Version cache expiry in seconds.
Type: Integer
Default: 86400 (24 hours)
application.version.timeout
Version check timeout in seconds.
Type: Integer
Default: 10
application.version.max_retries
Max retries for version checks.
Type: Integer
Default: 3
application.version.retry_delay
Retry delay for version checks.
Type: Integer
Default: 5
application.version.pypi_url
PyPI JSON API endpoint for version checking.
Type: String
Default: "https://pypi.org/pypi/TonieToolbox/json"
Audio Processing
Audio encoding and conversion settings.
processing.audio.default_bitrate
Default audio bitrate in kbps.
Type: Integer
Default: 128
processing.audio.default_sample_rate
Default sample rate in Hz.
Type: Integer
Default: 48000
processing.audio.default_channels
Default number of audio channels.
Type: Integer
Default: 2 (stereo)
processing.audio.use_cbr
Use constant bitrate encoding.
Type: Boolean
Default: false
processing.audio.opus_complexity
Opus encoding complexity (0-10).
Type: Integer
Default: 10
processing.audio.opus_application
Opus application type.
Type: String
Default: "audio"
Options: "audio", "voip", "lowdelay"
processing.audio.auto_mono_conversion
Automatically convert mono to stereo.
Type: Boolean
Default: true
processing.audio.normalize_audio
Normalize audio levels.
Type: Boolean
Default: false
processing.audio.remove_silence
Remove silence from audio.
Type: Boolean
Default: false
File Handling
File processing and output management.
processing.file_handling.default_output_dir
Default output directory path.
Type: String
Default: "./output"
processing.file_handling.output_to_source
Save output files in source directory.
Type: Boolean
Default: false
processing.file_handling.force_creation
Overwrite existing files.
Type: Boolean
Default: false
processing.file_handling.use_media_tags
Use media tags for file naming.
Type: Boolean
Default: false
processing.file_handling.name_template
Filename template for media tag naming.
Type: String
Default: "{artist} - {title}"
Available variables: {artist}, {title}, {album}, {albumartist}, {track}, {year}, {genre}
processing.file_handling.append_tonie_tag
8-character hex tag to append to filenames.
Type: String
Default: null
processing.file_handling.keep_temp_files
Keep temporary files after processing.
Type: Boolean
Default: false
processing.file_handling.temp_dir
Custom temporary directory.
Type: String
Default: null (uses system temp)
processing.file_handling.auto_cleanup
Automatically cleanup temporary files.
Type: Boolean
Default: true
processing.file_handling.validate_outputs
Validate output files after creation.
Type: Boolean
Default: true
processing.file_handling.check_existing_files
Check for existing files before processing.
Type: Boolean
Default: true
Processing Modes
Advanced processing behavior.
processing.processing_modes.recursive_depth_limit
Maximum recursive directory depth.
Type: Integer
Default: 10
processing.processing_modes.skip_empty_folders
Skip empty folders during processing.
Type: Boolean
Default: true
processing.processing_modes.folder_size_limit
Maximum folder size in bytes.
Type: Integer
Default: 1073741824 (1GB)
processing.processing_modes.parallel_processing
Enable parallel file processing.
Type: Boolean
Default: false
processing.processing_modes.max_parallel_files
Maximum number of parallel files.
Type: Integer
Default: 4
processing.processing_modes.max_parallel_workers
Maximum number of parallel workers for recursive folder processing.
Type: Integer
Default: 4
CLI Override: --workers N
Description: Controls the number of folders processed simultaneously during recursive operations. Higher values provide better performance on multi-core systems but consume more memory.
Performance Guidelines: - Start with value equal to CPU cores - Each worker uses ~200-500MB RAM - Monitor system resources when using high values
processing.processing_modes.analysis_cache_enabled
Enable file analysis caching.
Type: Boolean
Default: true
processing.processing_modes.detailed_analysis
Enable detailed file analysis.
Type: Boolean
Default: false
GUI Settings
Graphical interface configuration.
gui.enable_gui
Enable GUI mode.
Type: Boolean
Default: true
gui.language
GUI language code.
Type: String
Default: "en_US"
Options: "en_US", "de_DE", "fr_FR", "es_ES"
gui.auto_detect_language
Auto-detect system language.
Type: Boolean
Default: true
gui.fallback_language
Fallback language if translation unavailable.
Type: String
Default: "en_US"
gui.debug_mode
Enable GUI debug mode.
Type: Boolean
Default: false
gui.show_debug_info
Show debug information in GUI.
Type: Boolean
Default: false
GUI Theme
Theme and appearance settings.
gui.theme.default_theme
Default theme name.
Type: String
Default: "default"
gui.theme.custom_theme_dir
Custom theme directory path.
Type: String
Default: null
gui.theme.default_font_family
Default font family.
Type: String
Default: "Arial"
gui.theme.default_font_size
Default font size in points.
Type: Integer
Default: 10
GUI Window
Window size and position settings.
gui.window.default_width
Default window width in pixels.
Type: Integer
Default: 1000
gui.window.default_height
Default window height in pixels.
Type: Integer
Default: 700
gui.window.min_width
Minimum window width in pixels.
Type: Integer
Default: 800
gui.window.min_height
Minimum window height in pixels.
Type: Integer
Default: 600
gui.window.remember_size
Remember window size between sessions.
Type: Boolean
Default: true
gui.window.remember_position
Remember window position between sessions.
Type: Boolean
Default: true
gui.window.start_maximized
Start window maximized.
Type: Boolean
Default: false
gui.window.auto_adapt_size
Automatically adapt window size.
Type: Boolean
Default: true
gui.window.maximize_on_large_screens
Maximize window on large screens automatically.
Type: Boolean
Default: true
GUI Behavior
GUI interaction and playback behavior.
gui.behavior.auto_play_on_open
Automatically play files when opened.
Type: Boolean
Default: false
gui.behavior.remember_last_directory
Remember last used directory.
Type: Boolean
Default: true
gui.behavior.show_file_extensions
Show file extensions in file lists.
Type: Boolean
Default: true
gui.behavior.show_progress_bars
Show progress bars during operations.
Type: Boolean
Default: true
gui.behavior.show_tooltips
Show tooltips on hover.
Type: Boolean
Default: true
gui.behavior.confirm_destructive_actions
Confirm destructive actions (delete, overwrite).
Type: Boolean
Default: true
gui.behavior.auto_loop
Auto-loop audio playback.
Type: Boolean
Default: false
gui.behavior.volume_step
Volume change step percentage.
Type: Integer
Default: 10
gui.behavior.seek_step
Seek step in seconds.
Type: Integer
Default: 5
gui.behavior.auto_save_playlist
Auto-save playlist on exit.
Type: Boolean
Default: true
gui.behavior.auto_load_last_playlist
Auto-load last playlist on startup.
Type: Boolean
Default: true
gui.behavior.last_playlist_path
Path to last playlist file.
Type: String
Default: ~/.tonietoolbox/last_playlist.lst
gui.behavior.playlist_file_cache_size
Maximum playlist file cache size.
Type: Integer
Default: 100
Plugin System
Plugin management configuration.
plugins.enable_plugins
Enable plugin system (global toggle).
Type: Boolean
Default: true
plugins.auto_discover
Automatically discover plugins on startup.
Type: Boolean
Default: true
plugins.auto_enable
Automatically enable discovered plugins.
Type: Boolean
Default: true
plugins.plugin_directories
Additional plugin directories to scan.
Type: Array of strings
Default: ["~/.tonietoolbox/plugins"]
Example:
plugins.disabled_plugins
List of plugin IDs to keep disabled.
Type: Array of strings
Default: []
Example:
plugins.load_builtin_plugins
Load built-in plugins from TonieToolbox core.
Type: Boolean
Default: true
plugins.repository_urls
Plugin repository URLs to search.
Type: Array of strings
Default: ["https://raw.githubusercontent.com/TonieToolbox/tonietoolbox_plugins/main/"]
plugins.auto_update_check
Check for plugin updates on startup.
Type: Boolean
Default: true
plugins.update_check_interval
Interval between update checks in seconds.
Type: Integer
Default: 86400 (24 hours)
plugins.install_location
Base directory for community plugin installations.
Type: String
Default: ~/.tonietoolbox/plugins
plugins.allow_unverified
Allow installation of unverified plugins.
Type: Boolean
Default: false
plugins.max_parallel_downloads
Maximum number of parallel plugin downloads.
Type: Integer
Default: 3
plugins.verify_checksums
Verify SHA512 checksums when installing plugins.
Type: Boolean
Default: true
Dependencies
External dependency management.
dependencies.parallel_downloads
Enable parallel downloads.
Type: Boolean
Default: true
dependencies.max_concurrent_downloads
Maximum concurrent downloads.
Type: Integer
Default: 3
dependencies.python_package_auto_install
Auto-install missing Python packages.
Type: Boolean
Default: true
dependencies.pip_timeout
Pip timeout in seconds.
Type: Integer
Default: 120
Dependencies Network
Network settings for dependency downloads.
dependencies.network.connection_timeout
Connection timeout in seconds.
Type: Integer
Default: 30
dependencies.network.read_timeout
Read timeout in seconds.
Type: Integer
Default: 300
dependencies.network.max_retries
Maximum network retries.
Type: Integer
Default: 3
dependencies.network.retry_backoff
Retry backoff multiplier.
Type: Float
Default: 2.0
dependencies.network.user_agent
HTTP User-Agent string.
Type: String
Default: "TonieToolbox/1.0"
Dependencies Cache
Dependency caching settings.
dependencies.cache.cache_dir
Cache directory path.
Type: String
Default: ~/.tonietoolbox/cache
dependencies.cache.libs_dir
Libraries directory path.
Type: String
Default: ~/.tonietoolbox/libs
dependencies.cache.max_cache_size
Maximum cache size in bytes.
Type: Integer
Default: 1073741824 (1GB)
dependencies.cache.cache_expiry_days
Cache expiry in days.
Type: Integer
Default: 30
dependencies.cache.auto_cleanup
Auto-cleanup expired cache.
Type: Boolean
Default: true
dependencies.cache.enabled
Enable dependency caching.
Type: Boolean
Default: true
Media Tags
Media metadata handling.
media.tags.additional_tags
Additional custom media tags to extract.
Type: Array of strings
Default: []
Example:
Plugin Configuration
Plugins have their own namespaced configuration under the plugins.config.{plugin_id} section.
Plugin Config Structure
{
"plugins": {
"config": {
"com.tonietoolbox.tonies_loader": {
"auto_update": true,
"cache_ttl_hours": 24,
"fallback_enabled": true
},
"com.tonietoolbox.tonies_viewer": {
"image_quality": "high",
"cache_images": true
}
}
}
}
Plugin Config Access
Plugins access their configuration through the PluginContext:
# Get plugin-specific config value
cache_ttl = context.get_config("cache_ttl_hours", default=24)
# Set plugin-specific config value
context.set_config("auto_update", True)
# Get all plugin config
config = context.get_all_config()
Key features: - Auto-namespaced: Plugin ID automatically prepended - Schema defaults: Merged with plugin's config schema defaults - Auto-saved: Changes persist to config.json - Type-safe: Validates against plugin's config schema
Example Plugin Config Schema
In plugin's manifest.json:
{
"config_schema": {
"auto_update": {
"type": "boolean",
"default": true,
"description": "Automatically update Tonies database"
},
"cache_ttl_hours": {
"type": "integer",
"default": 24,
"description": "Cache time-to-live in hours"
}
}
}
Configuration Examples
Audiobook Processing Profile
{
"processing": {
"audio": {
"default_bitrate": 64,
"use_cbr": true,
"auto_mono_conversion": false
},
"file_handling": {
"use_media_tags": true,
"name_template": "{albumartist}/{album}/Chapter {track:02d}"
}
}
}
Music Collection Profile
{
"processing": {
"audio": {
"default_bitrate": 192,
"normalize_audio": true
},
"file_handling": {
"use_media_tags": true,
"name_template": "{albumartist}/{year} - {album}/{track:02d} - {title}",
"output_to_source": false
},
"processing_modes": {
"parallel_processing": true,
"max_parallel_files": 4
}
}
}
TeddyCloud Auto-Upload
{
"application": {
"teddycloud": {
"url": "https://teddycloud.local",
"username": "admin",
"password": "secret",
"ignore_ssl_verify": false
}
}
}
Debug Mode
{
"application": {
"logging": {
"level": "DEBUG",
"log_to_file": true
}
},
"gui": {
"debug_mode": true,
"show_debug_info": true
}
}
Configuration Management
Manual Editing
Edit configuration file directly:
Linux/macOS:
Windows:
Validation
TonieToolbox validates configuration on startup: - Type checking (string, integer, boolean, array) - Range validation for numeric values - Path validation for directory/file settings
Invalid settings fall back to defaults with warnings in logs.
Reset Configuration
Delete config file to reset to defaults:
TonieToolbox will create a new configuration with defaults on next startup.
Backup Configuration
# Backup
cp ~/.tonietoolbox/config.json ~/.tonietoolbox/config.backup.json
# Restore
cp ~/.tonietoolbox/config.backup.json ~/.tonietoolbox/config.json
See Also
- Command Line Reference - CLI options override config settings
- Plugin System - Learn about plugin configuration
- Basic Usage Guide - Common usage patterns