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

# crystal_wake

> Get an opening briefing for the current memory session.

## What it does

Generates an opening briefing for the current session by scanning active goals and recent decisions from Memory Crystal. Use this at the start of a session to establish context before proceeding with substantive work.

## Parameters

| Parameter | Type   | Required | Default | Description                                                                         |
| --------- | ------ | -------- | ------- | ----------------------------------------------------------------------------------- |
| channel   | string | No       | —       | Optional channel identifier to scope the briefing (e.g., "claude-code", "telegram") |

## Returns

```json theme={"system"}
{
  "briefing": "string",
  "openGoals": [
    {
      "title": "string",
      "memoryId": "string"
    }
  ],
  "recentDecisions": [
    {
      "title": "string",
      "memoryId": "string"
    }
  ]
}
```

**Field descriptions:**

* `briefing` — Human-readable overview of session context and active priorities
* `openGoals` — Array of goal memories marked as active/pending
* `recentDecisions` — Array of recent decision memories (typically from last 7 days)
* Each memory includes `title` and `memoryId` for reference/drill-down

The text output also includes a formatted block showing:

* The briefing text
* Open goals (bulleted list, or "none" if empty)
* Recent decisions (bulleted list, or "none" if empty)

## Examples

### Basic usage

```javascript theme={"system"}
// Get default session briefing
crystal_wake()

// Text output:
// Briefing: You are working on the Memory Crystal MCP server...
//
// Open goals
// - Implement KB filtering for multi-tenant isolation
// - Add vector search optimizations
//
// Recent decisions
// - Chose Convex mutations over HTTP actions for memory writes
// - Switched from single embedding to cached batch processing
```

### Advanced usage

```javascript theme={"system"}
// Get channel-scoped briefing
crystal_wake({
  channel: "claude-code"
})

// Get briefing for a specific project context
crystal_wake({
  channel: "telegram-coaching"
})

// Result includes goals/decisions specific to that channel
```

## When to use this vs alternatives

* **`crystal_wake`** — At session start to establish context; summarizes goals and recent decisions
* **`crystal_recall`** — When you need semantically relevant memories on a specific topic
* **`crystal_what_do_i_know`** — When you want a broad topic scan without fixed recency/category filters
* **`crystal_recent`** — When you need recent message history, not memory summaries

## Error handling

| Error                         | Cause                             | Resolution                                                        |
| ----------------------------- | --------------------------------- | ----------------------------------------------------------------- |
| channel is not a string       | Malformed channel input           | Provide a string or omit the parameter                            |
| Embedding service unavailable | OpenAI or vector database offline | Retry; check network and OPENAI\_API\_KEY                         |
| No goals or decisions found   | New session with no prior context | Not an error — returns empty arrays. Proceed with user's request. |
| Authentication failed         | Invalid Convex JWT or API key     | Verify auth configuration in Convex client setup                  |

## Notes

* The briefing is generated fresh on each call, not cached.
* Open goals are memories with category=`goal` and status=`active`. Recent decisions are category=`decision` within the last 7 days.
* Channel filtering is optional; if omitted, returns cross-channel goals and decisions.
* The formatted briefing output includes a defense header to prevent accidental instruction injection.
* If no goals or decisions exist, the tool returns empty arrays but does not error.
* The briefing is designed to be read by an AI before substantial work begins; it primes context without forcing action.
