Phone notifications as a channel for Claude Code

Send messages to your Android phone and get replies back through notification buttons. No SMS needed.

How it works

termux-channel implements the channel capability contract. Any plugin that needs to communicate with you can use it as the transport layer.

1

Agent sends a message

A plugin calls send_message with expects_reply=True. The provider generates a short correlation ID and delivers the message as a phone notification with a Reply button.

2

You tap Reply

Android Direct Reply lets you type your response right in the notification shade. The reply is curled back to the desktop over Tailscale.

3

Agent gets the response

The agent calls get_reply which blocks until your reply arrives or times out. Correlation IDs handle multiplexing when multiple agents ask questions.

Features

Correlation IDs

Each message gets a short hex ID prepended. Multiple agents can have outstanding questions on the same phone. Replies are matched by ID.

Blocking replies

get_reply blocks until the response arrives or times out. No polling loops, no wasted tool calls. One call, one result.

Capability provider

Implements the channel contract. Works with approval-channel for human-in-the-loop workflows, or any plugin that needs to reach a person.

Architecture

Desktop Phone (Termux)

 

termux-channel MCP

send_message() ──HTTP POST──> phone-channel (8788)

> termux-notification

with Reply button

 

reply server (8790)

<──curl──────────────────── button action

writes to pending store curls $REPLY back

 

get_reply()

reads pending store > returns reply

Install

Requires Tailscale on both devices and phone-channel running in Termux on your Android phone.

1
Add the marketplace
Run in your terminal.
claude plugin marketplace add softwaresoftware-dev/softwaresoftware-plugins
2
Install the dependency resolver
Run in your terminal.
claude plugin install softwaresoftware@softwaresoftware-plugins
3
Launch Claude Code
Start a new session so the resolver is available.
claude
4
Install termux-channel + dependencies
Run inside Claude Code. Run /reload-plugins when done.
/softwaresoftware:install termux-channel
5
Run setup
Run inside Claude Code after reloading plugins.
/termux-channel:setup