tool-neuron-plugins / README.md
Void2377's picture
initial plugin catalog: notes / counter / expense
cf7be65 verified
# tool-neuron-plugins
Public catalog of plugin bundles consumed by the ToolNeuron Android app.
The app reads `plugins.json` from this repo on every refresh and lists the
plugins it advertises. When the user installs a plugin, the app downloads the
zip at `download`, verifies `sha256`, extracts it into the plugin store, and
deletes the zip.
## Layout
```
plugins.json
plugins/<id>/<version>/<name>.zip
```
Each zip contains:
- `manifest.json` — id, version, apiVersion, entryClass, capabilities, hasNativeCode
- `classes*.dex` — plugin code (multidex supported)
- `lib/<abi>/*.so` — optional native libraries (only when `hasNativeCode: true`)
## Adding a plugin
1. Build the plugin module (`./gradlew :plugins:<name>:packagePlugin`)
2. Drop the zip under `plugins/<id>/<version>/`
3. Add an entry to `plugins.json` with `size` and `sha256`
4. `hf upload Void2377/tool-neuron-plugins . .`
The schema versions itself via `schemaVersion`; the app refuses to parse
catalogs whose `schemaVersion` is newer than it understands.