Installing plugins
A plugin extends Yttri without touching core code. Install from a file, a URL, or a developer folder; every plugin explicitly requests permissions.
Install sources
Section titled “Install sources”Open Settings → Plugins and choose one of the following:
- Install from file — a
.yttri-pluginpackage. - From URL — a link to a package.
- Developer folder — for fast iterations during development.
The marketplace catalog is on its way: the server side — publishing, signing and mandatory review — is already live, but installing straight from the catalog is not in the app yet. No manual workaround is needed; wait for the button.
Package signature
Section titled “Package signature”- A package from the catalog must be signed with the Yttri key. Signing happens during review: what is signed is exactly what passed attestation.
- A package from a file or URL may be unsigned — it installs, but is flagged: nobody vouched for its origin.
- A package with a broken signature does not install at all, from any source.
- The signature sits next to the package as a separate
.sigfile, not inside it.
Two-phase install
Section titled “Two-phase install”- Before installing, Yttri shows which permissions the plugin requests: data domains, read or write access, network hosts, and the stated reason.
- The plugin installs disabled. You enable it manually when you are ready.
- The package is safety-checked before unpacking: structure, paths, and archive.
Updates & rollback
Section titled “Updates & rollback”Updates show a permission diff: new rights require explicit consent. Yttri keeps a rollback snapshot, so the Roll back button restores the previous version.
Uninstall
Section titled “Uninstall”On uninstall, you choose what happens to the plugin’s data: keep, delete, or export.
Preflight before enabling
Section titled “Preflight before enabling”When you enable a plugin, Yttri first tries to load its code in the isolated process without running it. If the package does not load — incompatible with this app version, corrupted, or importing a missing module — the plugin stays off and the error states why. The verdict is remembered rather than recomputed on every start; it is bound to the exact code, platform, Yttri version and runtime revision, so updating any of them triggers a fresh check.