Plugins enables auto-complete window for emojis upon opening semicolon
  • JavaScript 94.1%
  • CSS 5.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-30 07:07:49 -03:00
.agents/skills/create-owncast-plugin-js init commit 2026-09-23 20:35:50 -03:00
__tests__ fix: keep highlighted emoji when only the name changes 2026-09-29 11:21:48 -03:00
assets fix: keep highlighted emoji when only the name changes 2026-09-29 11:21:48 -03:00
src init commit 2026-09-23 20:35:50 -03:00
.gitignore init commit 2026-09-23 20:35:50 -03:00
AGENTS.md init commit 2026-09-23 20:35:50 -03:00
icon.png init commit 2026-09-23 20:35:50 -03:00
image.png init commit 2026-09-23 20:35:50 -03:00
INSTRUCTIONS.md init commit 2026-09-23 20:35:50 -03:00
package-lock.json init commit 2026-09-23 20:35:50 -03:00
package.json init commit 2026-09-23 20:35:50 -03:00
plugin.manifest.json release: v0.1.1 2026-09-30 07:07:49 -03:00
README.md docs: contributing 2026-09-23 20:53:52 -03:00

Emoji Autocomplete

An Owncast plugin that adds a :-triggered emoji autocomplete popup to the viewer chat. All viewer preferences (enabled/disabled, row count, separating channel and default emojis, recently-used tracking and its size limit) live in that viewer's own localStorage. The plugin has no server-side behavior.

Users can view their settings under user settings

Contributing

Because I run my own git it does add a bit of friction, you can reach out to me via:

Default README (not super important)

Develop

npm install          # one-time, fetches the prebuilt test/serve host binaries
npm run build        # bundle src/plugin.js into emoji-autocomplete.js
npm test             # build + load-check, then browser tests (needs Chromium; set CHROMIUM_PATH if not on PATH)
npm run serve        # build, then host the plugin on http://localhost:8080
npm run package      # build, then bundle into emoji-autocomplete.ocpkg for distribution

Plugins ship as source and run on the JavaScript engine the Owncast host embeds, so there's no wasm compile step and no toolchain to install. npm install only fetches the host binaries test/serve use, and caches them after the first run.

Ship

npm run package produces emoji-autocomplete.ocpkg. Install it through the Owncast admin: open Plugins, click Upload plugin, and pick the file. (You can also copy it directly to the server's data/plugins/ directory if the admin UI isn't an option.) Toggle Enabled to load it.

Files

  • src/plugin.js, empty (no server-side handlers needed)
  • assets/emoji-autocomplete.css / assets/emoji-autocomplete.js, the actual autocomplete popup, inlined into the viewer page via the manifest's styles/scripts fields
  • plugin.manifest.json, the manifest: display name, slug, version, permissions
  • __tests__/plugin.test.js, exercises the install-time load-check (no dynamic behavior to assert scenarios against)
  • icon.png (optional), drop a square PNG here and it bundles into the .ocpkg automatically. The admin uses it in the plugin list and sidebar, no permission required. Plugins without one fall back to a generic puzzle-piece glyph.
  • INSTRUCTIONS.md, rendered as an Instructions tab on the plugin's details page in the Owncast admin.

Learn more

The full author guide covers every event handler, host API, permission, and testing pattern:

→ Owncast Plugin Author Guide

TypeScript declarations in @owncast/plugin-sdk give editor autocomplete on every API.