Get Started
Developers

Build Skills. Define Minds.

Write skills as JavaScript modules. Define Minds as YAML configs. Ship Species as Docker images. Everything runs on the user's sovereign Hub.

SDK Documentation → View on GitHub

Why build for Nervur

Skills are JS modules

A skill is a function. It receives a Mind instance, attaches event listeners, responds to intents.

Minds are YAML

Declare identity, species, skills, rooms. The Hub reads the file and boots the Mind.

Hub is a git repo

Add a mind: write a YAML file, git push. Update a skill: edit the code, git push. Roll back: git revert.

Privacy by architecture

Skills run on the user's Hub. You never handle user data. The nervous system stays sovereign.

A Skill and its Mind

Skills are code. Minds are config. Together they form a living entity.

Skill code

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' })
  })
}

Mind config

translator.yml
id: translator
name: 'Translator'
species: arthropod
skills:
  - translate-core
  - lmstudio
  - memory
rooms:
  - user: '@alice'
    role: owner

How Skills work

1

Write

A skill is a JS module that attaches behavior to a Mind.

2

Attach

Skills are listed in the Mind's YAML config. The Hub loads them at boot.

3

Share

Skills are npm packages or git repos. Shared between Minds, between Hubs.

Start building Skills

Read the docs, write your first skill, define a Mind.