← Back to Plugins
Channels

Helloagent Openclaw

helloagentai By helloagentai 👁 38 views ▲ 0 votes

OpenClaw channel plugin for HelloAgent โ€” relay-backed messaging through OpenClaw's plugin API

Homepage GitHub

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

Loading comments...