💾 Session Management

Code Puppy includes powerful session management features to maintain context across conversations and manage token limits.

Autosave

Sessions are automatically saved as you work:

# Enable autosave (default: true)
/set autosave true

# Sessions saved to:
~/.code_puppy/sessions/

Session Storage

Sessions are stored as JSON files containing:

Message Compaction

When conversations get long, compaction helps manage token usage:

How Compaction Works

  1. A summarization agent reads your conversation history
  2. It creates a concise summary preserving key context
  3. Old messages are replaced with the summary
  4. Recent messages are preserved in full
/compact

# Before: 50 messages, 25,000 tokens
# After: 5 messages, 3,000 tokens
# Context preserved!

Compaction Strategies

StrategyDescription
SummarizeAI-generated summary of older messages
TruncateSimply remove oldest messages
SelectiveKeep important messages, summarize others

Resuming Sessions

# Start Code Puppy and resume last session
code-puppy
/resume

# Or use the session manager
/session

# Select from list of saved sessions

Manual Save/Load

# Save current context
/dump_context
# Enter a name when prompted

# Load a saved context
/load_context
# Select from available saves

Token Management

Tips for managing token usage:

💡 Tips
  • Use /compact when responses slow down
  • Use /truncate to keep only recent messages
  • Start fresh sessions for new topics
  • Use smaller models for simple tasks

Agent-Specific Sessions

When invoking sub-agents, sessions can be maintained:

# Invoke with session ID for continuity
invoke_agent(
  agent_name="code-reviewer",
  prompt="Review this file",
  session_id="review-auth"  # Creates review-auth-abc123
)

# Continue the same session
invoke_agent(
  agent_name="code-reviewer", 
  prompt="Now check security",
  session_id="review-auth-abc123"  # Use full ID to continue
)

Session Cleanup

# Sessions are stored in
~/.code_puppy/sessions/

# Manually delete old sessions
rm ~/.code_puppy/sessions/old-session.json

# Or use the session manager
/session
# Select 'delete' option