ShareX Feature Specifications
Uploader Plugin System Specification
Architecture Overview
Multi-Instance Provider Catalog:
- Renamed
IUploaderPlugin→IUploaderProviderwith multi-category support - Separated provider (type) from instance (configured occurrence)
ProviderCatalog: Static registry for provider typesInstanceManager: Singleton for instance lifecycle, persistence, default selection- Models:
UploaderInstance,InstanceConfigurationwith JSON serialization - UI:
ProviderCatalogViewModel,CategoryViewModel,UploaderInstanceViewModel - Full CRUD operations: Add from catalog, duplicate, rename, remove, set default
- Cross-category support: Same provider (e.g., S3) can serve Image + Text + File
Providers Reference:
ImgurProvider: Supports Image + Text categoriesAmazonS3Provider: Supports Image + Text + File categories
Persistence: %AppData%/XerahS/uploader-instances.json
More from sharex/xerahs
design-ui-window
Redesigns or normalises any XerahS Avalonia .axaml page, dialog, or tool window to consistent app quality. Enforces layout, spacing, theming, surfaces, buttons, scrollbars, accessibility, and visual hierarchy. Only changes visuals, layout, and styles; never business logic, bindings, or public view-model API. Reusable by updating target_view_path.
71sharex core standards
License headers, build configuration rules, dependency version guidance, and general coding standards for XerahS
61sharex workflow and versioning
Canonical Git, commit/push, and Directory.Build.props versioning workflow for XerahS. Use for any task that changes version numbers or requires commit/push.
61changelog management
Rules and workflows for updating CHANGELOG.md, including version grouping, consolidation, and commit handling.
59sharex architecture and porting
Platform abstraction rules, porting guidelines, and architecture standards for XerahS
57avalonia-api
Comprehensive reference for Avalonia UI framework including XAML syntax, controls, data binding, MVVM patterns, styling, custom controls, layout system, responsive layout, navigation, and best practices. Covers CommunityToolkit.Mvvm integration, compiled bindings, dependency properties, attached properties, control templates, container queries, and cross-platform development patterns.
38