{"slug": "show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c", "title": "Show HN: Lumabri – Run large AI models across your computers and servers.Pure C", "summary": "Lumabri, a new open-source project built on the Colibri engine, lets users run large AI models across multiple computers and servers on a local network by distributing model layers rather than requiring each worker to hold a full copy of the weights. The controller, terminal interface and inference integration are written in C, with a bundled HTML/CSS/JS web page, and the tool keeps several approved models resident within explicit per-machine RAM budgets while measuring performance instead of promising faster tokens per second as devices are added. Lumabri uses fixed ports (TCP 47300 for the tracker, TCP 47301–47315 for household services, UDP 47300 for LAN discovery) and requires each participating donor to approve the plan before chat starts.", "body_md": "Lumabri runs a private inference service across your computers, powered by\n[Colibri](https://github.com/JustVugg/colibri). Choose models, select the\ncomputers that may help, and approve how their memory is used. Chat from the\nterminal or the bundled web page. The controller, terminal interface and\ninference integration are written in C; the browser uses bundled HTML/CSS/JS.\n\n**A worker does not need its own complete copy of the model.** In the resident\nSegment path, it loads the weights for its assigned layers, plus any shared\nstate required by the adapter. Conversation state stays with the nodes that\nexecute those layers. A complete source checkpoint may still live on the\nrequesting computer; distributing its weights does not duplicate it in every\nworker's RAM.\n\n- Run supported models that do not fit on one computer by sharing the work.\n- Keep several approved models resident within explicit memory budgets.\n- See computers, allocations and measured workloads in one local workspace.\n\nMore computers can add usable memory and capacity. They do not guarantee more tokens per second for each chat. Lumabri measures performance rather than promising that every additional device makes inference faster.\n\nBuild from source with a compatible Colibri checkout:\n\n```\nmake ENGINE=/path/to/colibri/c\n./lumabri\n```\n\nAfter launch, use **arrow keys and Enter**. Press **/** for workspace actions\nand **Esc** to go back. Use a terminal at least 60 columns by 28 rows.\n\n1. On one computer, open **/ → /create** . Its household service runs in the background.\n2. On your other computers, open **/ → /join** . Select the household found\non your LAN, compare its identity with**/create** on the owner computer,\nthen enter the household key. Manual address entry remains available.\nOnly share that key with your household.\n3. Open **/settings** to set the maximum RAM you offer. Choose**Share resources** on each computer that may participate.\n4. On the requesting computer, set **/settings** to the folder containing\nyour existing Colibri model directories. Set the**context tokens** for\nnew plans there too (default 512): longer conversations need more memory.\nThis setting does not resize models that are already running.\n5. Open **Your computers** . Press Enter to select donors; none is selected\nautomatically. Tab switches to**Models** .\n6. Choose a model and review its plan. Enter requests approval from the participating donors. Chat starts only after all approve and the complete chain is ready.\n\nThe creating computer saves its key and restarts its household when Lumabri\nreopens. The tracker uses **TCP 47300**, household services use **TCP\n47301–47315**, and LAN discovery uses **UDP 47300**. Restarting does not require\nopening another random port. If the fixed range is occupied, Lumabri reports\nthe conflict instead of silently choosing ports outside it.\n\nThe computers still need direct LAN connectivity. On Windows with mirrored\nWSL networking, open **/network** on the Windows computer: after your explicit\napproval and the Windows administrator prompt, it allows only those ports\nfrom the detected private subnet. The firewall stays enabled. The same action\ncan remove Lumabri's rules. Keep the `tools` folder beside the built binary.\nOther systems use their normal firewall permissions. Guest Wi-Fi isolation,\nVPN routing and WSL NAT mode can still prevent direct discovery or connections;\nthe helper does not reconfigure those networks. If your LAN address changes,\nuse **/join** to rediscover the household rather than guessing an address.\n\nFor an advanced multi-interface setup (for example, a VPN or Tailscale), start\nthe household owner with `LUMABRI_ADVERTISE=100.101.102.103 ./lumabri`, replacing\nthe example with that computer's reachable IPv4 address. Use the same override\non later starts; Lumabri saves the announced tracker endpoint in `home.conf`.\nJoin that exact endpoint on the other computers. The value is an IPv4 address\nwithout a port, not a hostname. This does not configure VPNs or firewall rules.\nAn address mismatch is rejected explicitly; it does not bypass household\nauthentication or donor approval. Reopened TUIs restore their saved household key.\n\nApple Terminal uses a compatible 256-colour palette with a contrasting\nselection background. Other terminals use detected colour support. For\ndiagnostics, `LUMABRI_COLOR=16`, `256`, `truecolor` or `none` overrides detection;\n`NO_COLOR=1` disables the canvas colours. Normal use needs no colour command.\n\nThe catalogue reads the model folders and the household inventory. It shows\noffered RAM, detected hardware, placement and missing resources. **Not\ncalibrated** means there is no matching speed measurement—not zero speed.\nA detected GPU is not a promise that this execution path uses it.\n\nFor an optional short measurement, select your computers and model, open\n**/ actions → /calibrate**, then review and confirm. Donors still approve the\nplan. Lumabri generates at most 8 test tokens, with a 20-second inference\nlimit, saves the observed speed and releases the plan. Transferring and\nloading missing weights happens first and can take much longer. This is a\nshort-run indication, not a guarantee for long conversations.\n\nEach participating computer can retain independently budgeted **CPU, resident\nSegment allocations**, with verified model sizing and source weights on the\nrequesting computer. It\ndistributes contiguous layer ranges, not isolated experts. Each donor keeps\nthe state for its layers; the chosen chat host receives the conversation text.\nThe chat connection itself does not mount or download a checkpoint.\nUp to four model allocations can coexist on one donor within its total budget;\neach plan explicitly reserves 1–8 isolated conversation slots. Compute uses\nbounded queues, not a promise that every slot runs at the single-user speed.\nExhausted capacity returns `BUSY` rather than replacing a running model.\nAn ordinary household plan does not automatically replace a lost donor.\nFor managed API models, opt-in [replica policies](https://github.com/JustVugg/lumabri/blob/main/docs/ELASTIC_REPLICAS.md)\ncan restore capacity within approved limits after repeated availability\nfailures. Preparation still requires donor permission and spare capacity;\nthis does not promise an uninterrupted response.\nThe web chat can wait up to two minutes for an approved replacement and replay\nan interrupted response, checking the text already shown before continuing.\nStop cancels the wait; insufficient capacity preserves an incomplete answer.\n\nThe donor queries its installed Segment runtime before sharing. A runtime built without OpenMP uses one execution thread; CPU core count is not a promise of engine parallelism. The default system RAM reserve is one quarter of physical RAM, bounded to 1–4 GiB (2 GiB on an 8 GiB computer). The sharing limit is an additional cap, not permission to consume the system reserve.\n\nAdding computers can make a model fit when it would not fit on one machine. It does not automatically make each chat faster.\n\nA request shows the model, layer range, RAM budget, disk headroom and whether\nthe computer also hosts chat. **Decline is selected initially.** Move to\nAccept and press Enter only when you agree.\n\nNo model is loaded until every participating donor accepts. Rejection or\ncancellation during preparation releases incomplete allocations. **Esc closes\nthe view, not the service.** Approved resident weights survive closing chat or\nthe TUI. In Share resources, **x** unloads the model and **s** stops sharing.\n**Resident models** lists your saved plans: **r** checks every approved donor,\nEnter opens a conversation, and **x** asks for confirmation before unloading.\nA saved plan is not presented as live until its donors confirm it.\n\nUse **/service** to inspect or explicitly stop local services. Restarting the\nmanager with `lumabri service restart` leaves live allocation keepers running;\nit never replays a saved approval. See [service lifecycle](https://github.com/JustVugg/lumabri/blob/main/docs/HOUSEHOLD_SERVICE.md)\nfor restart behavior and current limits.\n\nInside chat, your messages and the streamed answers stay in the transcript.\nType **/** for command suggestions, use arrows to choose and Tab to complete.\n**/help**, **/debug**, **/reset** and **/quit** provide help, diagnostics, a new\nconversation and exit.\n\nPrepared resident models are also available through the authenticated local\nAPI and its bundled chat page. An operator creates a user token, grants it\nspecific models or allocations and runs `lumabri api start`; open the printed local URL.\nThe page provides model selection, streaming, Stop, collapsible private\nhistory and export. No separate web server or browser-side AI engine is needed.\nSee [setup, limits and privacy](https://github.com/JustVugg/lumabri/blob/main/docs/RESIDENT_API.md). The default endpoint is\nloopback-only: do not expose plain HTTP directly. For other authorized\ncomputers, use the explicit [HTTPS reverse-proxy setup](https://github.com/JustVugg/lumabri/blob/main/docs/HTTPS_INGRESS.md).\n\n**Computers & models** shows resource reports, resident allocation references,\nmodel routes and gateway activity. Explicit management permission adds model\npreparation, donor approval requests, replica policies, draining and release.\nRead-only operators cannot change allocations.\n\n**Measure & compare** runs a bounded workload on models already approved and\nloaded. Choose allocations, client count and rounds; then check first-text and\ntoken-gap limits. A changed configuration makes old evidence unusable. Applying\na measured plan requires a separate confirmation and replaces future-turn\nrouting atomically. It does not unload weights or shut down computers.\n\nThese are screenshots of the compiled web interface. The chat text is an illustrative example, not a model-quality benchmark. The comparison comes from a real reduced-OLMoE loopback integration run; its machine prices are test inputs, not cloud bills, demonstrated savings or production capacity figures. Browser history is private between API users, but the service operator and inference computers are trusted: this is not end-to-end encryption from them.\n\nHousehold chat also shows the approved layer allocation. **/plan** displays\neach compute donor, its layer range, reserved RAM and the Edge/chat host.\n**/experts** queries activity on the same household tracker. Serving checkpoint\nfiles is not the same as executing model layers; a chat process runs no layers,\neven when a separate approved donor runs on that computer. The allocation is\na READY-time snapshot, not a live utilization or speed measurement.\n\n- Linux-environment build with warnings treated as errors.\n- A real encrypted tracker, two donor TUIs, Colibri Segment engines and hosted generation using a tiny synthetic OLMoE checkpoint on loopback.\n- Arrow/Enter navigation, all-party approval, rejection, slash completion, terminal restoration and resource release.\n- Terminal images are frames from that integration test, not performance claims for a large model or a multi-computer LAN.\n- The browser capacity path has been exercised with two real reduced OLMoE models: measure, compare, confirm routing, then chat through both models. Cancellation, authorization, stale measurements and changed model revisions have separate regression checks.\n\nNative macOS Intel and Apple Silicon CI covers the real Tiny household flow. A user-operated Windows/WSL-to-macOS 12.6 Intel trial also completed two Tiny responses with all model computation on the Mac and source weights on the PC. This is a smoke test, not a performance or large-model certification.\n\n**Not yet certified:** general physical-LAN reliability, native Windows,\nGPU household execution, all model families,\nmulti-session household use, or transparent recovery after losing a donor.\nWSL testing is not native Windows certification.\n\nAdapter registration is broader than tested household execution. A checkpoint appearing in the catalogue does not make its sizing or backend supported. There are no promised tok/s or automatic “best model” recommendations.\n\nBuild the complete runtime with `make household ENGINE=/path/to/colibri/c`.\nBuilding only `lumabri` does not install the model services. macOS builds use\nHomebrew `libomp` when available and work single-threaded without it. Changing\nOpenMP flags invalidates the generated engine build automatically. CI pins\nColibri to **v1.12.1**, commit\n`ce370e87d7b623d7759b52ec2007d75fc5b0e87e`, for reproducibility.\nUse that revision for local builds too. The eight upstream distributed adapters are\nGLM, GLM5.3, Inkling, Kimi, OLMoE, Qwen3.6, Qwen3.8 and DeepSeek V4.\nLumabri also provides a [resident DeepSeek V4.1 text CPU adapter](https://github.com/JustVugg/lumabri/blob/main/docs/DEEPSEEK_V41.md),\nincluding Engram and cross-layer state. Other standalone engines added by\nColibri are not automatically clusterable: each needs a verified adapter.\n\nDiscovery and outbound reporting do not prove inbound connectivity. Before\nindexing, Lumabri checks each selected donor's address and identity. The\nhousehold tracker runs independently of the owner's window. Allow the installed\n`lumabri` and `segment_node` executables through the donor's application\nfirewall rather than disabling the firewall. Rebuilding an unsigned executable\nmay require reviewing its application permission again.\n\n```\nmake test ENGINE=/path/to/colibri/c\npython3 tests/integration/home_flow_test.py --models-dir /path/to/tiny-model-folder\n```\n\nThe second command starts a loopback integration test with real engines; it requires a compatible small OLMoE checkpoint. Normal household use stays in the TUI.\n\nSee [repository layout](https://github.com/JustVugg/lumabri/blob/main/docs/REPOSITORY.md), [Segment engineering](https://github.com/JustVugg/lumabri/blob/main/SEGMENT_DIRECT.md)\nand [release checks](https://github.com/JustVugg/lumabri/blob/main/PRODUCTION.md) for developer details. Expert/Hybrid,\npublic-network protocols and advanced CLI tools remain available for\ndevelopment; they are not extra steps in the household interface.", "url": "https://wpnews.pro/news/show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c", "canonical_source": "https://github.com/JustVugg/lumabri/blob/main/README.md", "published_at": "2026-10-22 12:30:35+00:00", "updated_at": "2026-10-22 12:40:18.252326+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-infrastructure", "ai-tools", "developer-tools"], "entities": ["Lumabri", "Colibri", "JustVugg", "Tailscale", "WSL"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c", "markdown": "https://wpnews.pro/news/show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c.md", "text": "https://wpnews.pro/news/show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c.txt", "jsonld": "https://wpnews.pro/news/show-hn-lumabri-run-large-ai-models-across-your-computers-and-servers-pure-c.jsonld"}}