Back to Discover

daimon

plugin

Daily-Nerd

Dream-briefing for AI coding agents: a cognitive checkpoint at session end, a 'while you were away' briefing at session start.

View on GitHub
14 starsApache-2.0Synced Aug 15, 2026

Install to Claude Code

/plugin marketplace add Daily-Nerd/daimon

README

daimon mark — a coin of dots on the golden-angle spiral: the written half, the empty half still to come, three amber dots carried into the dark

Daimon

codecov

A dream-briefing for your AI agent: a skimmable "while you were away / here's where we left off" artifact, shown when you resume a session.

Documentation: daily-nerd.github.io/daimon — setup guides, configuration reference, concepts.

Your agent forgets everything between sessions. Daimon writes a small cognitive checkpoint when a session ends and turns it into a briefing when the next one starts — so the agent resumes from a faithful prior state instead of a confident guess:

While you were away — here's where we left off.

VERIFY BEFORE TRUSTING (state may have changed outside this session):
- [✓ verbatim] PR #212 state — you said you'd merge it yourself from the UI  — "I'll merge it after the demo"

Open loops:
- [✓ verbatim] Retry policy for the payments webhook — exponential or fixed?  — "don't ship the retry loop until we pick a policy"
- [~ inferred] The staging config drift needs an owner [carried] [≈ corroborated ×2]

Decisions made:
- [✓ verbatim] Postgres advisory locks over Redis locks for the scheduler  — "let's not add a Redis dependency for this"
- [~ inferred] Feature-flag the new invoice path; default off until QA signs off

Active topic: Migrating the scheduler off cron to the new worker pool

Every item carries its trust class: ✓ verbatim items are pinned to an exact quote from the transcript and are never reworded — not by carry-over between sessions, not by rendering, not by budget truncation. ~ inferred items are the agent's own conclusions and are allowed to evolve. Items carried from older sessions say so. That distinction — knowing which memories are quotes and which are guesses — is the point.

≈ corroborated ×N is a separate axis: N independent sessions have witnessed that claim. It never promotes the trust class, and daimon's own briefing and recall echoes are excluded from the count by construction — see trust classes.

See it happen

Two sessions: commit to the AWS cert, then pivot to GCP. The next briefing carries the old commitment flagged as likely superseded — with the confirm/reject commands inline — instead of injecting it back as current fact. One command confirms, and the stale decision is withheld from then on:

daimon briefing flags a superseded decision, the human confirms, the next briefing withholds it

And because the briefing is injected automatically when a session starts, the agent itself answers from it — no commands, just ask:

headless Claude Code answers "where did we leave off?" from the injected briefing, calling out the stale pre-pivot items as superseded

Nothing here is mocked — the transcripts, the recording scripts, and the steps to reproduce it are in docs/demo/.


Install

uv tool install 'daimon-briefing[pretty]'   # pipx works identically
# upgrading: uv tool upgrade daimon-briefing
#   then `daimon hooks install <host>` to refresh installed hook scripts (non-plugin hosts)

Serialization needs an LLM endpoint. If the claude CLI is on your PATH you are zero-configdaimon configure prints ✓ ready and you're done. Otherwise any OpenAI-compatible endpoint or headless CLI works: see configuration.

Claude Code (plugin — recommended):

/plugin marketplace add Daily-Nerd/daimon
/plugin install daimon@daimon

Agent-side skills, any host:

npx skills add Daily-Nerd/daimon

Adds daimon-briefing and daimon-end to whichever agent it detects. Use --skill daimon-briefing for one of them. Claude Code users who installed the plugin above already have both, so there is no need to run this as well.

Other hosts (Windsurf, Codex, Gemini CLI): per-host guides at daily-nerd.github.io/daimon/docs/hosts.

That's it. End a session → a checkpoint is written; start the next → the briefing appears. Check state anytime with daimon status — it reports capture health honestly, including failures, skips, and crashes; a failed capture self-heals on the next start.

Beyond the briefing

  • daimon recall <terms> — full-text search over your whole checkpoint history (and your team's, if enabled).
  • daimon why <item-id> — inspect a recalled item's independent capture, provenance, source, byte-integrity, current-support, verifier, lifecycle, and corroboration evidence. Add --source for one bounded redacted source window. See the Trust Inspector guide.
  • Context switchingdaimon projects, daimon brief --slug <slug>: read another project's memory deliberately, provenance-labeled — never automatic.
  • Proactive recall — when a new prompt overlaps prior work from an older session, the briefing surfaces it, in English or Spanish.
  • Code anchorsdaimon anchor <file> <symbol> pins a belief to a code symbol; drift is flagged in the next briefing. Offline, stdlib ast.
  • Item lifecycledaimon resolve closes loops, daimon forget removes an item with a tombstone event; supersession is tracked, not silently overwritten.
  • Negative-knowledge ledgerdaimon refute records scoped, evidence-cited rejected approaches outside checkpoint decay; agents propose candidates, humans ratify active guards, and overturns remain auditable.
  • Team memory (opt-in) — checkpoints mirrored through a private git remote; teammates' topics and decisions appear clearly attributed, never merged into yours.
  • Signed receipts (opt-in)DAIMON_RECEIPTS=1 pairs each checkpoint with an offline vitni signature binding its exact bytes to its source transcript; verify with daimon verify-receipt.
  • Scar harvest (opt-in)DAIMON_SCAR_HARVEST=1 drafts negative-knowledge candidates (dead ends, intentional-looking weirdness, non-obvious couplings) from each session into .scars/candidates/ for human review. Zero-LLM, path-anchored, active only in repos that already have a .scars/ directory; review and promotion tooling lives in Scar.

What's net-new here

  • Trust-classed, quote-pinned memory — every briefing item is marked verbatim (exact quote, immutable everywhere) or inferred (allowed to evolve), with provenance and supersession tracked extractively. No embeddings, no graph database, no server: per-project JSON plus a derived SQLite FTS5 index, stdlib-first and offline-first.
  • The briefing UX — memory that arrives as a session-start artifact you can skim in 30 seconds, ordered by what to verify first.
  • Host-agnostic hooks — Claude Code (live-validated daily), Windsurf (live-validated), Codex (live-validated capture since 2026-08-06); other hosts are reachable via the same thin adapter shape.

Status

SurfaceState
Claude Code plugin + hookslive-validated daily
CLI (brief, status, recall, why, projects, heal, anchor, forget, configure, hooks, skill)stable, on PyPI
Windsurf adapterlive-validated
Codex adapterlive-validated capture (real sessions serialized since 2026-08-06)
Gemini host hooksblocked upstream (gemini-cli#14715)
Team memoryshipped, opt-in, early

Daimon is self-contained at runtime — no external memory backend, no server. The full evidence trail behind every design decision lives in research/; the architecture is documented in docs/MVP-DREAM-BRIEFING.md.

License: Apache-2.0 · Org: Daily-Nerd · This repository starts at v0.2.0 (earlier development happened in a private lab repo; the research trail ships in research/).


Docs


The name comes from the Greek δαίμων — a guiding spirit (distinct from "demon") believed to accompany a person, offering counsel and warnings. This one shows its sources.

Rendered live from Daily-Nerd/daimon's GitHub README — not stored, always reflects the source repo.

1 Plugin

NameDescriptionCategorySource
daimonDream-briefing for AI coding agents: a cognitive checkpoint at session end, a 'while you were away' briefing at session start.productivity./

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.