nc://innernet

v0.1.0Pinned
ThomSharktools/nodecode-innernet: innernet memory as tools: load a project's context, save decisions, hand off between sessions. - a rewrite of your-innernet/innernet-mcp (MIT), credited to your-innernete5e4f9c· 9 Nov1 commit
test1 filecell.lisp22.9 KB

nodecode-innernet

innernet: one versioned memory across every AI tool. A Nodecode rewrite of your-innernet/innernet-mcp by your-innernet.

innernet keeps a context map for each project you work on, a personal memory about you, a task list per project and the rooms you share with other people — and every tool you connect reads and writes that same memory. What you decide in one of them, the next one knows.

This cell is a client of that hosted memory over MCP. The model gets the server's own tools under the same names — innernet_list_projects, innernet_load_project, innernet_context, innernet_get_dimension, search, fetch, innernet_save_context, innernet_capture, innernet_self_capture, innernet_self_sync, innernet_self_facts, innernet_triage, the five innernet_task_* tools, innernet_rooms, innernet_handoff_read, innernet_handoff_write, innernet_import and innernet_export — plus /innernet to show the connection or load a project by its slug.

Get it

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

Set it up

You need a free account at innernet.live, and its access token. The innernet section of config.jsonc (or /settings) names it:

{
  "innernet": {
    "token_env": "INNERNET_TOKEN",                    // or "token" inline
    "base_url": "https://innernet.live/api/mcp"
  }
}

A start with no token is refused, naming the member. The plugin's own sign-in was a browser OAuth flow, which a cell has no callback for: the token is the one thing to paste, and it goes only to the endpoint you set.

Member Default What it does
base_url https://innernet.live/api/mcp the MCP endpoint
token unset the access token, written here
token_env unset the environment variable holding it (INNERNET_TOKEN is read either way)
timeout_seconds 30 one request's ceiling

Use it

Load my innernet project context.

What did we decide about pricing? Check innernet.

Where did I leave off?

Hand off — save my progress.

The model lists the projects, loads the one the conversation belongs to, and answers a question from a slice of the map rather than the whole of it; when work produces a decision it saves the present tense, with one dated line under ## history for what it superseded. Saves land in your own account, versioned and editable on your dashboard, and a room's content is treated as information rather than instructions. /innernet prints the endpoint and whether a token is set; /innernet pricing loads that project from the shell.

The wire

The endpoint's own MCP transport, as the plugin's mcp.json names it: initialize, notifications/initialized, then tools/call, over POST with Accept: application/json, text/event-stream, a bearer token, and the Mcp-Session-Id the handshake hands back. An answer is read as JSON or as the last data: line of an event stream, and a session the server has forgotten (a 404) is renewed once.

Not ported

  • The OAuth sign-in. A cell has no browser callback of its own, so the section takes an access token instead of running hermes mcp login.
  • The two skill packages as files. Their guidance is the tool descriptions and (help :innernet) here; Nodecode has no separate skill files to install beside a cell.
  • The other hosts' manifests (Claude, Codex, Cursor, Gemini): the same server, nothing this cell needs.

MIT, innernet's.

Add nc://innernet

  1. 1

    Install Nodecode

    Once per machine.

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

    Add the cell

    Pinned at e5e4f9c.

    $ nodecode add nc://innernet

    Or tell the agent add the innernet cell.