Channels
Helloagent Openclaw
OpenClaw channel plugin for HelloAgent โ relay-backed messaging through OpenClaw's plugin API
Install
npm install @helloagentai/openclaw
README
# @helloagentai/openclaw
OpenClaw channel plugin for HelloAgent โ relay-backed messaging through OpenClaw's plugin API. Built on top of [`@helloagentai/sdk`](https://www.npmjs.com/package/@helloagentai/sdk).
```bash
npm install @helloagentai/openclaw
```
## Features
- **`security.dm`** policy adapter (allowlist / allow-all / deny-all)
- **`pairing`** adapter for pairing-code DM approval
- **`status`** snapshot + relay probe
- **Streaming inbound** โ `deliver` callback writes chunks live instead of
collecting and returning a single string at the end
- **Inbound dedup** with TTL + LRU
- **`auth.login` writes cfg directly** โ after a successful pair, the plugin
writes `channels.helloagent.enabled=true` to `openclaw.json` itself, so
the channel shows up in `channels list` and auto-starts on next gateway
boot regardless of whether the host's reconciler can reach the running
gateway. (See [src/core/cfg-store.ts](src/core/cfg-store.ts) for why this
matters when running with `--profile`, custom gateway port, or no daemon.)
- Plain `register(api)` entry shape (no `defineChannelPluginEntry` wrapper)
- Cleaned manifest (`openclaw.plugin.json` follows the Lark minimal shape)
## Layout
```
.
โโโ openclaw.plugin.json minimal manifest
โโโ package.json npm packaging + openclaw.channel block
โโโ index.ts plain register(api) plugin entry
โโโ src/
โโโ channel/
โ โโโ plugin.ts ChannelPlugin<HelloAgentAccount> literal
โ โโโ monitor.ts per-account WS lifecycle (replaces session-manager)
โ โโโ event-handlers.ts IncomingMessage โ dispatch
โ โโโ config-adapter.ts set/apply/delete account config helpers
โ โโโ probe.ts relay reachability probe
โ โโโ types.ts MonitorContext, MonitorOpts
โโโ core/
โ โโโ accounts.ts cfg-aware account list/resolve + credsToAccount
โ โโโ account-cache.ts sync faรงade over disk creds (copied)
โ โโโ auth-store.ts creds.json I/O (copied)
โ โโโ cfg-store.ts atomic openclaw.json read/write
โ โโโ ha-client.ts per-account managed Agent
โ โโโ ha-logger.ts namespaced logger factory
โ โโโ types.ts HelloAgentAccount, ResolvedHelloAgentAccount
โโโ messaging/
โ โโโ inbound/
โ โ โโโ dedup.ts TTL + LRU dedup
โ โ โโโ dispatch.ts streaming dispatchInboundDirectDmWithRuntime
โ โโโ outbound/
โ โโโ outbound.ts ChannelOutboundAdapter
โ โโโ send.ts low-level send via ha-client
โโโ auth/
โ โโโ login.ts OAuth + PKCE pairing (copied)
โ โโโ login-oauth.ts code exchange + link (copied)
โ โโโ login-device.ts device-code flow (copied)
โ โโโ import-token.ts manual ha_* import (copied)
โ โโโ presence.ts hasAnyHelloAgentAuth probe (copied)
โโโ commands/
โโโ auth-login.ts auth.login adapter (channels login)
โโโ auth-logout.ts gateway.logoutAccount adapter
```
## What this MVP does NOT include (deferred)
- `actions: ChannelMessageActionAdapter` โ only `outbound.sendText` for now.
- Media / payloads / cards. `outbound.sendMedia` and `sendPayload` are stubs
that throw "not implemented".
- `directory` adapter (peer/group enumeration).
- `setup` wizard adapter (no `openclaw setup` integration; pairing is via
`openclaw channels login --channel helloagent`).
- HelloAgent-specific tools (`helloagent_send`, search-handle, etc.).
- Skills directory.
- CLI diagnostics (`helloagent doctor`, `helloagent diagnose`).
- Reactions, typing indicator, edit/delete.
These are the next wave once the MVP compiles and pairs cleanly.
## Local development
```sh
npm install
npm run typecheck
npm run build
npm run test:smoke
```
## License
MIT
channels
Comments
Sign in to leave a comment