cloudplayplus
Channel plugin that bridges Claude Code to a running CloudPlayPlus Flutter app. Messages from remote CloudPlayPlus users are pushed into Cla
Open source Repository Open in the app JSON README (API)
About
Channel plugin that bridges Claude Code to a running CloudPlayPlus Flutter app. Messages from remote CloudPlayPlus users are pushed into Claude Code as channel events, and Claude's replies are delivered back through the app. Unlike Telegram/Discord/iMessage channels, the MCP server runs inside the long-running CloudPlayPlus host app (over loopback HTTP), not as a Claude Code subprocess — so the app's existing user authentication gates every inbound message before it reaches the session.
Details
- Kind
- Plugins
- Topic
- Communication
- Publisher
- cloudplayplus
- Origin
- marketplace
- Category
- ferramentas
- Last push
- 2026-04-17T13:48:19Z
- Repository state
- ativo
- License
- Apache-2.0
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
cloudplayplus/cloudplayplus-cc-plugin/cloudplayplus
README
# cloudplayplus
Channel plugin that bridges Claude Code to a long-running local Flutter app.
Messages typed in the app are pushed into Claude Code as channel events; the
assistant's replies go back through the `reply` tool and render in the app.
This repo ([CloudPlayPlus/cloudplayplus-cc-plugin](https://github.com/CloudPlayPlus/cloudplayplus-cc-plugin))
is just the plugin manifest — no runtime code. The MCP server lives in a
separate Dart package, [`cloudplayplus_agent`](https://github.com/CloudPlayPlus/cloudplayplus_agent),
which ships a ready-to-run Flutter example you can build on macOS / Windows /
Linux. The example binds `http://127.0.0.1:48989/mcp` and is exactly what
the plugin points at. Eventually the full [CloudPlayPlus](https://www.cloudplayplus.com/)
product will embed this package so remote CloudPlayPlus users can chat with
a Claude Code session on the host machine, but the Flutter example already
shows the whole flow end-to-end.
## Prerequisites
1. A Flutter app running the [`cloudplayplus_agent`](https://github.com/CloudPlayPlus/cloudplayplus_agent)
MCP HTTP server on `http://127.0.0.1:48989/mcp`. The
[`example/`](https://github.com/CloudPlayPlus/cloudplayplus_agent/tree/main/example)
directory in that repo has a minimal chat UI you can `flutter run` right
now; any host app that embeds `CloudplayAgent` works.
2. Claude Code 2.1 or later.
## Setup
Run `claude` to start a session, then:
```
/plugin marketplace add CloudPlayPlus/cloudplayplus-cc-plugin
/plugin install cloudplayplus@cloudplayplus
```
**Relaunch with the channel flag** — the plugin won't activate without it.
Exit your session and start a new one:
```sh
claude --channels plugin:cloudplayplus@cloudplayplus
```
Start the Flutter app. Type messages from any paired CloudPlayPlus client —
they arrive in Claude Code as channel events. Claude's replies show up back
in the CloudPlayPlus UI.
## Tools
| Tool | Purpose |
| --- | --- |
| `reply` | Send a reply back to the CloudPlayPlus UI. Takes `chat_id` + `text`; optionally `reply_to` (message ID) and `files`. |
| `react` | Attach an emoji reaction to an existing message. |
| `edit_message` | Edit a previously-sent message in place. |
| `fetch_messages` | Look back at recent messages in a chat. |
| `download_attachment` | Materialize attachments of a specific message as local files. |
## Skip permission prompts for channel tools
Because this plugin connects over a local HTTP MCP endpoint (not a Claude
Code-spawned stdio subprocess like `fakechat` / `discord`), Claude Code
treats the tools as ordinary MCP calls and asks for permission on first
use. Pre-approve all five channel tools once by adding this to
`~/.claude/settings.json` (user scope) or `.claude/settings.local.json` in
your project:
```json
{
"permissions": {
"allow": [
"mcp__plugin_cloudplayplus_cloudplayplus__*"
]
}
}
```
Rule name format is `mcp__plugin_<plugin>_<server>__<tool>`; the wildcard
covers `reply` / `react` / `edit_message` / `fetch_messages` /
`download_attachment`. You can also click **Yes, don't ask again** the
first time each prompt appears — Claude Code writes the same rules itself.
## Security
CloudPlayPlus authenticates remote users before forwarding their messages to
the MCP layer. The MCP server itself binds to `127.0.0.1` and declares
`experimental.claude/channel/permission`, meaning it can also relay tool-use
permission prompts back to the user. Your CloudPlayPlus transport is
responsible for gating those prompts to authorized users only.
## How it works
- `.claude-plugin/marketplace.json` — declares this repo as a Claude Code
marketplace containing the `cloudplayplus` plugin.
- `plugins/cloudplayplus/.claude-plugin/plugin.json` — plugin metadata.
- `plugins/cloudplayplus/.mcp.json` — points Claude Code at the Streamable
HTTP endpoint the Flutter app exposes. No stdio process is spawned.
## License
Apache-2.0