Skip to content

photon-hq/spectrum-ts

Repository files navigation

Spectrum

Bring agents to any interface.

npm version npm downloads license TypeScript github stars

Spectrum is a unified messaging SDK for TypeScript. Write your agent logic once and deliver it across every messaging platform — iMessage, WhatsApp, terminal, or your own — through one fully type-safe interface.

Getting Started

The fastest way to ship is with Spectrum Cloud — hosted infrastructure for platforms like iMessage, with credentials ready in minutes.

  1. Sign up at app.photon.codes to get your project ID and secret.

  2. Install the SDK:

    bun add spectrum-ts
  3. Start your app:

    import { Spectrum } from "spectrum-ts";
    import { imessage } from "spectrum-ts/providers/imessage";
    
    const app = await Spectrum({
      projectId: process.env.PROJECT_ID,
      projectSecret: process.env.PROJECT_SECRET,
      providers: [imessage.config()],
    });
    
    for await (const [space, message] of app.messages) {
      await space.responding(async () => {
        await message.reply("Hello from Spectrum.");
      });
    }

Spectrum also runs fully standalone — you can connect to a local iMessage database, bring your own gRPC endpoints, or build your own platform provider. See the docs for self-hosted setups.

Documentation

Visit docs.photon.codes to view the full documentation.

Platforms

Platform Package
iMessage spectrum-ts/providers/imessage
WhatsApp spectrum-ts/providers/whatsapp
Terminal spectrum-ts/providers/terminal
Custom definePlatform from spectrum-ts

Issues

Found a bug or have a feature request? Please open an issue on GitHub. Before filing, search existing issues to avoid duplicates.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

MIT © Photon

About

Bring agents to any interfaces

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors