Skip to content

Releases: dkdc-io/imessage

v0.2.2

18 Apr 02:48
2a5c7a9

Choose a tag to compare

Changed

  • replace the stale Claude block with the real channel-push capture from the blog
  • mirror the tested setup differences section in the repo README
  • document Claude's experimental push-mode flag: --dangerously-load-development-channels server:imessage
  • clarify in scripts/README that demo-claude-imessage.sh is lightweight verification, not the only inbound path

Verification

  • cargo test --workspace
  • cargo publish -p dkdc-io-imessage

v0.2.1 — fix: declare experimental.claude/channel capability

18 Apr 02:40
c789f29

Choose a tag to compare

Fixed

  • 0.2.0 shipped the auto-push watcher but Claude Code silently dropped every notifications/claude/channel event because the server never declared the matching experimental capability in its initialize response. End result: the watcher was working but the LLM never saw a thing.
  • 0.2.1 adds capabilities.experimental["claude/channel"] = {} to the initialize reply, matching Anthropic's TypeScript iMessage plugin and the netsky-io reference implementation. Inbound iMessages from allowlisted handles now surface as channel events within the first poll tick (~750 ms).

Regression guards

  • Unit test in crates/imessage-mcp/src/mcp.rs asserts the capability appears in the in-process handler's reply.
  • tests/stdio_smoke.rs asserts the same on the full stdio wire so the binary can't drift away from the unit path.

Upgrade

cargo install dkdc-io-imessage --force

Anyone on 0.2.0 should upgrade — watch mode is non-functional there against Claude Code.

v0.2.0 — automatic push mode

18 Apr 02:34
0abc48a

Choose a tag to compare

Highlights

Inbound iMessages now auto-inject into your LLM session. Install the MCP server, register it with Claude Code or the codex fork, and texts from allowlisted handles land in the session as channel events — no list_messages poll loop, no bridge, no tmux watcher.

What changed

  • New watch mode, ON by default. The MCP server tails ~/Library/Messages/chat.db in the background and emits a notifications/claude/channel JSON-RPC notification for every new allowlisted inbound iMessage. Claude Code and the codex fork both consume this method.
  • Codex filesystem channel support. If CODEX_CHANNEL_DIR is set, the same event is also written as a JSON envelope under <dir>/inbox/<name>.json in the fork's expected shape (hardlink-atomic, kind = "brief", spec filename).
  • --watch / --no-watch CLI flags. DKDC_IO_WATCH=0 disables. DKDC_IO_WATCH_INTERVAL_MS tunes the poll cadence (default 750 ms, min 100 ms).
  • End-to-end integration tests at crates/imessage-mcp/tests/watch_push.rs exercise both emission paths and the allowlist gate.
  • Repo renamed from dkdc-io/imessage-mcp to dkdc-io/imessage. Crate and binary names stay dkdc-io-imessage.

Full details: CHANGELOG.md.

Install

cargo install dkdc-io-imessage

Then grant Full Disk Access, populate ~/.config/dkdc-io/imessage/access.toml, and point your LLM CLI at dkdc-io-imessage --stdio. Full setup in the crate README.

Security

Allowlist is the only access surface. Non-allowlisted senders are never pushed. Groups and SMS are dropped for now — only service = 'iMessage' and chat.style = 45 (DM) rows flow through. Empty allowlist still fails closed.

v0.1.6

18 Apr 01:59
c372f8e

Choose a tag to compare

Changed

  • rename the repo and crate from imessage-plugin / dkdc-io-imessage to imessage-mcp / imessage-mcp
  • rename the binary to imessage-mcp and update docs, screenshots, scripts, and GitHub URLs
  • keep the README wording fixes: MCP server terminology, Codex fork note, and the staged prior-art arc
  • leave the old dkdc-io-imessage crate published on crates.io; publish the fresh imessage-mcp crate at 0.1.6

Verification

  • bash -n scripts/*.sh
  • cargo test --workspace
  • cargo publish --package imessage-mcp

v0.1.5

18 Apr 01:42
1470a39

Choose a tag to compare

Changes

  • add an opt-in Claude Code parity integration test under cargo test
  • add the captured Claude Code round-trip block to the repo README
  • release dkdc-io-imessage 0.1.5