00
Bombadil
Sibling · Relay Agent
Early build · Bombadil-iOS 0.1.0 · App Store registration pending

An agent surface for AiMANAC.

Bombadil is the companion app for running an agent runtime alongside AiMANAC. You ask AiMANAC to do something agent-shaped — read a skill, remember a fact, run a flow — and the work lands on the Bombadil device. Today your backend passes a structured work order to the phone; the next AiMANAC update tightens that into a live session so results feel instant.

Power AiMANAC Owner Multi-Device Agent User
01
What It Does
Agent Tools, From The Phone

Bombadil holds an agent runtime — skills, memory, providers, sessions, flows. AiMANAC stays the main console; Bombadil handles the things you'd otherwise run from a desktop agent. The tool list is grouped into sixteen families with twenty-eight individual actions; each one is policy-gated, audited, and asks for re-checks before it writes anything sensitive.

SkillReaddiscover skills
SkillWriteinstall / remove
MemoryReadquery memory
MemoryWritepersist memory
MemoryForgetdelete memory
ProviderConfigprovider keys
SessionReadsession history
SessionWritenew sessions
ContextPackpack composition
ToolListlist tools
ToolInvokecall tools
PluginReadlist plugins
PluginWriteinstall plugins
IstariReadread flows
IstariRunrun flows
Killkill switch

Eight actions are Owner-only; the rest can run for any signed-in principal in v1. Owner-only coverage and “never log this field” rules are enforced in automated tests so the shipped app cannot silently widen access.

02
How A Call Travels
Today vs. After The Next Update

Today. When AiMANAC dispatches a Bombadil tool, the backend hands off a structured envelope and tells the caller "waiting on the device." That envelope is the work order. If Bombadil is installed and paired, it picks the order up and runs it. If it's not, you'll see the envelope but no result.

After the next AiMANAC update. The backend will hand the work directly to the Bombadil device over an open session and replay the result back to AiMANAC. Same tool calls, no envelope hand-off — the user experience changes from "the agent will get to it" to "the agent did it."

The envelope shape below matches the frozen v1 contract in bombadil-rs (docs/RELAY_ENVELOPE_V1.md): the payload lives under bombadilRelay, and tool is always the helm_bombadil_* name HELM dispatched — not a shortened alias. Customers can still read this as “AiMANAC queued work on the phone.”

v1.1+ (reserved): intentId and inputDigest may appear on the relay object once the bridge assigns correlation / digest audit — they are not required in v1.

{ "bombadilRelay": { "version": 1, "tool": "helm_bombadil_skill_list", "userId": "uuid-of-principal", "input": {}, "status": "awaiting_device", "message": "human-readable; not a security boundary" } }
03
Three Modes
Set on your backend when Bombadil is enabled
Mode
Status
What It Means
catalog_only
catalog_only
Tools list returns; dispatches refuse. Useful for browsing available tools without a paired device.
relay
awaiting_device
Default. Dispatches return the relay envelope; device executes. Today's contract.
device_execution
device_execution_required
Reserved for the paramount live-session path: the backend forwards the raw tool request and streams the phone’s answer back to AiMANAC.
04
How It Pairs With AiMANAC
URL Scheme · Backend Mediation

Launcher. AiMANAC’s MCP cockpit includes an “Open Bombadil” row. If the app isn’t installed, AiMANAC shows an honest fallback sheet that explains relay vs. future live execution, trust expectations, and version pairing.

Trust. Registering a custom URL scheme does not prove who published the app. Only builds signed by the same Everplay team as AiMANAC are treated as integrated; the fallback sheet spells that out so a random store clone cannot impersonate the lane.

Version coupling. AiMANAC 312 and newer speak relay contract version: 1 with the matching Bombadil build. If the pair disagrees, execution stops instead of returning a guessed answer.

Audit hygiene. Dispatch logs store redacted request bodies — depth-limited JSON with an allowlist for fields that must never hit the database in clear text (API keys, tokens, and similar secrets).

05
Identity & Versions
Verbatim From The App
Display nameBombadil
Bundle IDnet.llmtech.bombadil
URL schemebombadil://
PricingPlanned $1 one-time
Relay contractversion: 1
iOS deployment target17.0
Build0.1.0 (1)
Min AiMANAC build312+ (relay pairing)
06
Quick Setup
Five Steps
  1. Have AiMANAC ≥ 312 installed. Earlier builds do not speak the relay contract.
  2. Wait for App Store registration. Bombadil is in early build; the public listing is still pending, so AiMANAC keeps a placeholder ID until Apple assigns the real one.
  3. Install Bombadil when listed. Separate App Store SKU, planned $1 one-time.
  4. Open AiMANAC → MCP cockpit → Bombadil row. The relay status prints right under the launcher so you see the contract before tapping.
  5. Tap "Open Bombadil". First launch reads the shared trust-mesh keychain. From there, dispatches from AiMANAC return relay envelopes that the device executes.

On-device agent only. No bombadil-server image — deploy aimanac-server when you need HELM MCP and relay routing (/setup/llm/).

07
Talk To The Family
Discord · Relay Operators

Bombadil is the on-device relay agent. Discord is where operators share relay envelope patterns, debug skill registration, and ask about the AiMANAC pairing contract.

Support

Skill not registering, relay envelope rejected by AiMANAC, session memory wiped unexpectedly, provider pairing not handshaking? Ask in Discord.

Invite link pending

Feedback

Skill packaging suggestions, memory model tweaks, session-handoff workflows — feedback goes through Discord, openly.

Invite link pending

Direct contact until the invite link lands: info@llmtech.net.

08
Cross-Links
See Also