Product Update

DeerDawn Now Shows You the Brief

DeerDawn has always briefed your AI at the start of every session. Now it shows you that it happened, in one card, before your agent says a word.

Published Aug 8, 2026Updated Aug 8, 2026
One SessionStart hook, two audiences
SessionStart hook

Fires before your agent writes a single word

additionalContextAlways shipped
The model

Your brief — current task, decisions, open questions. Wrapped in a system reminder and inserted into the context window.

systemMessageNew
You

The session-start card, rendered straight into your transcript before the model replies. No output tokens, nothing to summarise away.

DeerDawn ran on every session you started and you saw nothing. The brief loaded, your agent read it, and the only evidence was that the answers were better than they should have been. That is a strange thing to charge money for.

Starting today, every session opens with a card.

┌─ DEERDAWN ───────────────────────────────────────┐
│ Setup & API Testing               briefed 2m ago │
│                                                  │
│ Yesterday   merged PR #256 - two growth findings │
│ Open        Create the Google Ads conversion…    │
│ Remembering 37 decisions · 6 projects            │
└──────────────────────────────────────────────────┘

Why it was invisible

DeerDawn installs a SessionStart hook. That hook has always had two output channels, and we were only using one of them.

One channel carries text into the model's context window. That is where your brief has always gone: current task, recent decisions, open questions, the paths that matter. Your agent reads it before it reads your message. It works, and it is completely invisible to you.

The other channel renders directly into your transcript. We had never written to it. So the fix was not to build a new surface, it was to start using the half of the pipe that was already installed.

Why a card and not a summary

Your agent already tells you what it loaded, in prose, in its first reply. We could have leaned on that. We did not, for one reason: that path runs through the model, and anything that runs through the model is a suggestion. An agent that decides the brief is not worth mentioning simply will not mention it, and you will never know the difference.

The card renders before the model responds. It cannot be summarised away, reworded, skipped, or translated into something vaguer. It costs no output tokens. It is the same card every time, in the same place, whether your agent is chatty or terse.

On surfaces without hooks, like ChatGPT, Cursor, and Codex, the card comes through the agent instead, with instructions to print it verbatim. That path is less reliable, which is exactly why it is the fallback and not the mechanism.

Three rows, and only three

The card is not a place to read your context. Your brief is already doing that, and if the card starts competing with it you will skim both.

So it reports what changed while you were gone, the one thread still open, and how much DeerDawn is holding for you. That third row is the only one that is not about today. It is the number that goes up.

What the card is honest about

A memory product that you never audit has to be right, because a wrong brief is worse than no brief. It quietly poisons every session downstream and you have no way to trace the confusion back to its source.

So the card refuses to invent continuity. If nothing happened since your last session, it says nothing rather than dressing up an empty gap. If the totals query fails, the counter disappears instead of rendering a zero and implying you lost something. On your very first session it does not report a gap that never happened; it tells you what is about to start being captured.

Nothing to do

There is no setting. Update the MCP server and the card appears at your next session start. The brief your agent reads has not changed.

Never start cold

Set up DeerDawn once and it briefs every new session with your project's current state, so Claude Code, Cursor, Codex, Claude.ai, and ChatGPT all start caught up instead of cold.