Claude
Skills
Sign in
โ† Back

session-launcher

Included with Lifetime
$97 forever

Restores full context when user says "hi-ai" or starts a new conversation. Searches project files, loads memory indexes, reads session state, and creates visual dashboard showing current project, recent decisions, active blockers, and quick actions. Use when user says "hi-ai", "continue", "restore context", or starts a fresh conversation.

Data & Analytics

What this skill does


# Session Launcher

## Purpose

Zero context loss between conversations. When a new session starts, this skill:
1. Searches for project context files
2. Loads memory indexes and past decisions
3. Reads session state
4. Creates visual dashboard with actionable links
5. Makes you immediately productive

**For SDAM users**: Compensates for lack of episodic memory by externalizing all session context.
**For ADHD users**: Eliminates "where was I?" friction - instant continuation.
**For dyschronometria**: Shows explicit timestamps on all context.

## Activation Triggers

- User says: "hi-ai"
- User says: "continue", "restore context", "what was I working on"
- Start of new conversation (proactively offer)

## Core Workflow

### 1. Search for Context Files

Check these locations in order:

```bash
# Current project context
./.context/current.json
./.context/session.json
./DECISIONS.md
./README.md

# User's memory storage
~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)current.json
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)projects/
```

### 2. Load Memory Index

Read `~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json`:

```json
{
  "total_memories": N,
  "memories": [
    {
      "id": "unique-id",
      "type": "DECISION|BLOCKER|CONTEXT|PREFERENCE|PROCEDURE",
      "content": "the memory",
      "timestamp": "ISO8601",
      "tags": ["tag1", "tag2"],
      "project": "project-name"
    }
  ]
}
```

Extract:
- Recent decisions (last 7 days)
- Active blockers (status != "resolved")
- Project context (matching current directory)
- User preferences

### 3. Identify Current Project

Determine project from:
1. Current working directory name
2. `.context/project.txt` if exists
3. Git repository name: `basename $(git rev-parse --show-toplevel 2>/dev/null)`
4. Ask user if unclear

### 4. Create Session Dashboard

