harahara
聊天渠道渠道与网关

渠道与网关

从聊天 app 驱动 hara —— 十个平台,支持语音、文件、图片,以及每个聊天可恢复的会话。

运行一个网关

hara gateway 是一个可选开启的守护进程,让你能从聊天 app 驱动你 本地 的 hara。 每条进来的消息都会在该聊天自己可恢复的会话上启动一次无界面运行;回复会回到聊天里。 该守护进程是 主动向外连接 的(长轮询或 WebSocket),因此不需要任何公网 webhook —— 它在你 NAT 后面的笔记本上也能正常运行。

hara gateway --platform <name>

平台一览

平台传输图片备注
Telegram长轮询✅ 双向token 来自 @BotFather
WeChat(微信)iLink 长轮询✅ 双向扫码登录
DiscordWebSocket✅ 双向需要 Message Content Intent
Feishu / LarkWS 长连接✅ 双向点对点私聊(v1)
SlackSocket Mode✅ 双向App + Bot token
MattermostWebSocket + REST✅ 双向自托管或云
Matrix/sync 长轮询✅ 双向未加密房间(v1)
DingTalk(钉钉)Stream Mode仅文本回复窗口按单条消息计
WeCom(企业微信)AI-Bot WS✅ 双向主动外连;AES 媒体
Signalsignal-cli(JSON-RPC)✅ 双向需要本地 signal-cli 守护进程

通用配置

  • HARA_GATEWAY_ALLOWED —— 允许驱动该 bot 的用户 id,逗号分隔。留空 = 无人可用 (安全默认值;网关绝不会处于完全开放状态)。
  • --cwd <dir> —— 把它指向一个真实项目。默认是一个安全的草稿工作区 (~/.hara/workspace),这样 full-auto 的 bot 永远不会意外落到真实仓库上。
  • 每个 (聊天 × 目录) 都是一个稳定、可恢复的会话。
  • 会话卫生:聊天闲置超过 8 小时,下一条消息自动开新线程(一次性提示带 /resume <id>,旧线程仍在)。 用 HARA_GATEWAY_IDLE_HOURS 调整;0 关闭。

各平台凭据

平台环境变量
TelegramHARA_TELEGRAM_TOKEN
WeChathara gateway --platform weixin --login(扫码;扫码者会被自动允许)
DiscordHARA_DISCORD_TOKEN
Feishu / LarkHARA_FEISHU_APP_ID · HARA_FEISHU_APP_SECRET(+ HARA_FEISHU_DOMAIN=lark)
SlackHARA_SLACK_APP_TOKEN(xapp-…HARA_SLACK_BOT_TOKEN(xoxb-…)
MattermostHARA_MATTERMOST_URL · HARA_MATTERMOST_TOKEN
MatrixHARA_MATRIX_HOMESERVER · HARA_MATRIX_TOKEN · HARA_MATRIX_USER_ID
DingTalkHARA_DINGTALK_CLIENT_ID · HARA_DINGTALK_CLIENT_SECRET
WeCom(企业微信)HARA_WECOM_BOT_ID · HARA_WECOM_SECRET(在企业微信管理后台创建一个 AI Bot)
SignalHARA_SIGNAL_RPC_URL · HARA_SIGNAL_NUMBER(运行一个本地 signal-cli 守护进程)
# Telegram
HARA_TELEGRAM_TOKEN= HARA_GATEWAY_ALLOWED=<your id> hara gateway --platform telegram
 
# Slack(Socket Mode —— 主动外连,无需 Request URL)
HARA_SLACK_APP_TOKEN=xapp-… HARA_SLACK_BOT_TOKEN=xoxb-… HARA_GATEWAY_ALLOWED=U0123 \
  hara gateway --platform slack

聊天内命令

命令作用
/pwd · /cd <dir>显示 / 切换该聊天所操作的项目
/sessions · /new · /resume <id>列出 / 新建分叉 / 在当前目录的线程间跳转
/voice · /say <text>开关语音回复 · 朗读一条消息
/send <path>发送一个文件(图片内联,其他作为附件)

其余任何输入都是一个任务 —— hara 会在该聊天的会话上运行它并回复。

语音与媒体

  • 语音输入 —— 语音消息会被转写并作为文本交给 hara,并打上标记让它知道这来自语音。
  • 语音输出 —— 回复可以通过可插拔的 TTS 朗读(见下文)。
  • 图片与文件 —— 发一张照片,hara 就能看见它(视觉模型可内联,否则通过你的 visionModel 描述);让它发回一个文件,它会用 send_file 工具。在上面标记为双向的 每个平台上,这两者都能在普通对话中工作。

文本转语音

环境变量用于
HARA_TTS_PROVIDERsay(macOS,默认)· openai · cmd
HARA_TTS_VOICE语音名称(如 macOS 上普通话用 Tingting)
HARA_TTS_MODEL · HARA_TTS_BASE_URL · HARA_TTS_API_KEY一个 OpenAI 兼容的 /audio/speech 端点
HARA_TTS_CMD本地命令 —— 文本走 stdin,{out} → 输出路径

让它持续运行

hara gateway 在前台运行;用 launchd / systemd / pm2 来托管它,或者:

nohup hara gateway --platform <name> > ~/.hara/<name>-gw.log 2>&1 &
Was this helpful?
harahara
A product by Nanhara · Apache-2.0 · v0.139.0

© 2026 Nanhara Technologies