Use definePlatform when you need an interface Skyline does not ship yet — internal tools, a web chat widget, or a new device surface.
import { Skyline, definePlatform } from "@interactions-hq/skyline";

const myChat = definePlatform({
  platform: "terminal",
  config() {
    return { platform: "terminal", mode: "local" };
  },
});

const app = await Skyline({
  providers: [myChat.config()],
});
Built-in providers live under @interactions-hq/skyline/providers and follow the same .config() contract. Custom providers must connect inbound events into the merged app.messages stream and implement space.send() for outbound content their interface supports. For production custom interfaces, open an issue at github.com/interactions-hq/skyline — we can promote stable providers into the main package.