Integrations

Plugin examples

Plugin examples

A gallery of small, self-contained example plugins — one per capability — so you can copy a working starting point instead of building from scratch. Each lives in examples/ and has its own page below with the code, the manifest, and how to run it.

New to plugins? Read the tutorial first, then the API reference.

By capability

CapabilityExampleWhat it does
op-hookWord CountNotifies word-count milestones as you type
slash-commandWorkspace StatsCounts blocks / TODO / DONE / pages
config-schemaGreeterGreets you using a configurable name
keybindingRandom TaskA chord that picks a random TODO to focus on
toolbar-buttonPage PulseA chrome button that shows page stats
ui-renderConfettiThrows confetti when a block is marked DONE
content-transformer:textBoxA ```box fence wraps text in an ASCII box
content-transformer:richBarsA ```bars fence renders a mini bar chart
networkInspireFetches a quote from an API
sync-transportEcho SyncA push/pull transport skeleton
several at onceTODO Archiverop-hook + slash-command + keybinding + config-schema in one plugin

The shape of an example

Every example follows the same layout (the dev shape — see the tutorial):

examples/<name>/
├── plugin.json        # manifest: capabilities, permissions, contributes
├── package.json       # build script (esbuild → index.js)
├── tsconfig.json
├── src/index.ts       # the plugin (imports @outl/plugin-sdk)
├── index.js           # the bundled output (what installs)
└── README.md

Install any of them into a workspace and run:

outl -w <workspace> plugin install ./examples/<name> --yes
outl -w <workspace> plugin list

The bundle ships in the repo, so you can install an example without a build step. To change one, edit src/index.ts and rebuild (bun run build inside the example, after bun install at the repo root).