sessions

Sessions - Complete API Reference

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sessions" with this command: npx skills add alsk1992/cloddsbot/alsk1992-cloddsbot-sessions

Sessions - Complete API Reference

Manage conversation sessions, history, checkpoints, and resets across channels.

Chat Commands

Session Control

/new Start new conversation /reset Reset current session /session View session info /session list List active sessions

Checkpoints

/checkpoint save "before refactor" Save checkpoint /checkpoint list List checkpoints /checkpoint restore <id> Restore checkpoint /checkpoint delete <id> Delete checkpoint

History

/history View conversation history /history export Export as markdown /history clear Clear history (keeps session)

Settings

/session scope main Use main session /session scope channel Per-channel sessions /session scope peer Per-user sessions /session reset-time 00:00 Set daily reset time /session idle-reset 30 Reset after 30 min idle

TypeScript API Reference

Create Session Manager

import { createSessionManager } from 'clodds/sessions';

const sessions = createSessionManager({ // Session scope scope: 'per-channel-peer', // 'main' | 'per-peer' | 'per-channel-peer'

// Auto-reset dailyResetHour: 0, // Reset at midnight idleResetMinutes: 30, // Reset after 30 min idle

// Storage storage: 'sqlite', dbPath: './sessions.db',

// Encryption encryptTranscripts: true, encryptionKey: process.env.SESSION_KEY, });

Get or Create Session

const session = await sessions.getOrCreateSession({ userId: 'user-123', channelId: 'telegram-456', peerId: 'peer-789', });

console.log(Session ID: ${session.id}); console.log(Created: ${session.createdAt}); console.log(Messages: ${session.messageCount}); console.log(Last activity: ${session.lastActivityAt});

Add Message to History

// Add user message await sessions.addMessage({ sessionId: session.id, role: 'user', content: 'What is my portfolio value?', });

// Add assistant message await sessions.addMessage({ sessionId: session.id, role: 'assistant', content: 'Your portfolio is worth $10,234.56', usage: { inputTokens: 500, outputTokens: 200, }, });

Get History

// Get conversation history const history = await sessions.getHistory(session.id, { limit: 50, format: 'messages', // 'messages' | 'markdown' | 'text' });

for (const msg of history) { console.log([${msg.role}] ${msg.content}); }

Clear History

// Clear conversation but keep session await sessions.clearHistory(session.id);

Reset Session

// Full reset (new session) await sessions.reset({ userId: 'user-123', channelId: 'telegram-456', });

Checkpoints

// Save checkpoint const checkpoint = await sessions.saveCheckpoint({ sessionId: session.id, name: 'Before major change', description: 'Saving state before refactoring trading strategy', });

console.log(Checkpoint ID: ${checkpoint.id}); console.log(Messages saved: ${checkpoint.messageCount});

// List checkpoints const checkpoints = await sessions.listCheckpoints(session.id);

for (const cp of checkpoints) { console.log(${cp.id}: ${cp.name} (${cp.messageCount} messages)); }

// Restore checkpoint await sessions.restoreCheckpoint(checkpoint.id);

// Delete checkpoint await sessions.deleteCheckpoint(checkpoint.id);

Export Session

// Export as markdown const markdown = await sessions.export(session.id, { format: 'markdown', includeMetadata: true, });

// Export as JSON const json = await sessions.export(session.id, { format: 'json', });

Session Cleanup

// Delete old sessions await sessions.cleanup({ olderThan: '30d', // Delete sessions older than 30 days keepCheckpoints: true, });

Session Scopes

Scope Description Use Case

main

Single global session Personal use

per-peer

Session per user Multi-user, shared channels

per-channel-peer

Session per user per channel Full isolation

Auto-Reset Behavior

Trigger Behavior

Daily reset New session at configured hour

Idle reset New session after inactivity

Manual reset User runs /new or /reset

Encryption

When encryptTranscripts: true :

  • All messages encrypted with AES-256-GCM

  • Per-session encryption keys

  • Secure key derivation from master key

Context Window Management

// Get context-aware history (for LLM) const context = await sessions.getContextHistory({ sessionId: session.id, maxTokens: 100000, // Fit in context window strategy: 'smart', // 'recent' | 'smart' | 'summarize' });

// 'smart' keeps system messages + recent + important messages // 'summarize' compresses old messages into summaries

Best Practices

  • Choose appropriate scope — Per-channel-peer for multi-user

  • Use checkpoints — Before major changes or experiments

  • Export regularly — Keep backups of important conversations

  • Set idle reset — Prevents stale context

  • Enable encryption — For sensitive conversations

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

binance-futures

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

trading-futures

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

tts

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

auto-reply

No summary provided by upstream source.

Repository SourceNeeds Review