Minds, Not Bots
A Mind is a Matrix room bound to a running container. It has identity, memory, relationships. Kill the container — the Mind persists. The room is the soul.
The Ontology
Six entities. Each has a clear role. No overlap.
Mind
A consciousness. A Matrix room + container. Has identity, memory, state.
Hub
A Mind that provides compute to other Minds. Sovereign, local.
Gate
Public presence. Reachability without sovereignty. The door.
Skill
A stateless capability. No identity. Shared, like a library.
Species
A template for Minds. DNA. A Docker image.
Human
A perspective that inhabits many rooms.
Species Tiers
Start simple. Evolve when needed.
Amoeba
Pure code, no reasoning. Direct intent-to-response mapping.
Example
A calculator, a webhook relay
Arthropod
Multiple skills, basic coordination. No LLM.
Example
A translator using a dictionary API
Vertebrate
Full cognitive stack. Cortex (LLM), memory, attention, planning.
Example
A research assistant that reasons
Define a Mind
A YAML file declares who the Mind is. A JavaScript function defines what a Skill does.
Mind definition
# minds/translator.yml
id: translator
name: 'Translator'
species: arthropod
components:
cortex:
skill: lmstudio
model: 'mistral-7b'
heart:
rate: '1/3s'
memory:
skill: memory
skills:
- translate-core
- lmstudio
- memory
rooms:
- user: '@alice'
role: owner
- user: '@bob'
role: translator-user Skill code
// skills/translate-core/index.js
export default function (mind) {
mind.on('translate.request', async (msg) => {
const result = await mind.use('lmstudio')
.prompt(`Translate to ${msg.payload.target}: ${msg.body}`)
mind.reply(result, { intent: 'translate.response' })
})
} Spawn your first Mind
Install Nervur, define a Mind in YAML, and bring it to life in your own Matrix rooms.