HomeBrowseUpload
โ† Back to registry
โšก
// Skill profile

Tide Watch ๐ŸŒŠ

name: tide-watch

by chrisagiddings ยท published 2026-03-22

้‚ฎไปถๅค„็†ๆ—ฅๅކ็ฎก็†
Total installs
0
Stars
โ˜… 0
Last updated
2026-03
// Install command
$ claw add gh:chrisagiddings/chrisagiddings-tide-watch
View on GitHub
// Full documentation

---

name: tide-watch

description: Proactive session capacity monitoring and management for OpenClaw. Prevents context window lockups by warning at configurable thresholds (75%, 85%, 90%, 95%), automatically backing up sessions before resets, and managing session resumption prompts. Use when working on long-running projects, managing multiple conversation channels (Discord, Telegram, webchat), or preventing lost work from full context windows. Includes CLI tools for capacity checks, cross-session dashboards, archive management, and session resumption. Supports any model or provider.

author: Chris Giddings

homepage: https://github.com/chrisagiddings/openclaw-tide-watch

repository: https://github.com/chrisagiddings/openclaw-tide-watch

metadata: {"openclaw":{"emoji":"๐ŸŒŠ","version":"1.3.6","disable-model-invocation":false,"capabilities":["session-monitoring","capacity-warnings","session-backup","session-resumption","multi-agent-support","auto-detection","file-operations-local"],"requires":{"bins":[],"anyBins":["node"],"config":["~/.openclaw/agents/main/sessions/"],"env":{"optional":["OPENCLAW_SESSION_ID"],"notes":"OPENCLAW_SESSION_ID is optional for auto-detection in CLI mode (v1.3.4+). Not required for Directives-Only mode."}},"install":[{"id":"npm","kind":"node","package":".","command":"npm link","bins":["tide-watch"],"label":"Install tide-watch CLI (requires Node.js 14+, optional for Directives-Only mode)"}],"credentials":{"required":false,"types":[],"notes":"No external credentials required. Operates on local OpenClaw session files only."}}}

---

# Tide Watch ๐ŸŒŠ

Proactive session capacity monitoring for OpenClaw.

โš ๏ธ Security & Architecture Notice

**Tide Watch is a HYBRID SKILL with two operational modes:**

Mode 1: Directives-Only (Recommended for Most Users)

**Description:** AGENTS.md and HEARTBEAT.md directives only

**Code Execution:** **NONE** - Uses OpenClaw's built-in tools only (no CLI installation)

**File Access:** Reads OpenClaw session files via agent's built-in tools

**Installation:** Copy template directives to workspace config files

**Security:** Lowest risk - no code installation or execution required

