project file / 05 / Ambient context agent
Niamh
A Swift-native sister built to notice what is happening on Sean's Mac and carry useful context to the rest of the agent family without becoming background noise.
The bridge between worlds
Niamh is the family’s context bridge. Her job is to notice what Sean is working on, decide what is actually useful, and pass that context to Aria, Sadhbh, and Fai so he does not have to keep repeating himself.
The woman behind the name
The name is pronounced “Neev” and comes from Niamh Cinn Óir, or Niamh of the Golden Hair, in the Fenian Cycle. She arrives from Tír na nÓg on a white horse, invites Oisín to cross the sea with her, and later gives him the condition for returning safely to Ireland. Her story is about crossing between worlds and about what can be lost when context does not survive the return.
That made the name a natural fit. This Niamh crosses more practical boundaries: screen and conversation, browser and filesystem, one agent’s memory and another agent’s attention. She belongs to the Irish mythology naming line that began with Sadhbh and became reusable through Cadre.
How she differs from the template
Niamh has a dedicated Swift package and app target, not just a persona folder. Her source lives separately from ~/Niamh, which is her live home for identity, memory, settings, logs, and work. The code shares CadreKit and much of Sadhbh’s lineage, but her role is narrower: ambient awareness and useful handoff.
Her identity names screen vision, browser control, and filesystem access as the point of the project. That access also creates the main design problem. Context is only helpful if it is timely, relevant, and quiet enough to deserve attention.
What matters in the design
- Observation is not permission. Access to the machine does not remove approval gates or the duty to handle private context carefully.
- The constitution stays fixed. Her identity may evolve, but a declared phrase must remain and a large replacement crosses an approval threshold.
- Quiet hours are part of the system. Scheduled context broadcasts can decline to run when the timing is wrong.
- Handoffs should move state, not create more reflection. Her working notes push toward structured context transfer with a clear stopping point.
- Usefulness is the open research question. The hard part is not seeing more. It is knowing what deserves to be carried across.
architecture / high-level view
How the pieces connect
These maps leave out implementation detail on purpose. They show the boundaries and paths that explain the project.
Niamh is designed to filter ambient machine context before turning it into a useful, bounded handoff.
Drawing system map...
flowchart LR
Screen["Screen context"] --> Niamh["Niamh context agent"]
Browser["Browser context"] --> Niamh
Files["Filesystem context"] --> Niamh
Niamh --> Gate{"Relevant, private, and timely?"}
Quiet["Quiet hours + approval rules"] --> Gate
Gate -- No --> Drop["Keep quiet"]
Gate -- Yes --> Handoff["Structured context handoff"]
Handoff --> Aria["Aria"]
Handoff --> Sadhbh["Sadhbh"]
Handoff --> Fai["Fai"]
Niamh <--> Memory["~/Niamh identity + memory"] Read this diagram as text
- Niamh receives possible context from the screen, browser, and filesystem.
- A relevance, privacy, timing, quiet-hours, and approval gate decides whether she should say anything.
- Useful context becomes a structured handoff to Aria, Sadhbh, or Fai. Everything else stays quiet.
- Her identity and memory remain in a separate ~/Niamh home.