Extensions
Tsumihon's extension system lets you expand the app's capabilities by adding new search providers and data sources. Extensions are modular, installable packages that plug into the existing search and import infrastructure.
Overview
Extensions are the mechanism through which Tsumihon connects to external sources for searching, browsing, and importing book metadata. Each extension implements a standard provider interface, making it straightforward to add support for new sites and services.
- Search providers — add new sources that appear as tabs in the search screen.
- Metadata enrichment — extensions can supply additional metadata fields, cover images, and tags from their source.
- Download integration — providers that support it can also supply page data for the built-in reader and download system.
Built-in Providers vs. Extension Providers
Tsumihon ships with several built-in providers that are available out of the box:
- Built-in providers are bundled with the app and maintained as part of core development. They include common sources and are always available without any additional setup.
- Extension providers are installable add-ons. They follow the same provider interface as built-in providers but are distributed and updated independently.
From a user perspective, both types of providers work identically. They appear as search tabs, return the same result format, and integrate with the same import and merge pipelines.
Installing Extensions
To install an extension:
- Open Settings in Tsumihon.
- Navigate to the Extensions section.
- Browse available extensions or enter an extension URL.
- Tap Install to add the extension to your app.
Once installed, the extension's search provider will appear in the search screen alongside built-in providers. You can enable or disable individual extensions at any time from the settings screen.
Modular Architecture
The extension system is built on a modular architecture that makes it easy to create and maintain sources:
- Standard provider interface — every extension implements the same interface for search, detail fetching, and (optionally) page retrieval. This ensures consistency across all sources.
- Isolated execution — each extension runs independently, so a failure in one provider does not affect others.
- Shared infrastructure — extensions automatically benefit from Tsumihon's caching, proxy support, and network layer without needing to implement their own.
- Hot reload — extensions can be added, removed, or updated without restarting the app.
Managing Extensions
Installed extensions can be managed from the Settings screen:
- Enable / Disable — toggle an extension on or off without uninstalling it.
- Update — check for and apply updates to installed extensions.
- Remove — uninstall an extension entirely. This removes the provider from search but does not affect books already imported from that source.
Tip: Books imported from an extension retain their metadata and source IDs even after the extension is removed. You can always reinstall the extension later to re-enable search and updates from that source.