Summary
The BlueBubbles plugin does not support a systemPrompt configuration option at any level (channel root, per-group, or per-DM). This means there is no way to inject channel-specific persona or behavioral instructions for BlueBubbles/iMessage conversations through config alone.
Current behavior
- Discord and Feishu plugins wire
GroupSystemPrompt into sessionCtx, allowing per-group system prompt injection via config.
- BlueBubbles plugin does not set
GroupSystemPrompt on sessionCtx at all.
- There is no DM-level
systemPrompt concept in any channel plugin.
- Setting
channels.bluebubbles.systemPrompt in config is a no-op — the BB plugin schema (bundled-channel-config-metadata.generated.ts) has no systemPrompt field.
Expected behavior
A way to configure channel-level system prompt additions for BlueBubbles (and ideally all channel plugins), so that conversations on a specific channel can have behavioral directives injected without relying on agent-side workarounds.
Possible approaches:
- Channel-root
systemPrompt — a standard field recognized by all channel plugins, injected into sessionCtx for every conversation on that channel (groups and DMs).
- Generic channel middleware — a platform-level hook that injects
systemPrompt from channel config before the prompt is assembled, so individual plugins don't need to implement it.
- Per-channel
extraSystemPromptParts — similar to how GroupSystemPrompt feeds into extraSystemPromptParts in get-reply-run.ts, but sourced from channel config rather than per-group settings.
Option 2 would be the most maintainable — it avoids requiring every plugin to independently implement the same pattern.
References
get-reply-run.ts:295-303 — where GroupSystemPrompt is resolved and injected
bundled-channel-config-metadata.generated.ts — BB plugin schema (no systemPrompt field)
- Discord plugin (
extensions/discord/src/monitor/inbound-context.ts) — example of a plugin that does wire GroupSystemPrompt
Summary
The BlueBubbles plugin does not support a
systemPromptconfiguration option at any level (channel root, per-group, or per-DM). This means there is no way to inject channel-specific persona or behavioral instructions for BlueBubbles/iMessage conversations through config alone.Current behavior
GroupSystemPromptintosessionCtx, allowing per-group system prompt injection via config.GroupSystemPromptonsessionCtxat all.systemPromptconcept in any channel plugin.channels.bluebubbles.systemPromptin config is a no-op — the BB plugin schema (bundled-channel-config-metadata.generated.ts) has nosystemPromptfield.Expected behavior
A way to configure channel-level system prompt additions for BlueBubbles (and ideally all channel plugins), so that conversations on a specific channel can have behavioral directives injected without relying on agent-side workarounds.
Possible approaches:
systemPrompt— a standard field recognized by all channel plugins, injected intosessionCtxfor every conversation on that channel (groups and DMs).systemPromptfrom channel config before the prompt is assembled, so individual plugins don't need to implement it.extraSystemPromptParts— similar to howGroupSystemPromptfeeds intoextraSystemPromptPartsinget-reply-run.ts, but sourced from channel config rather than per-group settings.Option 2 would be the most maintainable — it avoids requiring every plugin to independently implement the same pattern.
References
get-reply-run.ts:295-303— whereGroupSystemPromptis resolved and injectedbundled-channel-config-metadata.generated.ts— BB plugin schema (no systemPrompt field)extensions/discord/src/monitor/inbound-context.ts) — example of a plugin that does wire GroupSystemPrompt