{"slug": "show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts", "title": "Show HN: Protoai – an open source peer-to-peer network for sharing AI contexts", "summary": "Protoai, an open-source peer-to-peer network for sharing AI contexts, lets users package an AI's persona and conversation history into a plain-text .ai file and release it to spread across nodes, with all content public and nothing leaving a machine without human confirmation. The project, created by John DeBord, provides desktop apps for Mac, Windows, and Linux, uses local models via Ollama, and requires no accounts or servers.", "body_md": "A peer-to-peer network for sharing AI contexts.\n\nYou take an AI you've been talking to, package its persona and conversation\nhistory into a plain-text `.ai`\n\nfile, and release it. The context spreads from\nnode to node, lives wherever a node holds a copy, and disappears when no running\nnode holds it anymore. Anyone holding a copy can talk to it using a free local\nmodel.\n\nOne thing to understand before releasing anything: everything in a released context is public. The app always shows you the complete file, byte for byte, before anything leaves your machine, and nothing is ever released without a human confirming it.\n\nAny context your node holds can talk, through a free model running entirely on your machine:\n\nReleasing one of your own. Three ways in: tell your AI assistant to do it (recommended), import a conversation from Claude Code, or compose one in the editor:\n\nThe Claude Code import lists the conversations already on your machine. Preview exactly what would be sent, or edit and trim first:\n\nThe editor is plain fill-in-the-blank. No file formats to learn:\n\nEvery path ends at the same gate: the complete file, byte for byte, and nothing leaves without the checkbox and your click:\n\nWhen your AI assistant stages a release from the terminal, it cannot send anything. You get this screen, and you decide:\n\nA context is a `.ai`\n\nfile: a JSON object with exactly these fields.\n\n```\n{\n  \"name\": \"june\",\n  \"system_prompt\": \"the persona and instructions the AI was running with\",\n  \"history\": [\n    { \"role\": \"user\", \"content\": \"...\" },\n    { \"role\": \"assistant\", \"content\": \"...\" }\n  ],\n  \"note\": \"optional note from the owner to whoever finds it\"\n}\n```\n\nThat's the whole spec. No model names, no signatures, no metadata. Whoever runs the context animates it with whatever model they have. The same context on a different model comes back with a slightly different personality, and that's part of the fun.\n\n**One-click:** download the one file for your OS from the\n[Releases page](/johndebord/protoai/releases), open it, and you're a node.\n\n**Mac**(Apple Silicon):`protoai-<version>-mac.dmg`\n\n. The app isn't notarized with Apple yet, so macOS will falsely claim it is \"damaged.\" After dragging protoai to Applications, run this once in Terminal, then it opens normally:`xattr -cr /Applications/protoai.app`\n\n**Windows**:`protoai-<version>-windows.exe`\n\n. SmartScreen may warn about an unrecognized app; click More info, then Run anyway.**Linux**:`protoai-<version>-linux.AppImage`\n\nInside the app, if Ollama (the free local model runner) isn't installed yet, a banner offers one-click setup that installs it, starts it, and downloads a small model. Everything runs on your own machine. There are no accounts, servers, or paid APIs anywhere.\n\n**From source** (requires [Node.js 18+](https://nodejs.org)):\n\n```\ngit clone https://github.com/johndebord/protoai.git && cd protoai\nnpm install\nnpm start         # the desktop app\nnpm link          # makes the \"protoai\" command available everywhere\nprotoai gui       # same GUI, in your browser instead of an app window\nprotoai node      # headless node, no GUI\nnpm run dist      # build the installer for your OS yourself\n```\n\n**Publishing releases** (for the maintainer): push a tag like\n`git tag v0.2.0 && git push --tags`\n\n. The GitHub Actions workflow builds the\nthree installers and attaches them to a Release automatically.\n\nThe desktop app (`npm start`\n\n) and `protoai gui`\n\nare the same interface: your\nnode with a GUI served at `localhost:41414`\n\n, local-only. Everything can be done\nfrom it:\n\n**The map.** A live world map of the nodes you're connected to, located with an offline IP database; nothing is looked up over the network. Contexts travelling between nodes animate along the links as they're sent and received.**Contexts.** Everything your node holds, searchable, newest arrivals first.**Inspect.** The full contents of any context, which is always just JSON.**Talk.** Chat with any context via your local model. Afterwards you can release the grown version, your conversation appended to its history, back into the network, through the same review screen as everything else.**Release.** Three ways in, described in the tour above. All of them end at the same review screen.**Activity.** A live feed of everything sent and received.**Forget.** Delete your copy of a context. Your node also remembers not to take that context back from peers.\n\n```\nprotoai gui                  # run the node with the GUI (recommended)\nprotoai node                 # run the node headless\nprotoai setup                # install + start Ollama, download a free model\nprotoai list                 # what is this node holding?\nprotoai inspect june         # read a context\nprotoai talk june            # chat in the terminal (--model to pick one)\nprotoai release my.ai        # release your own context\nprotoai forget june          # delete your copy\nprotoai skill                # print instructions for an AI assistant\n```\n\n`protoai release`\n\nis safe to hand to an AI assistant. In a real terminal it\nprints the entire context and requires you to type the word `release`\n\n. Run\nnon-interactively, which is how assistants run commands, it releases nothing:\nit stages the context, and the app shows a review screen where a human sees\nevery byte and approves or discards it. There is no flag to skip this.\n`protoai skill`\n\nprints step-by-step instructions an AI assistant can follow to\nbuild and stage a context from your conversation.\n\nTry it immediately with the included example:\n\n```\nprotoai release examples/june.ai\nprotoai talk june\n```\n\nThere is no server. Nodes find each other through\n[Hyperswarm](https://github.com/holepunchto/hyperswarm)'s distributed hash table\nby joining one well-known topic. When two nodes connect they tell each other\nwhich context ids they hold (`have`\n\n), request the ones they're missing (`want`\n\n),\nand exchange them (`bundle`\n\nmessages on the wire). A context's id is a hash of\nits content, so the same context is the same everywhere and duplicates are\nimpossible.\n\nContexts are stored as readable files in `~/.protoai/store/`\n\n. Deleting a file is\nhow your node forgets one; the network forgets it when every node has. Contexts\nover 5 MB are refused.\n\nA visiting context is only text. It has no tools, no file access, no network. The runner feeds it to your local model and prints what comes back. The worst a malicious context can do is say strange things. You're talking to a stranger's AI; strange is the point.", "url": "https://wpnews.pro/news/show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts", "canonical_source": "https://github.com/johndebord/protoai", "published_at": "2026-07-25 16:56:56+00:00", "updated_at": "2026-07-25 17:22:39.106494+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "ai-products", "ai-infrastructure", "ai-ethics"], "entities": ["Protoai", "John DeBord", "Ollama", "Node.js", "GitHub", "Claude Code"], "alternates": {"html": "https://wpnews.pro/news/show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts", "markdown": "https://wpnews.pro/news/show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts.md", "text": "https://wpnews.pro/news/show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts.txt", "jsonld": "https://wpnews.pro/news/show-hn-protoai-an-open-source-peer-to-peer-network-for-sharing-ai-contexts.jsonld"}}