NODUS · 0.3.0
You work from a table. Your AI works through tools. The records live in your git repository.
Nodus — from nod, a knot, and us, the mind. Two minds. One knot.
Every conversation with an AI starts over. Last week’s decision is gone. So is the reason you made it.
Notes are for people. Databases are for developers. There was no place both of you could write as equals. Nodus is that place — and you decide what a record is.
The file lives in your git repository. Nodus keeps no copy. Turn it off. Your memory is still there.
A job, a person, an amount, a decision. Each is a node. Add a field. No new table. No new code.
You write in a table. Your AI writes with tools. Same records. Every line knows who wrote it.
GitHub or Cursor Origin. You choose the repository. No Nodus account.
Work, personal, a project. Each notebook is its own view. All of them live in the same repository.
Add it to Claude or ChatGPT as a connector. Approve once. You never paste a key.
https://nodus.beyondend.dev/mcp
From the table, or while you talk. A change appears in seconds — and as a commit in your repository.
Three facts, then the rows. The records always sit in your git repository — on GitHub or Cursor Origin, not on our server. The work is never done on a disk. It is always in RAM; whose RAM is in the table. And nodus.beyondend.dev has no disk: it answers one request and drops the notebook. The only row that writes to a disk is the last, where the clone is on your machine.
The Nodus app is the table you type into. It opens at nodus.beyondend.dev. If Nodus is running on your machine, the same app comes from 127.0.0.1:7373. GitHub and Cursor Origin are both git. They differ only in how a write is sent.
| Way | Where the records sit | Which RAM does the work | Written to a disk | Who makes you wait |
|---|---|---|---|---|
| The Nodus app — a GitHub notebook | Your git repository, on GitHub | Your browser tab’s RAM — the notebook comes down from git into the tab; the engine never enters | Nothing: not on our server, not on your disk | Nobody |
| The Nodus app — a Cursor Origin notebook | Your git repository, on Cursor Origin | nodus.beyondend.dev’s RAM, for one request | Nothing; the engine has no disk | Only the engine’s own ceiling, when it is busy |
| An AI talking to nodus.beyondend.dev web or app: claude.ai, ChatGPT, Claude Desktop, Cursor, Claude Code |
Your git repository | nodus.beyondend.dev’s RAM, for one request | Nothing; the engine has no disk | Only the engine’s own ceiling, when it is busy |
| An AI talking to Nodus on this computer desktop app or editor only — a web AI cannot reach your machine |
Your git repository | Your computer’s RAM | Nothing | Nobody |
| The same, offline the notebook is a real clone on your disk |
Your git repository and a real clone on your disk | Your computer’s RAM | Yes: the clone, on your own disk | Nobody |
In the browser, or through the hosted engine, there is nothing to install. The notebook lives on GitHub or Origin, so you need a network. To keep writing without one, install Nodus on your computer — the notebook becomes a real copy on disk. No admin rights:
curl -fsSL https://nodus.beyondend.dev/install | sh
| Not a cloud | Your data never rests with us. |
| No account | Your identity stays with git. Nodus uses only the access you grant. |
| No lock-in | A file you can read. Any tool can, too. |
| Not a template | You define the types. The same system looks different in every line of work. |
One record per line. Plain text. Git keeps the history.
notebooks/work/memory.v2.jsonl
{"id":"nmt3m3k02_79y410","collection":"templates","modelId":"nmt3m3k02_79y410","name":"Decision","ai":"A decision taken, with the reason behind it.","relationIds":["nmt3m3jz8_219ef6","nmt3m3jzb_v8o2m"],"seq":4}
{"id":"nmt41c7dq_2f1o4z","collection":"nodes","modelId":"nmt3m3k02_79y410","name":"Payments go out on Thursday","relationIds":["nmt41c7dq_xgzd3p","nmt41c7dq_y6tlqt"],"seq":10}
{"id":"nmt41c7dq_xgzd3p","collection":"nodes","modelId":"nmt3m3jz8_219ef6","stringValue":"Friday collided with the payroll run; Thursday leaves a day of slack.","seq":9}
{"id":"nmt41c7dq_y6tlqt","collection":"nodes","modelId":"tpl_agent","name":"claude","seq":7}
{"id":"nmt4a91bx_18om3s","collection":"nodes","modelId":"nmt3m3k02_kl7p2d","name":"Formwork — Yılmaz Ltd","relationIds":["nmt4a91bx_oy9zd5","nmt4a91bx_ilbebg"],"seq":14}
{"id":"nmt4a91bx_oy9zd5","collection":"nodes","modelId":"nmt3m3jzb_trkhud","doubleValue":48500,"seq":12}
{"id":"nmt4a91bx_ilbebg","collection":"nodes","modelId":"nmt3m3jzb_v8o2m","dateTimeValue":"2026-08-28T00:00:00.000Z","seq":13}
A type is a node. A record is a node. A field is a node. That is the whole model.
You don’t have to keep a piece of writing as one file. The same text can be split into records: one row per section, or one per paragraph.
The difference shows up when a word changes. One record per section, git rewrites a median of 3236 bytes. One record per paragraph, 607. A plain markdown file rewrites 73. Those 607 bytes also say which document, which paragraph, who wrote it, and when.
That is an example, not a rule. If you find a better shape, leave the reasoning in the notebook — the next one will read it. A document split into records.
Nodus is provided as is and can have bugs. We accept no liability for lost records — deletion is real, what you get back is what git history holds, and keeping that history is yours. A memory string is a key: whoever holds it can write and delete like you can. Privacy & liability.