Session memory
Markdown-based session notes stored under~/.config/arka/agent-memory/:
MEMORY.md— long-term notes (pruned automatically)daily/YYYY-MM-DD.md— per-day session notes
context_for() when SESSION_MEMORY=1.
Environment variables
Notes are sanitized before storage — injection patterns and unsafe content are blocked.
Heartbeat
Tracks last agent activity, security flags, routine count, and memory stats.~/.cache/fish-agent/heartbeat.json. Each ping() appends to a bounded history ring (default 20 events; override with HEARTBEAT_HISTORY). Subsystems like session memory and routines call ping() automatically on activity.
Skill manifest gates
Third-party plugins can declare OpenClaw-style gates inskill.json. Arka applies them during discovery, routing, and execution.
Top-level fields
metadata.openclaw (or metadata.arka / metadata.hermes)
The same fields can live under metadata.openclaw, metadata.arka, or metadata.hermes for compatibility with OpenClaw- and Hermes-style manifests:
requires, os, and permissions fields at parse time.
Gate behavior
Gated skills are:
- Marked in
arka skills listwith[gated: reason] - Skipped by
match_command()so routing does not match unavailable plugins - Blocked at
run_skill()as a safety net
Environment variables
See also: Installing plugins and the example at
src/arka/skills/examples/demo_echo/skill.json.
Related security
Routines and webhooks apply separate hardening layers:ROUTINES_SECURITY=1— symbolic action checks on scheduled tasks- Webhook inbound verification blocks injection payloads
SECURITY, SECURITY_LLM, and SECURITY_ACTIONS flags documented in Security.