> ## Documentation Index
> Fetch the complete documentation index at: https://docs.claude-mem.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Endless Mode (Beta)

> Experimental biomimetic memory architecture for extended sessions

# Current State of Endless Mode

## Core Concept

Endless Mode is a **biomimetic memory architecture** that solves Claude's context window exhaustion problem. Instead of keeping full tool outputs in the context window (O(N²) complexity), it:

* Captures compressed observations after each tool use
* Replaces transcripts with low token summaries
* Achieves O(N) linear complexity
* Maintains two-tier memory: working memory (compressed) + archive memory (full transcript on disk, maintained by default claude code functionality)

## Implementation Status

**Status**: FUNCTIONAL BUT EXPERIMENTAL

**Current Branch**: `beta/endless-mode` (ahead of main)

**Recent Activity**:

* Merged main branch changes
* Resolved merge conflicts in save-hook, SessionStore, SessionRoutes
* Updated documentation to remove misleading token reduction claims
* Added important caveats about beta status

## Key Architecture Components

1. **Pre-Tool-Use Hook** - Tracks tool execution start, sends tool\_use\_id to worker
2. **Save Hook (PostToolUse)** - **CRITICAL**: Blocks until observation is generated (110s timeout), injects compressed observation back into context
3. **SessionManager.waitForNextObservation()** - Event-driven wait mechanism (no polling)
4. **SDKAgent** - Generates observations via Agent SDK, emits completion events
5. **Database** - Added `tool_use_id` column for observation correlation

## Configuration

```json theme={null}
{
  "CLAUDE_MEM_ENDLESS_MODE": "false",  // Default: disabled
  "CLAUDE_MEM_ENDLESS_WAIT_TIMEOUT_MS": "90000"  // 90 second timeout
}
```

**Enable via**: Manual checkout of beta branch (see instructions below)

## Flow

```
Tool Executes → Pre-Hook (track ID) → Tool Completes →
Save-Hook (BLOCKS) → Worker processes → SDK generates observation →
Event fired → Hook receives observation → Injects markdown →
Clears input → Context reduced
```

## Known Limitations

From the documentation:

* ⚠️ **Slower than standard mode** - Blocking adds latency
* ⚠️ **Still in development** - May have bugs
* ⚠️ **Not battle-tested** - New architecture
* ⚠️ **Theoretical projections** - Efficiency gains not yet validated in production

## What's Working

* ✅ Synchronous observation injection
* ✅ Event-driven wait mechanism
* ✅ Token reduction via input clearing
* ✅ Database schema with tool\_use\_id
* ✅ Web UI for version switching
* ✅ Graceful timeout fallbacks

## What's Not Ready

* ❌ Production validation of token savings
* ❌ Comprehensive test coverage
* ❌ Stable channel release
* ❌ Performance benchmarks
* ❌ Long-running session data

## How to Try Endless Mode

Endless Mode is currently only available on the beta branch. To try it:

```bash theme={null}
# Navigate to your claude-mem installation
cd ~/.claude/plugins/marketplaces/thedotmack/

# Checkout the beta branch
git checkout beta/endless-mode

# Install dependencies
npm install

# Restart the worker
npm run worker:restart
```

**To return to stable:**

```bash theme={null}
cd ~/.claude/plugins/marketplaces/thedotmack/
git checkout main
npm install
npm run worker:restart
```

## Summary

The implementation is architecturally complete and functional, but remains experimental pending production validation of the theoretical efficiency gains.
