personal memory
Separate from every project, innernet keeps one Self Map per account: atomic facts about you. The tools you rely on, how you like answers, the people you work with, when and how you work, standing instructions. Every connected AI can read the shareable part of it, so a new chat already knows how you work.
how a fact is born#
- A capture. An AI hears something durable about you and calls
innernet_self_capturewith the note, and ideallyuser_words: your own sentence, copied exactly, so the fact can be evidenced by what you said rather than the AI's summary. - The queue. Captures wait as candidates. Nothing is a fact yet.
- The fold. netti's consolidator (
innernet_self_sync, or on its own schedule) turns candidates into facts: it merges duplicates, supersedes what changed, and keeps every source a fact came from, so one fact can carry many sentences behind it. - A question, sometimes. When the consolidator can't resolve something (who someone is to you, whether a preference is standing), it asks once. On clients that support MCP elicitation the question can arrive right in your chat; otherwise it waits in your inbox.
disclosure classes#
Every fact carries one of five classes, from most to least guarded:
| class | who can read it |
|---|---|
private | you. No room or share link ever sees it; an AI tool reads it only when you allow that app, and each time is written down. |
self | you. An AI tool reads it only when you allow that app, and each time is written down. |
trusted | AI tools you have connected. The default ceiling. |
work | tools and project loads in a work context. |
public | anything you allow, including shares. |
Every app reads trusted, work and public facts; a tool can ask for less with a ceiling (innernet_self_facts { max_disclosure: "work" } returns work and public). Self and private facts reach only an app you have cleared for them, and by default no app is. Anything asked for and not cleared comes back as a withheld count, never its words, and innernet asks you. Every self or private fact that does leave is written in a ledger on your you page: which app, which tool, and when.
When disclosure is ambiguous, the fold biases toward the guarded side. You can move any fact up or down on the you page of your dashboard.
what a project load carries#
innernet_load_project and innernet_context add a personal_context slice when facts bear on the work: current facts only, confidence 0.6 or higher, in the trusted, work and public classes, at most 40. The receipt counts what was withheld (withheld_private_facts), so you can see that the gate held without seeing what it held back.
seeing and changing it#
Your dashboard's you space is the whole Self Map: every fact, its class, its sources, and where each source came from. A private fact opens on the moment it came from, labelled honestly. Edit a fact, change its class, or forget it there; or ask any connected AI to. The you space
the tools#
| tool | what it does |
|---|---|
innernet_self_capture | queue a candidate about you (dimension_hint, user_words) |
innernet_self_facts | read facts as far as you let this app read them; what isn't cleared comes back as a count |
innernet_self_status | counts: facts, pending candidates, open questions, and one opaque withheld total |
innernet_self_sync | run the fold now (can run as a long MCP task) |
innernet_triage | ask where a note belongs: about you, about the project, both, or nowhere |
innernet_forget { kind: "fact" } | forget one fact and every version of it, in two steps |