spectrum
Build messaging agents and apps with Spectrum — Photon's unified messaging SDK. Write your handler logic once and ship it across iMessage, WhatsApp Business, the terminal, or a custom platform. Spectrum is multi-platform by design and is becoming multi-language; the current SDK is `spectrum-ts` (TypeScript), with additional language SDKs planned. Use this skill for any Spectrum question — quickstart, multi-platform setup, receiving messages, content builders, spaces and users, reactions and replies, platform narrowing, the built-in providers (iMessage cloud/local/dedicated with message effects, Terminal TUI test harness, WhatsApp Business 1:1), custom event streams, graceful shutdown, building your own provider with `definePlatform`, and the production architecture patterns Photon uses internally to ship agents that live natively inside IM apps (five-stage inbound pipeline with debounce → batch flush → mark as read → generate → send, in-flight cancellation with abort signals, drain-in-handler, carry-forward, idempotent retries via stable client GUIDs and a startIndex resume cursor, per-resource memory scope `resourceId` vs `threadId`, durable job-failure audit log). This is the entry point for the skill; consult the topic files in this directory for full reference. Keywords: spectrum, spectrum-ts, photon, unified messaging, multi-platform, multi-language, im agent, messaging agent, imessage, whatsapp, whatsapp business, terminal, tuichat, definePlatform, custom platform, platform provider, platform narrowing, app.messages, Spectrum(), space, send, reply, react, tapback, typing indicator, responding, startTyping, stopTyping, content builder, text, attachment, voice, contact, richlink, poll, group, custom content, message effects, bubble effect, screen effect, line model, dedicated line, shared pool, custom events, app.stop, lifecycle, SIGINT, graceful shutdown, message queue, debounce, batch, in-flight, cancellation, abort controller, carry forward, idempotent retry, client guid, dedup, deduplication, startIndex, resume cursor, working memory, resourceId, threadId, per-resource memory, job failure, audit log, race condition, worker crash, retry, pg-boss, queue worker, conversational agent, chat agent, native messaging, agent architecture, production agent, spectrum patterns, best practices.
- License 许可
- MIT
- 最近更新
- 2026-07-18
- Stars
- ★ 0
- Forks
- 1
01 前言 Front Matter
- name
- spectrum
- license
- MIT
- metadata
- { "author": "photon-hq", "version": "2.0.0" }
- description
- Build messaging agents and apps with Spectrum — Photon's unified messaging SDK. Write your handler logic once and ship it across iMessage, WhatsApp Business, the terminal, or a custom platform. Spectrum is multi-platform by design and is becoming multi-language; the current SDK is `spectrum-ts` (TypeScript), with additional language SDKs planned. Use this skill for any Spectrum question — quickstart, multi-platform setup, receiving messages, content builders, spaces and users, reactions and replies, platform narrowing, the built-in providers (iMessage cloud/local/dedicated with message effects, Terminal TUI test harness, WhatsApp Business 1:1), custom event streams, graceful shutdown, building your own provider with `definePlatform`, and the production architecture patterns Photon uses internally to ship agents that live natively inside IM apps (five-stage inbound pipeline with debounce → batch flush → mark as read → generate → send, in-flight cancellation with abort signals, drain-in-handler, carry-forward, idempotent retries via stable client GUIDs and a startIndex resume cursor, per-resource memory scope `resourceId` vs `threadId`, durable job-failure audit log). This is the entry point for the skill; consult the topic files in this directory for full reference. Keywords: spectrum, spectrum-ts, photon, unified messaging, multi-platform, multi-language, im agent, messaging agent, imessage, whatsapp, whatsapp business, terminal, tuichat, definePlatform, custom platform, platform provider, platform narrowing, app.messages, Spectrum(), space, send, reply, react, tapback, typing indicator, responding, startTyping, stopTyping, content builder, text, attachment, voice, contact, richlink, poll, group, custom content, message effects, bubble effect, screen effect, line model, dedicated line, shared pool, custom events, app.stop, lifecycle, SIGINT, graceful shutdown, message queue, debounce, batch, in-flight, cancellation, abort controller, carry forward, idempotent retry, client guid, dedup, deduplication, startIndex, resume cursor, working memory, resourceId, threadId, per-resource memory, job failure, audit log, race condition, worker crash, retry, pg-boss, queue worker, conversational agent, chat agent, native messaging, agent architecture, production agent, spectrum patterns, best practices.
02 资源文件 1
- 参考文档metadata.json397 B
03 SKILL.md 正文
Spectrum
Spectrum is Photon's unified messaging SDK. Write your handler logic once against a single app.messages stream and deliver it across every platform — iMessage, WhatsApp Business, your terminal, or a custom platform you build yourself.
The current SDK is spectrum-ts (TypeScript). Spectrum is multi-platform by design and multi-language is on the roadmap — additional language SDKs (e.g. Python, Go, Swift) will join the family. The architecture, primitives, and patterns described in this skill are intended to be language-neutral; code samples in the topic files are currently TypeScript and are flagged where the API surface is language-specific (imports, syntax, runtime types).
How this skill is organized
Each topic lives in its own file in this directory. Read the file relevant to the user's question.
| File | When to consult |
|---|---|
getting-started.md |
Installation, the Spectrum() app instance, multi-platform setup, the four core primitives. |
messages.md |
Receiving messages, the Message shape, narrowing on content.type, filtering own messages. |
content.md |
Content builders for outgoing messages: text, attachment, voice, contact, richlink, poll, group, custom. |
spaces-and-users.md |
The Space interface, typing indicators, responding, creating DMs and groups. |
reactions-and-replies.md |
message.react(...), threaded message.reply(...), when to use which. |
platform-narrowing.md |
Recovering platform-specific types from generic Spectrum primitives. |
providers/imessage.md |
iMessage provider — cloud, local, dedicated modes, line model, per-phone routing, message effects, tapbacks. |
providers/terminal.md |
Terminal TUI provider — chat sidebar, reactions, replies, attachments, slash commands. |
providers/whatsapp-business.md |
WhatsApp Business Cloud API. 1:1 only. |
custom-events-and-lifecycle.md |
Per-provider event streams (app.typing, etc.), app.stop(), signal handling. |
custom-platforms.md |
Authoring your own provider with definePlatform — full field reference. |
best-practices.md |
Production architecture patterns Photon uses internally — debounce pipeline, in-flight cancellation, carry-forward, idempotent retries, per-resource memory, job-failure audit log. |
See also
04 同仓库更多 Skills
arxiv-search
Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.
arxiv-search
Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.
working-with-legacy-code
Safely change and test untested codebases using Feathers' "Working Effectively with Legacy Code". Use when the user mentions "legacy code", "no tests", "untested codebase", "how do I test this", "seams", "characterization tests", "golden master", "sprout method", "afraid to change this code", "monster method", "dependency breaking", or "inherited a messy codebase". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout/wrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.
working-with-legacy-code
Safely change and test untested codebases using Feathers' "Working Effectively with Legacy Code". Use when the user mentions "legacy code", "no tests", "untested codebase", "how do I test this", "seams", "characterization tests", "golden master", "sprout method", "afraid to change this code", "monster method", "dependency breaking", or "inherited a messy codebase". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout/wrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.
web-typography
Select, pair, and implement typefaces for web projects. Use when the user mentions "font pairing", "which typeface", "line height", "responsive typography", "web font loading", "type hierarchy", "variable fonts", "FOUT/FOIT", "typographic scale", or "the text is hard to read". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.
web-typography
Select, pair, and implement typefaces for web projects. Use when the user mentions "font pairing", "which typeface", "line height", "responsive typography", "web font loading", "type hierarchy", "variable fonts", "FOUT/FOIT", "typographic scale", or "the text is hard to read". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.