nexus-memory-hooks 1.2.0

Agent hooks system for Nexus Memory System - automated memory extraction
Documentation

Nexus Hooks - Agent hooks system for automated memory extraction

This crate provides a four-layer extraction system for capturing agent session context with 95-100% reliability:

  1. Native Hooks (98-100%): Claude Skills, pi-mono, oh-my-pi, pi-skills
  2. Session Monitor (95%): Process monitoring via sysinfo
  3. Inactivity Detector (90%): Configurable timeout detection
  4. Persistent Buffer (99%): Crash recovery from buffer

Supported Agents

Native Lifecycle (dedicated hook implementation + skill installation)

  • Claude Code: Skills-based (SKILL.md format) — session start, end, checkpoint, error, compact
  • pi-mono: Skills-based (TypeScript/Bun) — session end, checkpoint, compact
  • oh-my-pi: Skills-based (TypeScript/Bun + Rust N-API) — session end, checkpoint, error, compact
  • pi-skills: Cross-compatible skills — session end, checkpoint, compact

Monitor Only (process detection, no native hooks)

  • Gemini: Process monitoring only (function calling not yet wired)
  • Qwen: Process monitoring only (hooks subagent not yet wired)

Wrapper Lifecycle (generic CLI wrapper, atexit + process detection)

  • CLI Agents: Amp, Droid, OpenCode, Codex, Hermes (shared CLIHook implementation)

Example

use nexus_memory_hooks::{HookFactory, AgentHook, MultiLayerExtractor};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create hook for specific agent
    let factory = HookFactory::new();
    let mut hook = factory.create_hook("claude-code")?;

    // Check if session is active
    let activity = hook.detect_session_activity().await?;
    println!("Session active: {}", activity.is_active);

    // Extract session context
    if activity.is_active {
        let context = hook.extract_session_context().await?;
        println!("Extracted context: {:?}", context);
    }

    Ok(())
}