@@ -92,7 +92,7 @@ sends the result back when the work is done.
## One lightweight bridge. Your agent does the work.
-
01Message your assistantUse iMessage, Telegram, or Slack from wherever you are.
+
01Message your assistantUse iMessage, Telegram, Slack, or Missive from wherever you are.
02Push starts the workIt restores the conversation and runs your chosen coding agent in the background.
03Get the resultPush saves the response and sends it back to the same chat.
@@ -128,8 +128,9 @@ finish without an operator.
---
- Set up private [iMessage](channels/imessage.md), [Telegram](telegram.md), or
- [Slack](slack.md) conversations with narrow sender allowlists.
+ Set up private [iMessage](channels/imessage.md), [Telegram](telegram.md),
+ [Slack](slack.md), or [Missive](missive.md) conversations with narrow
+ sender allowlists.
[:octicons-arrow-right-24: Configure channels](configuration.md#channels)
diff --git a/docs/missive.md b/docs/missive.md
new file mode 100644
index 0000000..7bf5462
--- /dev/null
+++ b/docs/missive.md
@@ -0,0 +1,69 @@
+# Missive
+
+Push can use comments in explicitly allowlisted Missive conversations as a
+private command channel. It polls Missive's REST API over outbound HTTPS and
+returns each assistant reply as a Missive post in the same conversation. It
+does not expose a webhook, send email, or create a draft.
+
+## Configure access
+
+Create a Missive API token for the account that will run Push, then put it in
+the service environment:
+
+```sh
+export MISSIVE_API_TOKEN="..."
+```
+
+Choose the exact conversation IDs Push may read and the exact Missive user IDs
+whose comments may invoke the assistant:
+
+```toml
+channel = "missive"
+agent = "codex"
+assistant_root = "~/Code/assistant"
+poll_interval = "3s"
+
+[missive]
+conversation_ids = ["00000000-0000-0000-0000-000000000000"]
+allow_user_ids = ["00000000-0000-0000-0000-000000000000"]
+```
+
+You may set `missive.api_token` in a private config instead, but the environment
+variable is safer for a service. Push rejects an inline Missive token when the
+config is inside the Git-versioned assistant repository.
+
+Missive limits continuous polling to one request per second. Push makes one
+request per configured conversation during a normal poll, so
+`poll_interval` must be at least one second for every configured conversation.
+For example, three conversations require `poll_interval = "3s"` or longer.
+
+## Message behavior
+
+- Only new comments are commands. Other email or chat activity is ignored.
+- Both the conversation ID and comment author ID must be allowlisted.
+- The first successful startup records current comments and does not replay
+ them into the assistant.
+- Stable Missive comment IDs are deduplicated in
+ `