# Whisper Context

> Official Whisper Context skill for OpenClaw. Cuts context tokens via delta compression + caching, and adds long-term memory across sessions.

- Skill: `modbender/whisper-context` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add modbender/whisper-context`
- Raw SKILL.md: https://api.skillmd.com/api/skills/modbender/whisper-context/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: modbender (https://skillmd.com/u/modbender)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/modbender/whisper-context

---


# Whisper Context (OpenClaw Skill)

Reduce OpenClaw API spend by shrinking the context you send to the model (delta compression + caching), while keeping long-term memory across sessions.

This skill provides a minimal Node-based helper (`whisper-context.mjs`) that OpenClaw agents can run to:

- Retrieve packed context for a user/session (`query_context`) with `compress: true` and `compression_strategy: "delta"`
- Persist the latest turn into long-term memory (`ingest_session`)
- Write/search memories (`memory_write`, `memory_search`)
- Run Oracle search/research (`oracle_search`)
- Fetch cost analytics (`get_cost_summary`)
- Inspect/warm cache (`cache_stats`, `cache_warm`)

## Install (ClawHub)

```bash
npx clawhub@latest install whisper-context
```

ClawHub installs the skill folder into your OpenClaw skills workspace (typically `~/.openclaw/workspace/skills/`).

## Setup

Set environment variables (where OpenClaw reads env for your agent):

```bash
WHISPER_CONTEXT_API_URL=https://context.usewhisper.dev
WHISPER_CONTEXT_API_KEY=YOUR_KEY
WHISPER_CONTEXT_PROJECT=openclaw-cost-optimization
```

Notes:

- `WHISPER_CONTEXT_API_URL` is optional (defaults to `https://context.usewhisper.dev`).
- `WHISPER_CONTEXT_PROJECT` can be a project slug/name.
- If the project does not exist yet, the helper will auto-create it in your org on first use.
- For best memory behavior, use stable `user_id` and `session_id` values (don’t hardcode them globally; derive them per user/session in your agent).

## Usage

All commands print JSON to stdout.

### Global flags

- `--project <slugOrName>`: override `WHISPER_CONTEXT_PROJECT`
- `--api_url <url>`: override `WHISPER_CONTEXT_API_URL`
- `--timeout_ms <n>`: request timeout (default: 30000)

### Tips for real agents (to actually slash spend)

- Always call `query_context` first and inject the returned `context` instead of re-sending your entire chat history.
- Keep `compress: true`, `compression_strategy: "delta"`, and `use_cache: true` (the defaults in this helper) to maximize token savings.
- Use stable `user_id` and `session_id` so memory works across sessions and cache keys stay effective.

### Query packed context

```bash
node whisper-context.mjs query_context \
  --query "What did we decide about the retriever cache?" \
  --user_id "user-123" \
  --session_id "session-123"
```

### Ingest a completed turn

```bash
node whisper-context.mjs ingest_session \
  --user_id "user-123" \
  --session_id "session-123" \
  --user "..." \
  --assistant "..."
```

If your message text is large or hard to shell-escape, pass JSON via stdin:

```bash
echo '{ "user": "....", "assistant": "...." }' | node whisper-context.mjs ingest_session --session_id "session-123" --turn_json -
```

## Security / Privacy Notes

- `ingest_session` sends both user and assistant text to the Context API (so it can build memory and improve retrieval).
- The helper only reads local files if you explicitly pass `@path` (or stdin via `-`).
- Treat your `WHISPER_CONTEXT_API_KEY` like a secret; don’t commit it to git.

### Write a memory

```bash
node whisper-context.mjs memory_write \
  --memory_type "preference" \
  --content "User prefers concise answers." \
  --user_id "user-123"
```

### Search memories

```bash
node whisper-context.mjs memory_search \
  --query "preferences" \
  --user_id "user-123"
```

### Oracle search / research

```bash
node whisper-context.mjs oracle_search --query "How does delta compression work?" --mode search
node whisper-context.mjs oracle_search --query "Design a plan..." --mode research --max_steps 3
```

### Cost summary

```bash
node whisper-context.mjs get_cost_summary \
  --start_date "2026-01-01T00:00:00.000Z" \
  --end_date "2026-02-01T00:00:00.000Z"
```

### Cache stats (prove your savings)

```bash
node whisper-context.mjs cache_stats
```

### Cache warm (optional)

```bash
node whisper-context.mjs cache_warm --queries "retriever cache,l1 query cache,delta compression" --ttl_seconds 3600
```

## Agent Integration Pattern

1. Before calling the model: run `query_context` and prepend the returned `context` (if present) to your prompt.
2. After replying: run `ingest_session` with the user + assistant messages to persist memory.

## Troubleshooting

- `Missing WHISPER_CONTEXT_API_KEY`: export the env var where OpenClaw runs commands.
- `HTTP 401/403`: verify your API key and that it has access to the project/org.
- `HTTP 404 Project not found`: verify `WHISPER_CONTEXT_PROJECT` (slug/name) exists.

