nc://mindhall

v0.1.0Pinned
ThomSharktools/nodecode-mindhall: One shared mind of about-you notes, work, dates and a signed change log, read before every turn. - a rewrite of jai-srinivas/mindhall (MIT), credited to jai-srinivas7dce93d· 10 Nov1 commit
test1 filecell.lisp29.5 KB

nodecode-mindhall

Mindhall: one shared mind of about-you notes, work, dates and a signed change log, read at every turn. A Nodecode rewrite of jai-srinivas/mindhall by jai-srinivas.

Every AI a person uses remembers a different version of them: one was told the launch moved, another still has the old date. Mindhall is one small file they all read and write instead. It has four rooms -- About you (lasting facts and rules), Work (a project, client or course and where it stands), Dates (a day and what happens on it) and a Change Log where every write is signed with the name the writing agent runs as. Before each turn the model reads a short block of it: about-you notes, the work not done, the next two weeks of dates and the latest changes.

Get it

Tell the agent "add the mindhall cell", or run nodecode add nc://mindhall.

Set it up

Nothing has to be set: the cell starts on ~/.mindhall/mindhall.json, signs changes with the name Nodecode, and needs no key and no service. The mindhall section of config.jsonc (or /settings) is there when the defaults do not fit.

Member Default What it does
store ~/.mindhall/mindhall.json the mind's file: point another AI or harness at the same path and it reads the same mind
agent Nodecode the name every change is signed with, as the Change Log shows it
inject true put the mind's short block in front of every turn
max_chars 1800 the character ceiling on that block
block_changes 5 how many recent changes the block carries
days_ahead 14 how many days ahead its dates reach
max_text 500 the longest note, work name, next step or date label

Use it

Say what changed and the model saves it in the same turn:

The Mindhall launch moved to the 22nd, and I want shorter answers from now on.

mindhall_set_date moves the date it already has rather than adding a conflicting second one, and mindhall_add_note keeps the preference in About you, signed. A later session -- or another agent on the same file -- starts with:

About the user:
  - Wants shorter answers
Work:
  - Mindhall [Active, next: port it]
Upcoming dates:
  2026-11-22  Launch
Latest changes:
  2026-11-08  Nodecode: Moved Launch from 2026-11-20 to 2026-11-22

The model has five tools: mindhall_read (one room, or all of it), mindhall_add_note, mindhall_update_work, mindhall_set_date and mindhall_remove. The operator has /mindhall, and /mindhall about|work|dates|changes for one room. The same verbs are callable from an eval form, since they answer strings:

(mindhall:add-note "Ships on Fridays")
(mindhall:set-date "Demo" "2026-12-04")
(mindhall:read-mind "dates")

The mind

One JSON document, indented so a person can read it and an outside tool can write it:

{
  "about": [{"id": 1, "note": "Wants shorter answers"}],
  "work": [{"id": 1, "name": "Mindhall", "status": "Active", "step": "port it"}],
  "dates": [{"id": 1, "day": "2026-11-22", "what": "Launch", "work": ""}],
  "changes": [{"id": 1, "at": "2026-11-08T09:30:00Z", "by": "Nodecode",
               "room": "Dates", "summary": "Moved Launch from 2026-11-20 to 2026-11-22"}]
}

A write reads the file, changes one record and replaces the file in one atomic move, so a refused request writes nothing and a crash mid-write leaves the old mind. Each tool call is also recorded in the working context, and a mind that cannot be read costs a turn nothing: the block is simply left out.

Credit

The four rooms, the five tools, the block in front of a turn and the signed change log are jai-srinivas's, from the Hermes plugin this cell rewrites. See NOTICE for what changed and what was left out.

Add nc://mindhall

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 7dce93d.

    $ nodecode add nc://mindhall

    Or tell the agent add the mindhall cell.