What they are

Four kinds of package

A package extends MIRA with a new capability. They're distributed as signed .mirapkg / .miraskill artifacts — each one carries its publisher's signature and a content hash.

Skill

Reusable know-how — guidance, and optionally tools — packaged so MIRA can apply it on demand.

MCP server

An MCP tool server, so an external service shows up to the agent as a set of tools.

Channel provider

A CPP (Channel Provider Protocol) provider that bridges another messaging system in as a channel.

App

A packaged in-MIRA app.

The trust model

Discovery is convenient.
Trust is decided per install.

Trusting a source by default doesn't weaken anything, because the source only helps you find packages — it never gets to decide what's allowed to install. That decision is made again, per artifact, at install time.

1

A signed catalog is fetched

MIRA fetches a signed catalog (index.json) from each configured source and verifies the catalog's signature against that source's pinned public key. Verified entries appear in-app under Plugins → Browse.

2

Official packages are Verified by default

As of v0.356.0 the first-party Vexillon source is enabled by default, and MIRA bundles and auto-pins the Vexillon publisher key — so official packages install as Verified with no setup. The source is admin-disableable at any time.

3

Community packages are trust-on-first-use

A community package is signed with the author's own key and shows as Untrusted until an admin explicitly pins that key. Nothing from an unpinned publisher is treated as trusted.

4

Every install is verified per artifact

The authoritative check happens at install time, on the artifact itself: MIRA re-checks the artifact's sha256 and its embedded publisher signature against the trust store before anything is installed.

A tampered or unsigned catalog can never cause an unsigned or untrusted artifact to install silently. The catalog signature exists only to stop a catalog from redirecting a trusted package id to a malicious download — it is not what authorises an install. Per-artifact verification gates every install, whatever the source.

Available now

First-party packages

Published in the Vexillon index today. Both require MIRA ≥ 0.356.0 and install as Verified. The catalog is young and will grow.

Nextcloud MCP

Verified

Nextcloud Files + Calendar as agent tools, over MCP (stdio).

ID
ai.vexillon.nextcloud-mcp
Kind
MCP server
Version
1.0.0

Nextcloud Talk

Verified

Bridges Nextcloud Talk to MIRA as an external channel (CPP).

ID
ai.vexillon.nextcloud-talk
Kind
Channel provider
Version
1.0.0

Browse the full, signed index at github.com/Vexillon-ai/mira-packages.

Installing a package

Admins open Plugins → Browse in the MIRA web UI and install from there. The Vexillon source is on by default on 0.356.0 and later, so official packages are ready to browse with no setup.

For reliable Browse-based install, run 0.356.2 or later — earlier 0.356.x had install-path bugs that these patches fix.

On an older release? Update first — the installers always pull the latest:

update
$ mira upgrade

New to MIRA? See the installation guide for the one-line installers.

Publishing a package

Packages are submitted by pull request to the mira-packages repo: add your signed artifact under packages/<id>/<version>/ and an entry in index.json. CI validates catalog integrity, and a maintainer reviews and merges.

Your package is signed with your own key, so it stays Untrusted (trust-on-first-use) on each instance until an admin pins your key — exactly as it should be.

Full flow, layout and signing steps are in the repo README.

Extend her on your terms.

Official packages install Verified out of the box — and every install is checked per artifact, whatever the source.