Skip to main content
Arka provides channel sessions and sub-agent delegation — patterns inspired by Hermes Agent, not a separate product integration. They add per-channel conversation continuity, webhook session handoff, and isolated background sub-agents.

Features

Arka does not ship full gateway adapters (Telegram, Discord, etc.). Use webhook ingress and channel bridges, then attach channel sessions on top.

Message sessions

Per-channel conversation turns stored under ~/.config/arka/message-sessions/:
Sessions are keyed as channel:chat_id (e.g. webhook:slack, cli:default, telegram:987654321).

CLI continuity

When MESSAGE_SESSIONS=1 (default), arka ask and the chat engine automatically read and write the cli:default session (override with MESSAGE_SESSION_CHANNEL and MESSAGE_SESSION_CHAT_ID). Start a thread in the terminal, continue via webhook with the same channel and chat ID, or vice versa.

Webhook continuity

When WEBHOOK_ENABLED=1, inbound POST bodies can include:
Arka appends the user turn, injects prior session context into the agent prompt, stores the assistant reply, and returns chat_id in the response.

Silence tokens

Explicit silence tokens let group chats and automations store a turn without sending outbound text:
  • [SILENT]
  • SILENT
  • NO_REPLY
  • NO REPLY
When the agent’s final response is exactly one of these (case-insensitive), the webhook returns "silent": true and an empty output field. The turn is still stored in the session transcript. External MCP clients can check the same tokens with arka_sessions action silence_check (returns { "silent": true|false, "tokens": [...] }).

Environment variables

Legacy HERMES_SESSIONS* variables remain supported as aliases. Inbound turns are sanitized — injection patterns and unsafe content are blocked before storage.

Sub-agent delegation

Spawn isolated background agents for parallel workstreams:
Each sub-agent runs via the Python chat engine (with fish agent fallback). Task records live under ~/.cache/fish-agent/subagents/.

Security gates

Set SUBAGENT_SYNC=1 to run synchronously (used in tests).

Environment variables

Legacy HERMES_SUBAGENT* variables remain supported as aliases. Sub-agents can attach to a message session via --session-channel and --session-chat-id.

Background process status

Use arka background processes when you want one place to see what Arka currently has active:
The report includes active sub-agent tasks, enabled routines, webhook status, configured MCP servers, and live OS processes that look Arka-owned such as arka mcp serve. The legacy command arka background agent tasks still works as an alias. This command is read-only. It does not stop or restart agents, routines, or servers.

Skill manifest gates

Plugin gates use metadata.openclaw, metadata.arka, or metadata.hermes — all merged the same way. See OpenClaw-inspired gates for details.

Heartbeat integration

heartbeat status reports channel session and sub-agent counts:
  • Context layers — how memory, session notes, and channel turns fit together
  • Session memory — long-term markdown notes (MEMORY.md)
  • Webhooks — verified external ingress
  • Security — global SECURITY, SECURITY_LLM, and SECURITY_ACTIONS flags