Skip to content

Your first plugin

1. Host an HTTPS page

Download the JavaScript SDK and TypeScript types/source. Host the SDK alongside your UI. The monorepo package @elo/plugin-sdk is not currently on a public npm registry; the downloadable SDK is ready to use.

<!doctype html><html lang="en"><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My Elo plugin</title><h1>Meeting minutes</h1>
<button id="read" disabled>Read meeting</button><pre id="result"></pre>
<script type="module">
import { createEloPlugin } from './elo-plugin-sdk.js';
const elo = createEloPlugin('https://dash.elomeet.app');
const button = document.querySelector('#read');
const output = document.querySelector('#result');
elo.onContext(context => { button.disabled = context.surface !== 'meeting'; });
button.onclick = async () => {
  button.disabled = true; button.textContent = 'Loading…';
  try { output.textContent = JSON.stringify(await elo.request('meeting:read'), null, 2); }
  catch (error) { output.textContent = error.message; }
  finally { button.disabled = false; button.textContent = 'Read meeting'; }
};
window.addEventListener('pagehide', () => elo.destroy(), { once: true });
</script></html>

2. Describe and publish

Create a manifest pointing to your UI. Use a different origin from the Elo dashboard. Production manifests reject localhost, literal IPs, HTTP, credentials and custom ports. During development, publish a public HTTPS preview with your hosting provider.

Follow submission and approval, install the approved version, open a meeting you own and select your tab.

3. Append a reviewed note

await elo.request('notes:write', { text: 'Minutes reviewed and confirmed by the user.' });

The operation appends a note rather than replacing the transcript. Offer review, a spinner and feedback. Uninstalling the plugin preserves saved notes.

npm package

The SDK is prepared as @elomeet/plugin-sdk with ESM, CommonJS and TypeScript declarations. Initial npm publication requires maintainer approval; use the download above until then. After publication:

npm install @elomeet/plugin-sdk
import { createEloPlugin } from "@elomeet/plugin-sdk";