Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/Pseudogiant-xr/Pseudolife-MCPWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/pseudogiant-xr/pseudolife-mcp/dream)<a href="https://agentmods.dev/commands/pseudogiant-xr/pseudolife-mcp/dream"><img src="https://agentmods.dev/badge/commands/pseudogiant-xr/pseudolife-mcp/dream/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/pseudogiant-xr/pseudolife-mcp/dream"><img src="https://agentmods.dev/badge/commands/pseudogiant-xr/pseudolife-mcp/dream.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00026 | $0.01894 |
| Opus 5 | $0.00013 | $0.00947 |
| Sonnet 5 | $0.00005 | $0.00379 |
| Haiku 4.5 | $0.00003 | $0.00189 |
Grade A, and why
dream scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 123 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run a judgment session over the Pseudolife-MCP bank. The pipeline halves
run themselves — the auto-sweep extracts facts through the configured
extractor, and a need-based tick applies the deep dream's mechanical half
(rescore, guarded junk deletes, scope stamping, proposal filing, analyzer
duplicate filing, the unreachable-orphan sweep, snapshot-first). Since
2026-09-02 the sweep also judges every queue itself (merge second opinion,
link, junk, store-curation and candidate judges — each mode-gated, see
docs/runbooks/deep-dream.md §0), so what this command meets is the
residue: rows whose verdict sat below a gate, a split second opinion, a
low_differential accept, a junk delete above the evidence bar. Every
such row carries the judge's judge / judge2 blocks — treat them as
leads, read the evidence, and disagree freely.
- Call
memory_dream(action="status")and read three things:deep_dream—{recommended, reason, new_entities, days_since}: whether the mechanical pass is due. The tick normally handles this; ifrecommendedis still true (tick disabled, or the daemon just restarted), runmemory_dream(action="deep", apply=true)yourself — the daemon snapshots the graph tables first (snapshotin the response is the undo file); asnapshot_failederror means nothing was changed — investigate, don't retry blindly. Otherwise runmemory_dream(action="deep")(dry-run) to fetch the queues with evidence snippets.- the extractor fields (
primary_url/fallback_url): whether this deployment has ANY automatic cortex writer. backlog/would_fire: whether unconsolidated memories are waiting for the next sweep.
- ONLY when no extractor endpoint is configured (primary and fallback
both null) or both are unreachable: you are this deployment's only
cortex writer — run the manual extraction pass:
memory_dream(action="pull")(default limit).- From the pulled text, extract only durable, current-state,
slot-shaped facts as
(entity, attribute, value). Skip narrative, in-progress work, and superseded states. Reuse existing slot keys where they fit. - Write each with
memory_fact_set(originuseronly for things the human stated; otherwiseagent). If the fact is a MEMBER of a set the user maintains (bikes owned, pending tasks), usememory_set_add/memory_set_removeinstead —memory_fact_seton a set-valued slot errors and names the right tool. memory_dream(action="commit", cursor=<newest timestamp from the pull>).- Surface any
contestedresults to the user — those are conflicts to settle, not silent overwrites (an add onto a number-led scalar parks as a contender by design;member_cappedmeans the 100-member cap was hit).
- Work the returned
candidates(Step C). For each pair, judge from thesrc_snippets/dst_snippetsevidence, never from names alone:- Related (one uses/contains/produces the other, etc.): submit via
memory_graph_review(action="propose", proposals=[{src, relation, dst, rationale}])with a specific relation and a one-line rationale. - Distinct (similar names or shared context only — e.g. opposite verbs,
siblings under one parent):
memory_graph_review(action="dismiss_pair", src=..., dst=...)so the pair never resurfaces and stops occupying a top-k slot. - Unsure: leave it — the pair stays visible for the Console's Atlas queue. Do not guess.
- Related (one uses/contains/produces the other, etc.): submit via
- Triage the returned
merge_proposals(near-duplicate entities, mostly from the write-time dedup detector). Each carries per-sidedisplay,etype,degree,scopes, andsnippets; accepting foldsfromintointoas shown — the direction is re-derived from current evidence at both display and accept time, so an accept earlier in the batch can flip a later pair's direction. Rows sharing agroupvalue pivot on one entity and are ONE where-does-it-belong decision: accept at most one of them (the first accept deletes the shared entity), and settle the others with reject/dismiss or leave them. Rows may carry ajudgeblock — the sweep's shadow pre-judgment (verdict/confidence/note + which model): treat it as a lead, not a decision; verify every accept against the evidence yourself (the shipped judge floor is measured in evals/results/judge-ladder-20260816.json). Judge from the snippets, never names alone — the bank's confirmed-distinct history (postgres vs postgres.py) is exactly why:- Same referent (naming-layer variants of one thing — file suffixes,
abbreviations, display drift):
memory_graph_review(action="accept_merge", proposal_id=...). The merge applies immediately (the graph snapshot from step 1 is the undo artifact) and is logged to the recent-merges audit as decided_by=agent. - Distinct things:
memory_graph_review(action="reject_entity", proposal_id=...)ANDmemory_graph_review(action="dismiss_pair", src=..., dst=...)so the pair never re-proposes. - Unsure: leave pending for the Atlas queue. Do not guess; scopes that don't overlap are a strong distinct signal.
- Same referent (naming-layer variants of one thing — file suffixes,
abbreviations, display drift):
- Triage the junk verdict — over-extraction artifacts the analyzer wants
pruned. The dry-run reports them as
would_junk({entity, reason, already_proposed}); apply reports ajunk_proposedcount and files them in the review queue, wherememory_graph_review(action="list")surfaces ajunk_candidatefinding whoseentitiescarry theidyou need. Judge by thereason:- Artifact (
concat-artifact,list-artifact,compound-artifact,bare-number,status-word…):memory_graph_review( action="accept_junk", proposal_id=...). This DELETES the entity — the step-1 snapshot is the only undo. - A real thing that merely looks thin — short, weakly-connected names
are often legitimate ("Go", "uv"):
memory_graph_review(action="reject_entity", proposal_id=...). - Unsure: leave it pending for the Atlas queue. Junk deletion is the one irreversible verdict in this flow — the step-1 snapshot is the only undo (lesson/world forgets below are reversible; see step 6).
- Artifact (
- Triage the returned
lesson_duplicates/world_duplicates(cross-key near-duplicate slots in the lesson / world stores; listing-only — the dream never deletes them). Judge from the per-side values:- Duplicate: keep the better-keyed slot and drop the other via
memory_forget(scope="lesson"|"world", ...), folding anything the dropped slot added into the survivor first. This now RETIRES the slot rather than deleting it (row kept,store_decisionsaudit row) — a wrong call is undoable withmemory_graph_review(action="restore_slot", store="lesson"|"world", src="<entity>|<attribute>"), so lean toward acting rather than leaving a genuine duplicate pending. - Distinct:
memory_graph_review(action="dismiss_slot_pair", store="lesson"|"world", src=<a_key>, dst=<b_key>)so the pair never re-lists. - Unsure: leave listed. Do not guess.
- Duplicate: keep the better-keyed slot and drop the other via
- Report: what the mechanical pass did (or that the tick already had),
proposed / dismissed counts, merges you applied or rejected (they appear
under "recent merge decisions" in Atlas, beside the accept-rate stat),
junk entities deleted or kept, lesson/world pairs settled, contested
facts if step 2 ran, and the snapshot filename. Link proposals still
need a human verdict (
accept_link/reject_linkor Atlas).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed · -2 lines · +26 tokens per session scan C → A 5754cfba8c0a
- 6d ago Changed · +12 lines 0cfb11b1dceb
- 10d ago First seen · 113 lines · 0 tokens per session scan C f830eae2d219
dream is a command published in the GitHub repository Pseudogiant-xr/Pseudolife-MCP (4 stars, last pushed today), licensed Apache-2.0. It adds 26 tokens to every session and 1,894 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
arreflect
AgentRecall consolidation & reflection — periodic triage of recurring corrections; proposes rule changes, never applies them without the owner.
arrecall
AgentRecall on-demand recall — surface past fixes, decisions, and patterns mid-session without leaving your flow.
arsave
AgentRecall full save — journal + palace + awareness + insights in one shot.
artel-recall
Search Artel shared memory for what the fleet already knows.
artel-remember
Write a fact, decision, or gotcha to Artel shared memory.
dreaming
Configure and run the dreaming subsystem that consolidates, combines, and prunes memories on a wall-clock floor. Invoke when the user asks to turn dreaming on/off, change how often it runs, run a one-shot dreaming pass, or check when dreaming last fired. Defaults: mode=auto, interval=30m for auto / 24h for on, include…