import { terminal } from "@interactions-hq/skyline/providers/terminal";
The terminal provider lets you develop and demo agents from stdin/stdout. No project credentials, no network, no managed line required.

Quick start

import { Skyline, terminal } from "@interactions-hq/skyline";

const app = await Skyline({
  providers: [terminal.config({ prompt: "you> " })],
});

for await (const [space, message] of app.messages) {
  if (message.content.type !== "text") continue;
  await space.send(`echo: ${message.content.text}`);
}
bun run examples/terminal-agent.ts

Configuration

OptionDefaultDescription
prompt"you> "Readline prompt prefix

Space address

The terminal space is always addressed as terminal:
const space = app.space("terminal");
app.ready contains "terminal" once the session starts.

Combine with cloud providers

const app = await Skyline({
  projectId: process.env.SKYLINE_PROJECT_ID,
  projectSecret: process.env.SKYLINE_PROJECT_SECRET,
  providers: [terminal.config(), imessage.config()],
});
Messages from every provider merge into app.messages. Check message.platform to branch.