openpetswithchatandmcp/packages/sdk
OpenPets Dev 6ab3bb64d8 feat(rebrand): rename OpenPets to FamiliarOS and pets to familiars
- Rename all user-facing and technical identifiers from OpenPets/Pet to FamiliarOS/Familiar.
- Rename packages from @open-pets/* to @familiaros/*; rename install-pet/pet-format packages.
- Rename plugin IDs and directories from openpets.* to familiaros.*.
- Rename IPC namespace from openpets:* to familiaros:* and state filenames from openpets-* to familiaros-* with legacy migration.
- Rename source files (pet-window, built-in-pet, default-pet-controller, etc.) to familiar equivalents.
- Update locales (en, es-419, ja, ko, pt-BR, zh-Hans, zh-Hant) and tray/pet context menu strings.
- Add Familiar naming feature: preference, settings input, tray menu display.
- Update assets and packaging config; all desktop tests pass.
2026-06-17 01:42:08 +00:00
..
src feat(rebrand): rename OpenPets to FamiliarOS and pets to familiars 2026-06-17 01:42:08 +00:00
package.json feat(rebrand): rename OpenPets to FamiliarOS and pets to familiars 2026-06-17 01:42:08 +00:00
README.md feat(rebrand): rename OpenPets to FamiliarOS and pets to familiars 2026-06-17 01:42:08 +00:00
tsconfig.json feat(sdk): add @open-pets/plugin-sdk types package, CLI scaffolder, and drift guard 2026-06-09 20:24:02 +02:00

@familiaros/plugin-sdk

Type definitions for building FamiliarOS desktop familiar plugins.

This package is types only. There is no runtime to import — the FamiliarOS desktop app injects the FamiliarOSPlugin global into your plugin's sandbox and passes your start(ctx) handler the SDK. Installing this package gives your editor autocomplete and type-checking; it never ships in your plugin.

Install

npm i -D @familiaros/plugin-sdk

Use

A plugin is a single browser-style JavaScript file. Reference the types for IntelliSense:

/// <reference types="@familiaros/plugin-sdk" />

FamiliarOSPlugin.register({
  async start(ctx) {
    await ctx.familiar.speak("Hello!")
    await ctx.familiar.react("waving")
  },
})

Or, in TypeScript, import the contract directly:

import type { FamiliarOSContext, FamiliarOSPluginDefinition } from "@familiaros/plugin-sdk"

Docs