**What it does:**

  • โœ… Monitors session capacity via `session_status` tool
  • โœ… Warns at thresholds (75%, 85%, 90%, 95%)
  • โœ… Auto-loads resumption prompts on session reset
  • โœ… All operations through OpenClaw's native tools
  • Mode 2: CLI Tools (Optional)

    **Description:** Node.js command-line tools for manual management

    **Code Execution:** **YES** - Executable JavaScript code

    **File Access:** Direct read/write to `~/.openclaw/agents/main/sessions/`

    **Installation:** `git clone` + `npm link` (requires Node.js)

    **Security:** Moderate risk - requires code inspection before install

    **What it does:**

  • CLI commands: `tide-watch status`, `tide-watch dashboard`, etc.
  • Manual capacity checks
  • Session archive management
  • Resumption prompt editing (โš ๏ธ see CVE-2026-001 below)
  • Mode Comparison

    | Feature | Directives-Only | CLI Tools |

    |---------|-----------------|-----------|

    | **Node.js required?** | โŒ No | โœ… Yes (14+) |

    | **Installation** | Copy templates | `npm link` |

    | **Code execution** | โŒ None | โœ… JavaScript |

    | **File access** | Via built-in tools | Direct filesystem |

    | **Security risk** | Lowest | Moderate |

    | **Use case** | Passive monitoring | Active management |

    **Choose Directives-Only if:** You only need capacity warnings and resumption prompts.

    **Choose CLI Tools if:** You need manual session management, archiving, or dashboard views.

    ๐Ÿšจ CRITICAL SECURITY NOTICE: CVE-2026-001

    **Vulnerability:** Shell injection in `editResumePrompt` function

    **Affected Version:** v1.0.0 ONLY

    **Current Version:** v1.0.1 (PATCHED)

    **Severity:** HIGH (CVSS 7.8)

    **Status:** โœ… FIXED

    **Summary:** v1.0.0 contained a shell injection vulnerability in the CLI's `resume-prompt edit` command. An attacker who could control the `--session` parameter could execute arbitrary commands. **This has been fixed in v1.0.1** by replacing `execSync` with `spawnSync`.

    **If you installed v1.0.0:** **Update immediately** to v1.0.1.

    **Full disclosure:** See [SECURITY-ADVISORY-CVE-2026-001.md](./SECURITY-ADVISORY-CVE-2026-001.md)

    Security Best Practices

    **For Directives-Only Mode (Safest):**

    1. โœ… Copy AGENTS.md.template and HEARTBEAT.md.template to workspace

    2. โœ… No code installation required

    3. โœ… No npm dependencies

    4. โœ… Lowest security surface

    **For CLI Tools Mode (If Needed):**

    1. โš ๏ธ **Verify version 1.0.1 or later** (`tide-watch --version`)

    2. โš ๏ธ **Inspect code before installing:**

    - Review `lib/capacity.js` and `lib/resumption.js`

    - Check `package.json` for install hooks (should have none)

    - Run `npm test` to verify behavior (113 tests)

    3. โš ๏ธ **Only use UUID session IDs** with `--session` flag

    4. โš ๏ธ **Avoid untrusted input** to CLI commands

    5. โš ๏ธ **Review backups location** (`~/.openclaw/agents/main/sessions/archive/`)

    **Operation Types:**

    **Read-Only Operations** (โœ… Safe, no modifications):

  • `tide-watch status` - Check current session count
  • `tide-watch check --session <id>` - View specific session capacity
  • `tide-watch check --current` - Auto-detect and check current session (v1.3.4+)
  • `tide-watch dashboard` - Visual capacity overview
  • `tide-watch dashboard --watch` - Live updating dashboard
  • `tide-watch dashboard --raw-size` - Show full precision token counts (v1.3.2+)
  • `tide-watch report` - List sessions above threshold
  • `tide-watch resume-prompt show --session <id>` - View resumption prompt
  • **Modifying Operations** (โš ๏ธ Moves/creates files):

  • `tide-watch archive --older-than <time>` - Moves sessions to archive/ (time-based)
  • `tide-watch archive --session <id>` - Archive specific session (v1.3.3+)
  • `tide-watch archive --session <id1> --session <id2>` - Archive multiple sessions (v1.3.3+)
  • `tide-watch resume-prompt edit --session <id>` - Opens editor (CVE patched in v1.0.1)
  • `tide-watch resume-prompt delete --session <id>` - Deletes resumption prompt file
  • **New Flags (v1.3.2+):**

  • `--raw-size` - Show full precision token counts (e.g., `18,713/128,000` instead of `18.7k/128k`)
  • `--current` - Auto-detect current session via `OPENCLAW_SESSION_ID` environment variable (v1.3.4+)
  • `--session` (enhanced) - Supports partial IDs, multiple sessions for archive, labels/channels (v1.3.3+)
  • **File System Access:**

  • Reads: `~/.openclaw/agents/main/sessions/*.jsonl` (session data)
  • Writes: `~/.openclaw/agents/main/sessions/resume-prompts/*.md` (resumption prompts)
  • Moves: `~/.openclaw/agents/main/sessions/archive/` (archived sessions)
  • **Network Activity:** **NONE** - All operations are local filesystem only.

    CLI Reference

    **Complete flag and option documentation:**

    **Display Options:**

  • `--raw-size` - Show full precision token counts with commas (v1.3.2+)
  • - Default: Human-readable (e.g., `18.7k/128k`, `20.6k/1M`)

    - With flag: Full precision (e.g., `18,713/128,000`, `20,631/1,000,000`)

    - Use case: When exact token counts needed

    - Example: `tide-watch dashboard --raw-size`

  • `--json` - Output as JSON instead of formatted table
  • - Example: `tide-watch check --session abc123 --json`

    - Useful for scripting and parsing

  • `--pretty` - Pretty-print JSON output (requires `--json`)
  • - Example: `tide-watch report --json --pretty`

    **Session Selection:**

  • `--session <key>` - Target specific session (enhanced in v1.3.3+)
  • - Full UUID: `--session 17290631-42fe-40c0-bd23-c5da511c6f7b`

    - Partial UUID: `--session 17290631-4` (v1.3.3+)

    - Label: `--session "#navi-code-yatta"` (v1.3.3+)

    - Channel: `--session discord` (v1.3.3+)

    - Channel + label: `--session "discord/#navi-code"` (v1.3.3+)

    - Multiple (archive only): `--session abc123 --session def456` (v1.3.3+)

  • `--current` - Auto-detect current session (v1.3.4+)
  • - Requires: `OPENCLAW_SESSION_ID` environment variable

    - Example: `tide-watch check --current`

    - Use case: Heartbeat monitoring (check THIS session)

    - Fallback: Graceful error with helpful message if env var not set

    **Filtering:**

  • `--all` - Show all sessions regardless of capacity
  • `--threshold <num>` - Filter sessions above percentage (default: 75)
  • `--active <hours>` - Only show sessions active within N hours
  • `--agent <id>` - Filter to specific agent (multi-agent setups)
  • `--exclude-agent <id>` - Exclude specific agent (can use multiple times)
  • **Archive Options:**

  • `--older-than <time>` - Archive sessions older than time
  • - Examples: `4d`, `2w`, `1mo`, `3months`

    - Mutually exclusive with `--session`

  • `--dry-run` - Preview archive without making changes
  • - Example: `tide-watch archive --older-than 7d --dry-run`

  • `--exclude-channel <name>` - Exclude channel from archiving
  • - Example: `tide-watch archive --older-than 30d --exclude-channel discord`

  • `--min-capacity <num>` - Only archive sessions below capacity threshold
  • - Example: `tide-watch archive --older-than 7d --min-capacity 50`

    **Live Monitoring:**

  • `--watch` - Live updating dashboard (refreshes every 10s)
  • - Example: `tide-watch dashboard --watch`

    - Press Ctrl+C to exit

    **Multi-Agent:**

  • `--all-agents` - Multi-agent discovery mode (default, auto-discovers agents)
  • `--single-agent-only` - Single-agent mode (main agent only)
  • **Configuration Override:**

  • `--refresh-interval <seconds>` - Dashboard refresh interval (1-300)
  • `--gateway-interval <seconds>` - Gateway status check interval (5-600)
  • `--gateway-timeout <seconds>` - Gateway command timeout (1-30)
  • `--session-dir <path>` - Custom session directory
  • **Usage Examples:**

    # Human-readable vs full precision
    tide-watch dashboard                    # 18.7k/128k (easy to scan)
    tide-watch dashboard --raw-size         # 18,713/128,000 (exact)
    
    # Auto-detect current session (v1.3.4+)
    export OPENCLAW_SESSION_ID="17290631-4"
    tide-watch check --current              # Check THIS session
    tide-watch check --current --json       # JSON for heartbeat scripts
    
    # Session-specific archiving (v1.3.3+)
    tide-watch archive --session abc123 --dry-run    # Preview
    tide-watch archive --session abc123              # Archive one
    tide-watch archive --session a --session b       # Archive multiple
    
    # Partial ID matching (v1.3.3+)
    tide-watch check --session 17290631-4   # Matches 17290631-42fe-40c0-...
    
    # Multi-agent filtering
    tide-watch dashboard --agent kintaro    # Kintaro sessions only
    tide-watch report --exclude-agent main  # All except main

    Runtime Requirements

    **Mode 1 (Directives-Only):**

  • **Node.js:** Not required
  • **npm:** Not required
  • **Dependencies:** None
  • **Binary:** None
  • **Installation:** Copy templates to workspace config files
  • **Mode 2 (CLI Tools - Optional):**

  • **Node.js:** v14.0.0 or later required
  • **npm:** Any recent version
  • **Dependencies:**
  • - Development: `jest@^30.2.0` (for testing only)

    - Runtime: None (zero production dependencies)

  • **Binary:** `tide-watch` (installed globally via npm link)
  • **Installation:** `git clone` + `npm link`
  • **Why zero runtime dependencies?**

  • Uses only Node.js built-in modules (`fs`, `path`, `child_process`)
  • No external API clients
  • No network libraries
  • Minimal attack surface
  • Recommendation

    **Most users should use Directives-Only Mode.** This provides automatic capacity monitoring without installing any code. Only install CLI tools if you specifically need manual capacity management features.

    What It Does

    Monitors your OpenClaw session context windows and warns you before they overflow:

  • ๐ŸŸก **75%** โ€” Heads up, consider wrapping up soon
  • ๐ŸŸ  **85%** โ€” Recommend finishing current task and resetting
  • ๐Ÿ”ด **90%** โ€” Session will lock soon, ready to reset
  • ๐Ÿšจ **95%** โ€” Critical! Save to memory NOW
  • Installation

    Step 1: Add Monitoring Directive to AGENTS.md

    Copy the directive template from `AGENTS.md.template` and add it to your workspace `AGENTS.md` file:

    # From your workspace root (~/clawd or similar)
    cat skills/tide-watch/AGENTS.md.template >> AGENTS.md

    Or manually add the monitoring section from the template.

    This tells me (your agent) what to look for and when to warn you.

    Step 2: Add Heartbeat Task to HEARTBEAT.md

    Copy the heartbeat template from `HEARTBEAT.md.template` and add it to your workspace `HEARTBEAT.md` file:

    # From your workspace root (~/clawd or similar)
    cat skills/tide-watch/HEARTBEAT.md.template >> HEARTBEAT.md

    Or manually add the Tide Watch heartbeat section from the template.

    This tells me to check capacity automatically on a schedule.

    Step 3: Configure Settings (Optional)

    Default settings work for most users, but you can customize in your `AGENTS.md`:

    **Warning thresholds** (when to warn):

  • Adjust percentages (default: 75/85/90/95)
  • Range: 50-99%, ascending order, 2-6 thresholds
  • **Check frequency** (how often to monitor):

  • Adjust interval (default: Every 1 hour)
  • Options: 15min, 30min, 1hr, 2hr, or 'manual'
  • Range: 5 minutes to 6 hours
  • **Auto-backup**:

  • Enable/disable automatic backups (default: enabled)
  • Set which thresholds trigger backups (default: [90, 95])
  • Configure retention (default: 7 days)
  • Enable compression to save disk space (default: off)
  • **Channel-specific overrides** (advanced):

  • Different settings per channel (Discord vs. webchat vs. DM)
  • Usage

    Once installed, I will:

    1. **Check capacity hourly** during active conversations

    2. **Warn at thresholds** (75%, 85%, 90%, 95%)

    3. **Suggest actions**:

    - Save important context to memory

    - Switch to lower-usage channels

    - Provide session reset commands

    - Generate session resumption prompts

    Manual Check

    Ask me to check session status anytime:

    What's my current session capacity?
    Check context usage
    Run session_status

    Reset Session with Context Preservation

    When warned about high capacity:

    Help me reset this session and preserve context

    I'll:

    1. Save current work to memory

    2. Backup the session file (if not already backed up)

    3. Provide a session resumption prompt

    4. Reset the session

    Load Session from Backup

    If you need to load a previous session state from backup:

    Show me available backups for this session
    Load session from 90% backup

    I'll:

    1. List available backups with timestamps and sizes

    2. Load the selected backup

    3. Guide you through reconnecting to load the session

    **Backup locations:**

  • Path: `~/.openclaw/agents/main/sessions/backups/`
  • Format: `<session-id>-<threshold>-<timestamp>.jsonl[.gz]`
  • Retention: Configurable (default: 7 days)
  • How It Works

    Automatic Monitoring (Heartbeat)

    When you add Tide Watch to your `HEARTBEAT.md`, I automatically:

    1. **Parse your configuration** (from AGENTS.md)

    - Check frequency: How often to monitor

    - Warning thresholds: When to warn you

    - Backup settings: When to backup, retention, compression

    - See [PARSING.md](PARSING.md) for detailed parsing logic

    2. **Check capacity on schedule** (default: every hour)

    - Run `session_status` to get token usage

    - Calculate percentage: `(tokens_used / tokens_max) * 100`

    3. **Compare against your thresholds**

    - Use your configured thresholds (not hardcoded defaults)

    - Determine which threshold(s) have been crossed

    - Assign severity dynamically based on position (first=๐ŸŸก, last=๐Ÿšจ)

    3. **Warn you (once per threshold)**

    - Issue warning message for new threshold crossings

    - Track which thresholds already warned this session

    - Don't repeat warnings if capacity stays at same level

    4. **Auto-backup (if enabled and triggered)**

    - Check if capacity crossed any backup trigger thresholds

    - Create backup: `~/.openclaw/agents/main/sessions/backups/<session-id>-<threshold>-<timestamp>.jsonl`

    - Verify backup integrity

    - Log backup completion

    - Track which thresholds backed up (don't duplicate)

    5. **Suggest actions**

    - Save context to memory

    - Switch to lower-usage channel

    - Provide session reset commands

    - Generate session resumption prompts

    6. **Cleanup old backups**

    - Remove backups older than retention period (default: 7 days)

    7. **Return to silent mode**

    - If capacity is below all thresholds, return `HEARTBEAT_OK`

    - No output, no interruption

    Manual Checks

    You can also ask me to check anytime:

    What's my current session capacity?
    Check context usage
    Run session_status

    Key Features

  • **Model-agnostic**: Works with any provider (Anthropic, OpenAI, DeepSeek, etc.)
  • **Non-intrusive**: Silent checks, only speaks up at thresholds
  • **Configurable**: Adjust thresholds, frequency, and actions to your workflow
  • **Stateful**: Tracks which thresholds warned, resets tracking when session resets
  • Why You Need This

    **Problem**: Context windows fill up silently. Once at 100%, sessions lock and stop responding. You lose work mid-task.

    **Solution**: Proactive monitoring catches capacity issues early, giving you time to save work, switch channels, or reset cleanly.

    **Real incident**: Discord #navi-code-yatta hit 97% capacity and locked mid-task (2026-02-23). Had to manually reset, losing conversation context.

    Configuration Examples

    Conservative (early warnings)

    Warning thresholds: 60%, 70%, 80%, 90%
    Check frequency: Every 30 minutes

    Aggressive (maximize usage)

    Warning thresholds: 85%, 92%, 96%, 98%
    Check frequency: Every 2 hours

    Channel-specific

    Discord channels: 75%, 85%, 90%, 95% (default)
    Webchat: 85%, 95% (lighter warnings)
    DM: 90%, 95% (minimal warnings)

    Future Features

  • [ ] CLI tool for capacity reports
  • [ ] Automatic session backups at thresholds
  • [ ] Historical capacity tracking
  • [ ] Cross-session capacity reports
  • [ ] Integration with heartbeat monitoring
  • [ ] Email/notification warnings
  • [ ] Smart session rotation suggestions
  • Requirements

  • OpenClaw with `session_status` tool support
  • Workspace with `AGENTS.md` file
  • Active monitoring directive in agent instructions
  • Support

  • **Repo**: https://github.com/chrisagiddings/openclaw-tide-watch
  • **Issues**: https://github.com/chrisagiddings/openclaw-tide-watch/issues
  • **ClawHub**: https://clawhub.ai/chrisagiddings/tide-watch
  • License

    MIT

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band