Skip to content

Releases: Ars-Ludus/semcom-install

v0.5.0 — Claude Code integration

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 03 May 09:34

What's new

Claude Code self-instrumentation — semcom now injects its own memories and ingests its own responses when running as a Claude Code agent.

Two hook scripts installed to ~/.local/share/semcom/hooks/claude-code/:

  • user-prompt-submit.sh — fires on UserPromptSubmit, retrieves relevant memories, injects <semcom_memory> block as additionalContext before the LLM call
  • stop.sh — fires on Stop, extracts the last assistant response from the session JSONL, ingests it into memory

Adapter layer — semcom_adapter/claudecode harness handles Claude Code's hook event format. New /hooks/claude route on the semcom server.

Setup

After installing, add to ~/.claude/settings.json:

{
  "hooks": {
    "UserPromptSubmit": [{"hooks": [{"type": "command", "command": "~/.local/share/semcom/hooks/claude-code/user-prompt-submit.sh"}]}],
    "Stop":             [{"hooks": [{"type": "command", "command": "~/.local/share/semcom/hooks/claude-code/stop.sh"}]}]
  }
}

The installer prints this snippet automatically if ~/.claude is detected.

Upgrading from v0.4.x

mkdir -p ~/.local/share/semcom/install && cd ~/.local/share/semcom/install
curl -fsSL https://github.com/Ars-Ludus/semcom-install/releases/latest/download/semcom-release.tar.gz | tar xz
bash install.sh

v0.4.2 — default path cleanup

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 01 May 23:15

What changed

  • Default install path changed from ~/.openclaw/semcom to ~/.local/share/semcom. Override with SEMCOM_DIR=... bash install.sh if needed.
  • semcom-memory internal hook removed — it was registering on every message but the body mutation was silently discarded. The Plugin SDK plugin (semcom-memory) handles retrieval correctly via before_prompt_build.
  • semcom-start hook now correctly finds the binary and writes logs under the new default path.

Upgrading

mkdir -p ~/.local/share/semcom/install && cd ~/.local/share/semcom/install
curl -fsSL https://github.com/Ars-Ludus/semcom-install/releases/latest/download/semcom-release.tar.gz | tar xz
bash install.sh

If you have an existing install at ~/.openclaw/semcom, pass the override:

SEMCOM_DIR=~/.openclaw/semcom bash install.sh

v0.4.1 — Revert to ~/.openclaw/semcom default

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 01 May 21:07

Reverts the v0.4.0 path change. ~/.local/share/semcom requires root on constrained deployments (e.g. HeyRon containers). ~/.openclaw/semcom is the correct default — it's within the agent's own writable directory. All bug fixes from v0.3.2 (mkdirSync, SEMCOM_DIR-aware log path, startup log entry) are retained.

v0.4.0 — Platform-agnostic install

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 01 May 17:00

What's new

  • Default install path is now ~/.local/share/semcom (XDG standard). No longer tied to openClaw's directory.
  • openClaw is now one integration among many — auto-detected at install time, not assumed. Other platforms (Claude Code, Hermes, etc.) documented as plain HTTP consumers; dedicated hook integrations planned for future releases.
  • Fixed log path bug in semcom-start hook — log file now correctly follows SEMCOM_DIR instead of hardcoding ~/.openclaw/semcom/.
  • SEMCOM_DIR override retained — constrained environments (e.g. SEMCOM_DIR=~/.openclaw/semcom bash install.sh) still work.

Upgrade from v0.3.x

# Stop old server
~/.openclaw/semcom/stop.sh 2>/dev/null || true

# Install new version
mkdir -p ~/.local/share/semcom/install && cd ~/.local/share/semcom/install
curl -fsSL https://github.com/Ars-Ludus/semcom-install/releases/latest/download/semcom-release.tar.gz | tar xz
bash install.sh

# Migrate databases if you want to keep history
cp ~/.openclaw/semcom/memory.db ~/.local/share/semcom/memory.db
cp ~/.openclaw/semcom/personal.db ~/.local/share/semcom/personal.db
cp ~/.openclaw/semcom/.env ~/.local/share/semcom/.env

# Restart openClaw gateway to reload plugin
openclaw restart

v0.3.2 — Plugin hardening for container environments

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 30 Apr 17:07
  • Log directory is now created automatically — mkdirSync({ recursive: true }) runs before every log write. Previously, if ~/.openclaw/semcom/ didn't exist yet, all log writes silently failed and the hook appeared to not fire.
  • SEMCOM_DIR env var respected for log path — log file now resolves via SEMCOM_DIR (same as the rest of the semcom setup) rather than hardcoding homedir()/.openclaw/semcom/. Prevents path mismatches in container environments where $HOME may differ.
  • Startup log entry — register() now logs plugin registered immediately, so you can confirm the plugin loaded and the log path is correct before sending any messages.

v0.3.1 — All paths within ~/.openclaw/semcom

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 30 Apr 15:12

Hardening for restricted environments (e.g. containers where only ~/.openclaw/ is writable).

  • Log file moved from ~/.openclaw/logs/semcom-hooks.log to ~/.openclaw/semcom/semcom-hooks.log — no longer depends on a logs/ subdirectory existing
  • Install staging moved from /tmp/semcom-install to ~/.openclaw/semcom/install — no /tmp access required
  • All installation artifacts now live exclusively within ~/.openclaw/semcom/ or ~/.openclaw/hooks/semcom-start/ (both managed by openClaw)

v0.3.0 — Plugin SDK memory injection

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 30 Apr 13:16

What's new

  • Memory injection now works correctly. Switched from an internal message:preprocessed hook (fire-and-forget, context mutation never reached the agent) to a Plugin SDK before_prompt_build hook, which is awaited and returns prependContext directly into the prompt builder.
  • New install path: ~/.openclaw/semcom/ (was ~/.local/share/semcom/). Lives alongside other openClaw state, survives container restarts without root access.
  • API key persistence: ~/.openclaw/semcom/.env is sourced by start.sh and the semcom-start hook on every boot.
  • Plugin replaces the semcom-memory internal hook. The semcom-start hook remains for auto-start on gateway boot.

Upgrade from v0.2.x

# Stop old server
~/.local/share/semcom/stop.sh 2>/dev/null || true

# Install new version
mkdir -p /tmp/semcom-v3 && cd /tmp/semcom-v3
curl -fsSL https://github.com/Ars-Ludus/semcom-install/releases/latest/download/semcom-release.tar.gz | tar xz
bash install.sh

# Migrate databases (if you want to keep history)
cp ~/.local/share/semcom/memory.db ~/.openclaw/semcom/memory.db
cp ~/.local/share/semcom/personal.db ~/.openclaw/semcom/personal.db

# Add API key
echo 'GOOGLE_API_KEY=your_key_here' >> ~/.openclaw/semcom/.env

# Activate plugin
openclaw restart

v0.2.0

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 29 Apr 22:02
  • Default install dir changed to ~/.openclaw/semcom (works on containers without ~/.local)
  • Binary now resolves index.bin/memory.db relative to its own location (no need to cd or set env vars)
  • Default Gemini model updated to gemini-3.1-flash-lite-preview
  • API key persisted via ~/.openclaw/semcom/.env, sourced by start.sh and semcom-start hook on every boot

v0.1.0

Choose a tag to compare

@Ars-Ludus Ars-Ludus released this 29 Apr 21:24

Initial release. Static linux/amd64 binary + openClaw hooks.