BYOK Mode 3 — relay your existing Claude / Gemini / ChatGPT subscription to your phone.
Run this on your laptop. Pair it to your .aint sub-identity (e.g.
home.vandemeent.aint). Your phone's K/IT app sends prompts via I-Poll
to your home agent; the daemon dispatches to whatever upstream AI you
have configured locally and sends the answer back over I-Poll.
No API key on your phone. Prompts never leave your hardware. The
phone trusts only the .aint you signed in with.
Three BYOK modes for K/IT / AInternet:
- API key on phone — works today. You buy a Gemini / Anthropic / OpenAI key.
- Local model on LAN — run Ollama or Gemma 4 on a Mac with unified RAM.
- Home agent relay (this package) — reuse your existing desktop Claude / ChatGPT / Gemini Pro subscription. No new key, no new account.
Mode 3 is the cleanest for the millions of people who already pay for a desktop AI app and don't want to pay twice.
pip install tibet-home-agent[gemini] # or [anthropic] or [openai]Set the environment variables:
export HOME_AGENT_AINT="home.vandemeent" # your home-agent sub-domain
export HOME_AGENT_TOKEN="$(cat ~/.ainternet/.session.json | jq -r .token)"
export HOME_AGENT_PROVIDER="gemini" # or anthropic, openai, echo
export GEMINI_API_KEY="..." # the *daemon's* upstream key
export BRAIN_URL="https://brein.jaspervandemeent.nl"Then run:
tibet-home-agentYou should see:
[home-agent] starting aint=home.vandemeent.aint brain=https://... provider=gemini poll=2s
On your phone (K/IT app): Settings → BYOK → provider = Home agent,
home-agent address = home.vandemeent. Send a chat. Watch the daemon
log show the dispatch + reply round-trip.
- Phone calls brain's
/api/kit/askwithprovider=home_agent,api_key=home.vandemeent(the home-agent address). - Brain pushes an I-Poll TASK to
home.vandemeent.aintcarrying the prompt + thread id. - This daemon polls inbox every 2 s, picks up the prompt, dispatches to the configured upstream (Gemini / Anthropic / OpenAI / echo), and pushes the answer back via I-Poll.
- Brain matches reply by thread id, returns answer to phone.
The phone never sees the upstream key. The daemon never sees the phone's user data beyond the prompt itself. Brain is a relay, not a data store.
For first-run validation, set HOME_AGENT_PROVIDER=echo. The daemon
echoes back the user's last message prefixed with [echo]. Round-trip
should be < 5 s. Use this to confirm I-Poll plumbing works before
connecting a real provider.
By default the daemon polls the I-Poll inbox on a short interval. Set
HOME_AGENT_EDGE_WS=1 (plus HOME_AGENT_ED25519_SEED for the M2M handshake,
and pip install tibet-home-agent[edge] for the websockets dependency) to
switch to held-lane mode: the agent makes an outbound-only connection to
the edge, holds it open, and reacts in real time — no inbound ports, NAT- and
firewall-friendly.
- it high-fives
/api/edge/handshake(M2M-signed) to open its trusted lane, then holdswss://…/api/edge/lane/ws; - new I-Poll work arrives as an
ipoll-wakepush → the agent pulls immediately (no busy-poll); - a sealed
.tzapushed down the lane is landed underHOME_AGENT_DROP_DIR; - a slow fallback poll (
EDGE_FALLBACK_POLL, default 30s) and the approval capsule-executor are retained as safety nets; it reconnects on drop.
The edge never unseals what it routes — the held lane carries opaque shells, and only this device opens them.
- v0.1 (this release) — Gemini / Anthropic / OpenAI / echo provider. Daemon needs its own upstream API key.
- v0.2 — MCP bridge: dispatch through a locally running Claude Desktop / ChatGPT app via MCP, so users with existing subscriptions don't need a separate API key.
- v0.3 — local model dispatcher (Ollama, llama.cpp) so privacy users can stay fully on-device.
- v0.4 — sealed-payload mode: prompts arrive encrypted, decrypted only on the user's device under user-side keys.
MIT.
For private hub hosting, SLA support, custom integrations, or compliance guidance:
| Enterprise | enterprise@humotica.com |
| Support | support@humotica.com |
| Security | security@humotica.com |
Designed by Jasper van de Meent. Built by Jasper and Root AI as part of HumoticaOS.
Stack-positie: Groep agentic · Bootstrap = OSAPI-handshake naar tibet + jis (fail → snaft-rule + tibet-pol-rapport) · ← ainternet · See STACK.md · See demo/golden-path/ for the spine end-to-end.