Generate HTML file at `~/.claude-artifacts/ (Linux/macOS) or %USERPROFILE%\.claude-artifacts\ (Windows)session-dashboard-{timestamp}.html`:

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Session Restored</title>
    <style>
        body {
            font-family: monospace;
            max-width: 1200px;
            margin: 40px auto;
            padding: 20px;
            background: #1e1e1e;
            color: #d4d4d4;
        }
        .section {
            background: #252526;
            border: 1px solid #3e3e42;
            border-radius: 6px;
            padding: 20px;
            margin: 20px 0;
        }
        .section h2 {
            margin-top: 0;
            color: #4ec9b0;
            border-bottom: 1px solid #3e3e42;
            padding-bottom: 10px;
        }
        .timestamp {
            color: #858585;
            font-size: 0.9em;
        }
        .decision {
            background: #2d2d30;
            padding: 10px;
            margin: 10px 0;
            border-left: 3px solid #4ec9b0;
        }
        .blocker {
            background: #2d2d30;
            padding: 10px;
            margin: 10px 0;
            border-left: 3px solid #f48771;
        }
        .action {
            display: inline-block;
            background: #0e639c;
            color: white;
            padding: 8px 16px;
            margin: 5px;
            border-radius: 4px;
            text-decoration: none;
        }
        .metric {
            font-size: 2em;
            color: #4ec9b0;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>๐Ÿš€ Session Restored</h1>
    <p class="timestamp">Restored at: {current_timestamp}</p>

    <div class="section">
        <h2>๐Ÿ“ Current Project</h2>
        <div class="metric">{project_name}</div>
        <p>Location: <code>{project_path}</code></p>
        <p>Last worked: <span class="timestamp">{last_session_time}</span></p>
    </div>

    <div class="section">
        <h2>๐ŸŽฏ Recent Decisions (Last 7 Days)</h2>
        {for each recent decision:}
        <div class="decision">
            <strong>{decision.content}</strong>
            <div class="timestamp">{decision.timestamp} - {relative_time}</div>
            {if decision.tags:}<p>Tags: {tags_joined}</p>{endif}
        </div>
        {endfor}
    </div>

    <div class="section">
        <h2>๐Ÿšง Active Blockers</h2>
        {for each active blocker:}
        <div class="blocker">
            <strong>{blocker.content}</strong>
            <div class="timestamp">{blocker.timestamp} - {relative_time}</div>
        </div>
        {endfor}
        {if no blockers:}<p>โœ… No active blockers</p>{endif}
    </div>

    <div class="section">
        <h2>๐Ÿ“Š Memory Stats</h2>
        <p>Total memories: <span class="metric">{total_memories}</span></p>
        <p>Decisions: {decision_count} | Blockers: {blocker_count} | Procedures: {procedure_count}</p>
    </div>

    <div class="section">
        <h2>โšก Quick Actions</h2>
        <a href="file://~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json" class="action">View All Memories</a>
        <a href="file://{project_path}" class="action">Open Project</a>
        <a href="file://~/.claude-artifacts/ (Linux/macOS) or %USERPROFILE%\.claude-artifacts\ (Windows)" class="action">View Artifacts</a>
    </div>
</body>
</html>
```

### 5. Output Summary

After creating dashboard, output to user:

```
๐Ÿš€ Session Restored

๐Ÿ“ Project: {project_name}
๐Ÿ“ Location: {project_path}
๐Ÿ• Last worked: {relative_time}

๐Ÿ“ Recent Decisions ({count}):
{for each decision (max 5):}
  โ€ข {decision.content} ({relative_time})
{endfor}

๐Ÿšง Active Blockers ({count}):
{for each blocker:}
  โ€ข {blocker.content} ({relative_time})
{endfor}

๐Ÿ’พ Memory: {total_memories} total memories loaded

๐Ÿ“Š Dashboard: {dashboard_path}

โœ… Full context restored. Ready to continue!

What would you like to work on?
```

## Memory Integration

### Reading Memories

Always check memory index for:
- Project-specific context
- User preferences (tech stack, coding style)
- Past decisions affecting current work
- Similar past problems/solutions

### Time Anchoring (for Dyschronometria)

Convert all timestamps to relative format:
- "2 hours ago"
- "3 days ago"
- "Last Tuesday"
- Include ISO timestamp for precision

### Context Filtering

Filter memories by:
1. **Project match**: `memory.project === current_project`
2. **Recency**: Last 30 days weighted higher
3. **Type priority**: BLOCKER > DECISION > CONTEXT > PROCEDURE
4. **Relevance**: Tag matching if available

## Session State Management

### Saving Session State

Before ending conversation (if user says "goodbye", "see you", "done for now"):

1. Create/update `~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)current.json`:

```json
{
  "project": "project-name",
  "project_path": "/full/path",
  "last_active": "ISO8601_timestamp",
  "last_files": [
    "/path/to/file1.js",
    "/path/to/file2.py"
  ],
  "last_topic": "Brief description of what we were working on",
  "next_actions": [
    "Suggested next step 1",
    "Suggested next step 2"
  ]
}
```

2. Update memory index with session summary:

```json
{
  "type": "NOTE",
  "content": "Session ended: {brief_summary_of_work}",
  "timestamp": "ISO8601",
  "tags": ["session", "project-name"],
  "project": "project-name"
}
```

### Project-Specific Sessions

For multi-project users, maintain:

```
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)projects/
โ”œโ”€โ”€ boostbox.json
โ”œโ”€โ”€ toolhub.json
โ”œโ”€โ”€ 88dimensions.json
โ””โ”€โ”€ mcp-stack.json
```

Each contains project-specific state.

## Visual Dashboard Features

### For Aphantasia Users

Always provide:
- **Concrete metrics** (numbers, counts)
- **Visual structure** (HTML dashboard)
- **Explicit links** (clickable file paths)
- **Status indicators** (โœ… โŒ ๐Ÿšง emojis)

### For ADHD Users

Dashboard

Related in Data & Analytics