docs GitHub

Reference

Modules

Generated by scripts/gen-docs-reference from every module.json under core/, local/ and modules/. Do not edit this page: edit the code, then run npm run docs:ref.

Everything in Vyre is a module on one contract: core services, Harness pieces, the surfaces and whatever a user installs. Each declares what it does, watches, shows, needs and teaches in its module.json and exports start(ctx). See the module contract.

A module runs on the box (the always-on server), on local (the Mac), or on both. Shows on lists the surfaces it offers itself to: cli, deck, capsule.

ModuleFolderRuns onToolsEventsShows on
aboutcore/aboutbox, local10cli
agentscore/agentsbox, local394cli
appearancecore/appearancebox, local31cli
appmodscore/appmodsbox299cli
approvalscore/approvalsbox, local141cli
appslocal/appslocal62none
artifactscore/artifactsbox2910capsule, cli, deck
askcore/askbox42cli
assistantcore/assistantbox, local124cli
attachmentscore/attachmentsbox31none
brandcore/brandbox, local41cli
bridgescore/bridgesbox, local1716capsule, cli, deck
buildercore/builderbox10none
capsulelocal/capsulelocal62capsule, cli
chromelocal/hands-chrome-maclocal4116none
chromemodules/hands-chromebox61cli, deck
commandscore/commandsbox, local10none
commscore/commsbox62none
computercore/computerbox, local20none
computerscore/computersbox3121cli, deck
connectorscore/connectorsbox, local4014capsule, cli, deck
contextcore/contextbox, local21cli
designcore/designbox, local113cli
docscore/docsbox, local20cli
documentscore/documentsbox114none
eventscore/event-catalogbox, local10none
filescore/filesbox, local673capsule, cli, deck
flowscore/flowsbox, local490none
gatecore/gatebox, local136capsule, cli, deck
githubcore/githubbox, local359cli, deck
glasscore/glassbox138capsule, cli, deck
goalscore/goalsbox, local55capsule, cli, deck
googlecore/googlebox, local257capsule, cli, deck
handslocal/hands-maclocal124none
hands-desktopmodules/hands-desktopbox41capsule, cli, deck
harnesscore/harnessbox, local75cli
hookscore/hooksbox63capsule, cli, deck
importcore/importbox, local81cli
learncore/learnbox, local1513capsule, cli, deck
linkcore/linkbox, local3826capsule, cli, deck
mailcore/mailbox, local94capsule, deck
mcpcore/mcpbox, local139cli, deck
mcpconncore/mcpconnbox, local93cli
memorycore/memorybox, local7117capsule, cli, deck
mentionscore/mentionsbox, local30none
microsoftcore/microsoftbox, local92none
modelscore/modelsbox, local93cli
modulescore/modulelistbox, local50cli
namescore/namesbox103cli
networkcore/networkbox40capsule, cli, deck
onboardcore/onboardbox, local143none
outsidecore/outsidebox96none
plannercore/plannerbox, local168capsule, cli, deck
pluginagentcore/pluginagentbox, local94cli
presencecore/presencebox, local217capsule, cli, deck
previewscore/previewsbox236cli
projectscore/projectsbox, local314cli
providerscore/providersbox, local10cli
publishcore/publishbox2610capsule, cli, deck
pushcore/pushbox, local84capsule, cli, deck
recallcore/recallbox, local185cli
recordscore/records-toolsbox, local260cli
relaycore/relaybox, local4226capsule, cli, deck
releasescore/appsbox20cli
rolescore/rolesbox, local80cli
rulescore/rules-toolsbox, local100cli
runnercore/runnerlocal, box2410capsule, cli, deck
screenlocal/screen-maclocal20none
sessionscore/sessionsbox, local429cli
settingscore/settingsbox, local102cli, deck
sidebarcore/sidebarbox, local71cli
sideviewlocal/sideviewlocal30none
sightcore/sightbox, local51none
signincore/signinbox, local60cli
skillscore/skillsbox, local150cli
spacescore/spacesbox, local11834capsule, cli, deck
spendcore/spendbox, local42cli
statuslinecore/statuslinebox, local10cli
streamcore/streambox, local150none
suggestcore/suggestbox, local31cli
synccore/syncbox, local105capsule, cli, deck
systemcore/systembox, local52cli
taskscore/tasks-toolsbox, local90cli
teamcore/teambox, local3211cli
termcore/termbox, local43none
threadscore/switchboardbox, local7742cli
tipscore/tipsbox, local71cli
undocore/undobox, local33cli
updatecore/updatebox, local52cli
vaultcore/vaultbox, local18159capsule, cli, deck
viewscore/viewsbox, local60cli
vitalscore/vitalsbox, local52capsule, cli, deck
voicelocal/voicelocal40capsule
vyrecore/vyre-indexbox, local10cli
waitingcore/waitingbox, local21cli
watcherscore/watchersbox, local218capsule, cli, deck
winkcore/winkbox, local6836capsule, cli, deck
workcore/workbox, local780cli

about

A few lines on who the user is, cached for every Claude Code session to start with.

  • Folder: core/about, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 1
  • Emits: no events
  • Shows on: cli

agents

  • Folder: core/agents, version 0.1.0
  • Runs on: box, local
  • Requires: threads
  • Tools: 39, 11 of them only for other modules
  • Emits: 4 events
  • Shows on: cli
  • Needs daemon: credentials, agentActor
  • Needs kernel: {"actions":["records.read","records.create","records.update","records.remove","events.read"],"types":[{"name":"agent","label":"Agent","icon":"IconRobot","fields":[{"name":"name","kind":"text","label":"Name","required":true},{"name":"uid","kind":"text","label":"Id","unique":true,"hidden_from":["member","manager","temp"]},{"name":"kind","kind":"choice","label":"Kind","options":["assistant","agent"]},{"name":"owner","kind":"text","label":"Owner"},{"name":"builtin","kind":"boolean","label":"Built in"},{"name":"model","kind":"text","label":"Model"},{"name":"folder","kind":"text","label":"Folder"},{"name":"projects","kind":"text","label":"Projects"},{"name":"users","kind":"text","label":"Who may use it"},{"name":"tags","kind":"text","label":"Tags","hidden_from":["member","manager","temp"]}]}],"membership":true,"mints":[{"prefix":"agent","actions":["agents.use","agents.edit"]}]}
  • Needs vault: per-agent
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

appearance

The theme preset, the scheme and the design tokens as hub settings (ADR 0035), checked before they are saved and resolved per device for every surface.

  • Folder: core/appearance, version 0.3.0
  • Runs on: box, local
  • Requires: none
  • Tools: 3
  • Emits: 1 events
  • Shows on: cli

appmods

Apps from the open-source world as modules: a catalog of pinned apps (Documents first) that run on this server, with their screens, their API as a Connection and their events.

  • Folder: core/appmods, version 0.1.0
  • Runs on: box
  • Requires: vault
  • Tools: 29
  • Emits: 9 events
  • Listens for: vault.item-changed
  • Shows on: cli
  • Needs daemon: flowsHost
  • Needs kernel: {"actions":["drive.write","drive.read"],"prefixes":["file/Signed"]}
  • Needs tools: documents.send
  • Needs vault: per-app
  • Teaches tips: [object Object]

approvals

Approve on your phone: a session that cannot give a presence proof (the web app's software key) asks, the paired phone shows what will happen and signs it with Face ID, and the asker takes the proof back to attach to its act.

  • Folder: core/approvals, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 14, 4 of them only for other modules
  • Emits: 1 events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

apps

Drive the Mac's apps from Lumen, the CLI and the phone: Clock timers and alarms, notes, reminders, the weather, Slack and WhatsApp. Actions that send as the person go through apps.send, with a proof per call (WhatsApp, through the hands), or are held at the Gate for the person to approve (Slack).

  • Folder: local/apps, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 6
  • Emits: 2 events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

artifacts

Documents, reports, pages, dashboards, diagrams, decks and small apps your agents make, kept on your server with every version, private unless you share one.

  • Folder: core/artifacts, version 0.2.0
  • Runs on: box
  • Requires: none
  • Tools: 29, 1 of them only for other modules
  • Emits: 10 events
  • Listens for: floor.wrote, thread.deleted
  • Shows on: capsule, cli, deck
  • Needs tools: threads.get, agents.list

ask

One card for every question: several clarifications an agent needs, asked together, each with choices and room to type your own, answered once.

  • Folder: core/ask, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 4
  • Emits: 2 events
  • Shows on: cli

assistant

The one assistant's own tools: a daily digest and triage from waiting.list and agents.list, and read-only pattern-noticing from what memory already surfaces about corrections and conflicts. Off by default; the person turns the digest on.

  • Folder: core/assistant, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 12
  • Emits: 4 events
  • Shows on: cli

attachments

Files a person adds to a chat: each is kept once, sealed, in the chat's own folder, and a message carries only a reference to it.

  • Folder: core/attachments, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 3
  • Emits: 1 events
  • Shows on: no surface

brand

The space's brand profile: logo, colours, fonts, density and the company's name, legal name, address, phone and letterhead. It is the default for artifacts, previews, documents, signing pages and screens unless a document says otherwise. All of it is optional, and a colour is never used raw: it is pulled to the nearest one that keeps text readable.

  • Folder: core/brand, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 4
  • Emits: 1 events
  • Shows on: cli

bridges

Lets one Space share with another on purpose: a shared view, a reference, an event projection, a copy, a Kit or a hand-off task. Both Spaces agree, nothing sealed crosses, and either side can stop it at once.

  • Folder: core/bridges, version 0.1.0
  • Runs on: box, local
  • Requires: spaces
  • Tools: 17
  • Emits: 16 events
  • Shows on: capsule, cli, deck

builder

Builds a site for Publish. For now it turns a folder of ready files into a build, with no command run; building from a repo or running a build command needs a container builder this server does not have yet.

  • Folder: core/builder, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 1, 1 of them only for other modules
  • Emits: no events
  • Shows on: no surface

capsule

The Mac command bar: press Control twice and talk to the assistant, any agent or any session.

  • Folder: local/capsule, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 6
  • Emits: 2 events
  • Shows on: capsule, cli
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

chrome

Deep control of your own Chrome through the Vyre extension: read a page in one call, fill and act on it, run a batch with no round trips, look at DevTools (DOM, styles, scripts, console, network) and learn an app's API. The agent posts its plan first, you can interject or press Esc, credentials are masked before any model sees them, and an outward act holds at the Gate.

  • Folder: local/hands-chrome-mac, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 41, 5 of them only for other modules
  • Emits: 16 events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

chrome

  • Folder: modules/hands-chrome, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 6, 5 of them only for other modules
  • Emits: 1 events
  • Shows on: cli, deck
  • Teaches tips: [object Object], [object Object], [object Object]

commands

Every CLI verb the running modules declare, in one list any surface can draw.

  • Folder: core/commands, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 1
  • Emits: no events
  • Shows on: no surface

comms

Send an email or a text message as you, held at the Gate for your yes and logged on the client it went to.

  • Folder: core/comms, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 6, 1 of them only for other modules
  • Emits: 2 events
  • Shows on: no surface
  • Needs credentials: [object Object], [object Object]
  • Needs vault: per-connection
  • Teaches tips: [object Object]

computer

Vyre Computer: one front door over the cloud computer, your Macs and the screen engines. Computers are chosen by name; interface first, screen last.

  • Folder: core/computer, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 2
  • Emits: no events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object]

computers

  • Folder: core/computers, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 31, 8 of them only for other modules
  • Emits: 21 events
  • Shows on: cli, deck
  • Streams: glass
  • Needs vault: tailscale-agent-authkey, vyre-shared-computer-member-key

connectors

  • Folder: core/connectors, version 0.2.0
  • Runs on: box, local
  • Requires: vault, mcp
  • Tools: 40, 3 of them only for other modules
  • Emits: 14 events
  • Shows on: capsule, cli, deck
  • Needs vault: per-connection

context

Where the user is now: the project, folder, thread, app, window and page each surface last reported, merged into one answer (ADR 0036, part 2).

  • Folder: core/context, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 2
  • Emits: 1 events
  • Shows on: cli

design

The design language's keeper: the block catalogue and a screen checker for anyone who designs (the Engineer, Claude Code, Codex), the space's own screens, and the proposals to change them. An agent proposes a screen; the screen's owner sees it before and after and says yes or no.

  • Folder: core/design, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 11
  • Emits: 3 events
  • Shows on: cli

docs

The docs, found and read from inside Vyre: docs.find takes an intent in plain words and returns the best pages with what each is for and what it costs to read; docs.read returns a page, or one section of it, within a token budget. People get the human docs. A session or an agent also gets the agent docs, which are never offered to a person.

  • Folder: core/docs, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 2
  • Emits: no events
  • Shows on: cli
  • Teaches tips: [object Object], [object Object], [object Object]

documents

Make documents from Word templates and your records, deterministic, and file them. A value that is missing stops the document and names itself.

  • Folder: core/documents, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 11
  • Emits: 4 events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object]

events

Every event type the running modules may emit, and the old names still accepted for one release.

  • Folder: core/event-catalog, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 1
  • Emits: no events
  • Shows on: no surface

files

Find, look at and bring over files on this machine and the box, inside the folders the user chose and never anywhere secret.

  • Folder: core/files, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 67, 1 of them only for other modules
  • Emits: 3 events
  • Shows on: capsule, cli, deck
  • Needs vault: dropbox
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

flows

Flows and Kits: write, approve and run a Flow, with its triggers, waits and tasks. The assembly lives in the daemon (core/daemon/flows-host.js); this module registers the tools over it, each running under the caller's own chain.

  • Folder: core/flows, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 49, 1 of them only for other modules
  • Emits: no events
  • Shows on: no surface
  • Needs daemon: flowsHost
  • Needs kernel: {"actions":["records.read","records.create","records.update","records.remove","tasks.request","tasks.read","tasks.work"],"prefixes":["*"],"mints":[{"prefix":"task","actions":["tasks.read","tasks.work"]},{"prefix":"flow-act","actions":["flows.act-standing"]},{"prefix":"flow","actions":["flows.run","flows.define"]}]}

gate

  • Folder: core/gate, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 13, 2 of them only for other modules
  • Emits: 6 events
  • Shows on: capsule, cli, deck
  • Needs vault: per-sender
  • Teaches memory: draft.edited
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

github

  • Folder: core/github, version 0.1.0
  • Runs on: box, local
  • Requires: vault
  • Tools: 35, 6 of them only for other modules
  • Emits: 9 events
  • Shows on: cli, deck
  • Needs vault: per-connection
  • Teaches tips: [object Object], [object Object], [object Object], [object Object]

glass

  • Folder: core/glass, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 13
  • Emits: 8 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

goals

A goal and an ordered milestone list, attached to a session or a project. An agent may propose one; a person's tap (goals.accept) makes it real.

  • Folder: core/goals, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: 5 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"actions":["records.read","records.create","records.update"],"prefixes":["goal/*"],"types":[{"name":"goal","label":"Goal","fields":[{"name":"project","kind":"text","label":"Project"},{"name":"thread","kind":"text","label":"Thread"},{"name":"goal","kind":"text","label":"Goal","required":true},{"name":"state","kind":"choice","label":"State","options":["pending","active","done","cancelled"]},{"name":"created_by","kind":"text","label":"Created by"},{"name":"milestones","kind":"text","label":"Milestones"},{"name":"created_at","kind":"number","label":"Created"},{"name":"accepted_at","kind":"number","label":"Accepted"},{"name":"done_at","kind":"number","label":"Done"}]}]}

google

  • Folder: core/google, version 0.1.0
  • Runs on: box, local
  • Requires: vault, gate
  • Tools: 25, 3 of them only for other modules
  • Emits: 7 events
  • Shows on: capsule, cli, deck
  • Needs vault: per-connection
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

hands

Computer use on macOS through the accessibility tree: observe an app, act on one control and verify by observing again, inside the floor, with a visible indicator and a stop key. An outward act (a send, post or pay) holds at the Gate; a named agent needs the one grant before it may drive this Mac at all.

  • Folder: local/hands-mac, version 0.3.0
  • Runs on: local
  • Requires: none
  • Tools: 12, 1 of them only for other modules
  • Emits: 4 events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object]

hands-desktop

  • Folder: modules/hands-desktop, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 4
  • Emits: 1 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object]

harness

  • Folder: core/harness, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 7
  • Emits: 5 events
  • Shows on: cli

hooks

Inbound webhooks from the public internet: one route at a time, each checked by the sender's signature, stored and announced to watchers.

  • Folder: core/hooks, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 6
  • Emits: 3 events
  • Shows on: capsule, cli, deck
  • Needs vault: per-route
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

import

Discover this device's Claude Code sessions, choose what to import, and follow the import stage by stage (docs/design/import.md).

  • Folder: core/import, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 8
  • Emits: 1 events
  • Shows on: cli

learn

  • Folder: core/learn, version 0.2.0
  • Runs on: box, local
  • Requires: none
  • Tools: 15, 2 of them only for other modules
  • Emits: 13 events
  • Shows on: capsule, cli, deck
  • Teaches memory: preference
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

Makes the Mac and the box one system: pairing, box tools from the Mac, box events on the Mac, and the Mac's sessions read from the box.

  • Folder: core/link, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 38, 5 of them only for other modules
  • Emits: 26 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

mail

  • Folder: core/mail, version 0.1.0
  • Runs on: box, local
  • Requires: vault, gate
  • Tools: 9, 1 of them only for other modules
  • Emits: 4 events
  • Shows on: capsule, deck
  • Needs credentials: [object Object], [object Object]
  • Needs vault: per-connection

mcp

  • Folder: core/mcp, version 0.1.0
  • Runs on: box, local
  • Requires: vault, gate
  • Tools: 13, 2 of them only for other modules
  • Emits: 9 events
  • Shows on: cli, deck
  • Needs vault: per-connection
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

mcpconn

The person's own AI, connected: Claude Code or Codex on a computer of theirs, through vyre mcp. The person connects it once with presence; the connection is a per-device token (its hash here, the secret in a file only this OS user reads) and a call on it runs as the person, on their own chain, under the same kernel and door as the app. Listed and revoked by the person.

  • Folder: core/mcpconn, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 9, 4 of them only for other modules
  • Emits: 3 events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

memory

  • Folder: core/memory, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 71, 2 of them only for other modules
  • Emits: 17 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"membership":true,"sealDetect":true}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

mentions

The # tag: one picker over everything the person may mention, from the modules that offer a kind.

  • Folder: core/mentions, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 3, 1 of them only for other modules
  • Emits: no events
  • Shows on: no surface

microsoft

  • Folder: core/microsoft, version 0.1.0
  • Runs on: box, local
  • Requires: vault
  • Tools: 9
  • Emits: 2 events
  • Shows on: no surface
  • Needs vault: per-connection

models

The model registry: every model Vyre can offer, filled live from each provider's /models (with a key), from what each CLI or subscription login reports, and from OpenRouter's public metadata, with price, capabilities and eval scores; refreshed daily and on demand. A new model proposes its evals as one card; nothing runs without the owner's yes.

  • Folder: core/models, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 9
  • Emits: 3 events
  • Shows on: cli

modules

The owner's reset of the accepted first-party module list, for a deliberate downgrade (rollback to an older release): one presence-gated tool over the kernel's own reset.

  • Folder: core/modulelist, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: no events
  • Shows on: cli
  • Needs daemon: modulesListReset, modulesListResetPayload
  • Needs kernel: {"actions":[]}

names

  • Folder: core/names, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 10, 5 of them only for other modules
  • Emits: 3 events
  • Shows on: cli
  • Teaches tips: [object Object], [object Object]

network

The built-in network as the person sees it: whether this machine is signed in, per space whether the link is up (direct or through the relay), and joining or leaving a space. The work is the Wink module's; this module holds the public names (network.wink.*).

  • Folder: core/network, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 4
  • Emits: no events
  • Shows on: capsule, cli, deck

onboard

  • Folder: core/onboard, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 14
  • Emits: 3 events
  • Shows on: no surface

outside

Outside agents: Dots, Muse, Hermes, ChatGPT or your own Claude Code elsewhere reach the records, memory and files you choose through one address, hold only what you give, ask before they change anything, and stop the moment you end them.

  • Folder: core/outside, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 9, 3 of them only for other modules
  • Emits: 6 events
  • Shows on: no surface
  • Needs kernel: {"outside":true,"actions":[],"mints":[{"prefix":"*","actions":["records.read","records.create","records.update"]},{"prefix":"memory","actions":["memory.read"]},{"prefix":"project/*","actions":["project.reach"]},{"prefix":"file/*","actions":["drive.read"]}]}

planner

Alarms, timers, reminders, todos, notes and a calendar, kept on the box so something rings when the Mac is shut. Its data is the Space's records: Reminder and Note records, to-dos as Tasks, the calendar as Event records.

  • Folder: core/planner, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 16
  • Emits: 8 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"membership":true,"actions":["records.read","records.create","records.update","records.remove","records.restore","events.read","tasks.request","tasks.read","tasks.work"],"prefixes":["reminder/*","note/*","planner_firing/*","planner_state/*","event/*","task/*","project/*"],"types":[{"name":"reminder","label":"Reminder","icon":"IconBell","protected":true,"views":[{"name":"reminders_calendar","type":"calendar","of":"reminder","label":"Calendar","dateField":"at"},{"name":"reminders_list","type":"list","of":"reminder","label":"List","sort":[{"field":"at","dir":"asc"}]}],"fields":[{"name":"title","kind":"text","label":"Title","required":true},{"name":"kind","kind":"choice","label":"Kind","options":["alarm","timer","reminder","task"],"required":true},{"name":"state","kind":"choice","label":"State","options":["open","done","cancelled"],"required":true},{"name":"at","kind":"datetime","label":"Rings at"},{"name":"tz","kind":"text","label":"Time zone"},{"name":"floating","kind":"boolean","label":"Follows the planner's zone","hidden_from":["owner","admin","manager","member","temp"]},{"name":"wall","kind":"text","label":"Time of day (HH:MM)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"date","kind":"text","label":"Date (YYYY-MM-DD)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"repeat","kind":"text","label":"Repeat rule (JSON)"},{"name":"duration_ms","kind":"number","label":"Timer length (ms)"},{"name":"snooze_until","kind":"datetime","label":"Snoozed until"},{"name":"next_fire","kind":"number","label":"Next ring (ms, the planner's own)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"body","kind":"rich_text","label":"Notes or the instruction a task runs"},{"name":"list","kind":"text","label":"List"},{"name":"priority","kind":"number","label":"Priority (0 to 3)"},{"name":"pinned","kind":"boolean","label":"Pinned"},{"name":"tags","kind":"text","label":"Tags (a JSON list)"},{"name":"project","kind":"text","label":"Project"},{"name":"thread","kind":"text","label":"Thread"},{"name":"source","kind":"text","label":"Added by (caller)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"person","kind":"text","label":"Made by (person)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"added_by","kind":"text","label":"Added by (agent)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"created","kind":"number","label":"Created (ms)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"updated","kind":"number","label":"Updated (ms)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"removed_at","kind":"datetime","label":"Deleted"},{"name":"done_at","kind":"datetime","label":"Done"},{"name":"legacy_id","kind":"text","label":"Carried from the old planner (its id)"},{"name":"waits_on","kind":"text","label":"Runs when this item is done"},{"name":"run_count","kind":"number","label":"Times run","hidden_from":["owner","admin","manager","member","temp"]},{"name":"last_result","kind":"text","label":"Last result","hidden_from":["owner","admin","manager","member","temp"]},{"name":"paused","kind":"boolean","label":"Paused"},{"name":"waits_on_fired","kind":"number","label":"Last completion it ran for","hidden_from":["owner","admin","manager","member","temp"]}]},{"name":"note","label":"Note","icon":"IconNote","protected":true,"fields":[{"name":"title","kind":"text","label":"Title","required":true},{"name":"state","kind":"choice","label":"State","options":["open","done","cancelled"],"required":true},{"name":"body","kind":"rich_text","label":"Note"},{"name":"list","kind":"text","label":"List"},{"name":"priority","kind":"number","label":"Priority (0 to 3)"},{"name":"pinned","kind":"boolean","label":"Pinned"},{"name":"tags","kind":"text","label":"Tags (a JSON list)"},{"name":"project","kind":"text","label":"Project"},{"name":"thread","kind":"text","label":"Thread"},{"name":"source","kind":"text","label":"Added by (caller)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"person","kind":"text","label":"Made by (person)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"added_by","kind":"text","label":"Added by (agent)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"created","kind":"number","label":"Created (ms)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"updated","kind":"number","label":"Updated (ms)","hidden_from":["owner","admin","manager","member","temp"]},{"name":"removed_at","kind":"datetime","label":"Deleted"},{"name":"done_at","kind":"datetime","label":"Done"},{"name":"legacy_id","kind":"text","label":"Carried from the old planner (its id)"}]},{"name":"planner_firing","label":"Ring","icon":"IconBellRinging","fields":[{"name":"fid","kind":"text","label":"Ring id","required":true,"unique":true},{"name":"item","kind":"text","label":"Item","required":true},{"name":"kind","kind":"text","label":"Kind","required":true},{"name":"due","kind":"number","label":"Due (ms)","required":true},{"name":"ring","kind":"number","label":"Ring number"},{"name":"missed","kind":"boolean","label":"Missed"},{"name":"state","kind":"text","label":"State","required":true},{"name":"fired_at","kind":"number","label":"Fired (ms)"},{"name":"next_ring","kind":"number","label":"Next ring (ms)"},{"name":"acked_at","kind":"number","label":"Answered (ms)"},{"name":"action","kind":"text","label":"Answer"},{"name":"by","kind":"text","label":"Answered by"},{"name":"until","kind":"number","label":"Snoozed until (ms)"}]},{"name":"planner_state","label":"Planner setting","icon":"IconSettings","fields":[{"name":"key","kind":"text","label":"Key","required":true,"unique":true},{"name":"value","kind":"text","label":"Value (JSON)","required":true}]}]}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

pluginagent

Claude Code on this computer, as a named agent the person grants once: the plugin asks, the person approves with presence, vyred registers the agent and a key only this OS user can read, and every later plugin session on this computer carries that agent's kernel token. Never the person.

  • Folder: core/pluginagent, version 0.1.0
  • Runs on: box, local
  • Requires: agents
  • Tools: 9, 2 of them only for other modules
  • Emits: 4 events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

presence

  • Folder: core/presence, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 21, 7 of them only for other modules
  • Emits: 7 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

previews

Live previews: a server an agent started on a port becomes a card in its chat, opened on its own address, kept running by Vyre, and shared the way you share a document.

  • Folder: core/previews, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 23
  • Emits: 6 events
  • Shows on: cli
  • Needs kernel: {"actions":["records.read","records.create","records.update"],"prefixes":["preview_doc/*"],"types":[{"name":"preview_doc","label":"Preview data","fields":[{"name":"preview","kind":"text","label":"Preview","required":true},{"name":"path","kind":"text","label":"Path","required":true},{"name":"collection","kind":"text","label":"Collection"},{"name":"docid","kind":"text","label":"Document"},{"name":"data","kind":"text","label":"Data"},{"name":"owner","kind":"text","label":"Written by"},{"name":"updated","kind":"number","label":"Updated"},{"name":"gone","kind":"number","label":"Removed"}]}]}

projects

  • Folder: core/projects, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 31, 1 of them only for other modules
  • Emits: 4 events
  • Shows on: cli
  • Needs kernel: {"reach":true,"actions":["records.read"]}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

providers

providers.list: every session provider on this machine, each with its own accounts and models, so a picker (Chat, Lumen, the CLI) builds itself from one call. Assembles what each provider's own module reports; holds no state of its own.

  • Folder: core/providers, version 0.1.0
  • Runs on: box, local
  • Requires: sessions
  • Tools: 1
  • Emits: no events
  • Shows on: cli

publish

Put a site or app on the internet from your space: build a private preview, approve it, publish it, go back to the last version, connect your own domain. Each site runs on its own, apart from your space's data.

  • Folder: core/publish, version 0.1.0
  • Runs on: box
  • Requires: none
  • Tools: 26
  • Emits: 10 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"mints":[{"prefix":"credential/*","actions":["vault.run"]}]}
  • Needs vault: per-deployment

push

  • Folder: core/push, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 8
  • Emits: 4 events
  • Shows on: capsule, cli, deck
  • Needs vault: push-vapid

recall

  • Folder: core/recall, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 18, 1 of them only for other modules
  • Emits: 5 events
  • Shows on: cli
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

records

The app's way into a Space's records: one tool per Store call over the kernel's gateway, each under the caller's own chain in the Space it names. Nothing here decides; the kernel does.

  • Folder: core/records-tools, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 26, 3 of them only for other modules
  • Emits: no events
  • Shows on: cli
  • Needs daemon: devStandIn
  • Needs kernel: {"actions":[]}

relay

The way to reach the box that always works: the box dials out to a relay, and devices paired by QR code reach it over an end-to-end encrypted channel.

  • Folder: core/relay, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 42, 15 of them only for other modules
  • Emits: 26 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

releases

The Android app from the box: CI's unsigned APK, signed with the owner's own key, served to the owner's devices at /apps/.

  • Folder: core/apps, version 0.1.0
  • Runs on: box
  • Requires: vault
  • Tools: 2
  • Emits: no events
  • Shows on: cli
  • Needs vault: android-release-key

roles

A Space's roles as a person sees them: Owner, Admin, Member, Guest and custom roles built from Member or Admin. One tool per call, each under the caller's own chain; the kernel refuses anything wider than a role's base.

  • Folder: core/roles, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 8
  • Emits: no events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

rules

The app's way into a Space's standing rules: one tool per call on the kernel's rule store, each under the caller's own chain in the Space it names. Nothing here decides; the kernel does.

  • Folder: core/rules-tools, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 10
  • Emits: no events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

runner

Runs a space's AI sessions on this computer: sandboxed, in an encrypted workspace opened by a leased key, with credentials fetched at the moment of use and a checkpoint at every turn.

  • Folder: core/runner, version 0.1.0
  • Runs on: local, box
  • Requires: none
  • Tools: 24, 3 of them only for other modules
  • Emits: 10 events
  • Shows on: capsule, cli, deck

screen

Screen context on macOS: the front app, window, focused control, URL and visible text, kept current by accessibility notifications, redacted in secure fields and blind in the floor's places. On demand screenshots.

  • Folder: local/screen-mac, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 2
  • Emits: no events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

sessions

How the sessions Vyre starts run (ADR 0030): the Claude Agent SDK driver's status and install, and the system prompt at three levels, versioned.

  • Folder: core/sessions, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 42, 13 of them only for other modules
  • Emits: 9 events
  • Shows on: cli
  • Needs kernel: {"actions":[]}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

settings

One way to read and change every setting, at account, project, device or session level, wherever it is kept.

  • Folder: core/settings, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 10, 2 of them only for other modules
  • Emits: 2 events
  • Shows on: cli, deck
  • Needs kernel: {"actions":[]}

The sidebar each person arranges: the built-in places, an installed module's screens and saved views, with groups, an order and hidden entries. An admin sets the Space's default; each person's own arrangement sits on top of it.

  • Folder: core/sidebar, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 7, 1 of them only for other modules
  • Emits: 1 events
  • Shows on: cli

sideview

The side view on macOS: a session on the left and Chrome (or Glass on the box) filling the rest, tiled through the accessibility API in one call, and put back on close.

  • Folder: local/sideview, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 3
  • Emits: no events
  • Shows on: no surface
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

sight

One screen service for the user's Mac and every agent's computer: what is on it, what was just done on it, and the frame stream where one may leave the machine.

  • Folder: core/sight, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: 1 events
  • Shows on: no surface

signin

The command line's sign-in: vyre signin asks the owner's phone to approve, and on a yes that one terminal login holds a person session until it signs out or goes unused for 30 days.

  • Folder: core/signin, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 6
  • Emits: no events
  • Shows on: cli
  • Needs daemon: cliSigninPayload, cliSigninCheck, cliSessions, devStandIn
  • Needs kernel: {"actions":[]}

skills

The skills a session may use, found by what it is about to do, and the library they come from. skills.list lists them and skills.find ranks them for an intent in plain words, with the same ranker as the docs tool; skills.get reads one. A skill is a SKILL.md: Vyre's own, or from the library at four levels (space, personal, agent, project), drafted by anyone and approved by the level's owner. What a caller sees is cut by the permission system: it never sees a skill it may not use.

  • Folder: core/skills, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 15, 8 of them only for other modules
  • Emits: no events
  • Shows on: cli
  • Needs kernel: {"membership":true,"actions":["records.read","records.create","records.update"]}
  • Needs tools: projects.reach
  • Teaches tips: [object Object]

spaces

Identity, spaces, members and invites: your Vyre name, a space with a home you choose, the five roles with temp access, and join links.

  • Folder: core/spaces, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 118, 34 of them only for other modules
  • Emits: 34 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"membership":true,"spaces":true,"bundle":true}

spend

One ledger of what agents, sessions and memory spend, per provider and per day (UTC), and a daily cap per provider. At the cap the spending thread pauses with one line and a raise-it action; nothing asks on each call.

  • Folder: core/spend, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 4, 1 of them only for other modules
  • Emits: 2 events
  • Shows on: cli

statusline

One short line for Claude Code's status line: what needs the user, the box, the assistant.

  • Folder: core/statusline, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 1
  • Emits: no events
  • Shows on: cli
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

stream

  • Folder: core/stream, version 0.1.0
  • Runs on: box, local
  • Requires: threads
  • Tools: 15, 3 of them only for other modules
  • Emits: no events
  • Shows on: no surface
  • Streams: session
  • Needs daemon: kernelThreads

suggest

Predictive text for every surface: names after @, commands after /, entities, accounts and times as the user types.

  • Folder: core/suggest, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 3, 1 of them only for other modules
  • Emits: 1 events
  • Shows on: cli

sync

A paired device (a Mac or a Windows PC) sends its own Claude Code session files to the box, once its person turns import on for it (ADR 0008 5a).

  • Folder: core/sync, version 0.1.0
  • Runs on: box, local
  • Requires: link
  • Tools: 10
  • Emits: 5 events
  • Listens for: link.unpaired
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object]

system

  • Folder: core/system, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: 2 events
  • Shows on: cli

tasks

The app's way into a Space's tasks: one tool per Store call over the kernel's task store, each under the caller's own chain in the Space it names. Nothing here decides; the kernel does.

  • Folder: core/tasks-tools, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 9, 3 of them only for other modules
  • Emits: no events
  • Shows on: cli
  • Needs kernel: {"actions":[]}

team

Project teammates (ADR 0031): a named, persistent agent per role per project, a notes file that is its memory of record, and a serial inbox any session in the project summons it through.

  • Folder: core/team, version 0.1.0
  • Runs on: box, local
  • Requires: threads, projects, sessions
  • Tools: 32, 2 of them only for other modules
  • Emits: 11 events
  • Shows on: cli
  • Needs kernel: {"membership":true,"actions":["records.read"]}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object]

term

  • Folder: core/term, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 4
  • Emits: 3 events
  • Shows on: no surface
  • Streams: pty
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

threads

  • Folder: core/switchboard, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 77, 31 of them only for other modules
  • Emits: 42 events
  • Shows on: cli
  • Needs daemon: kernelSession, chatFor, sandbox, credentials, listModels
  • Needs vault: claude-setup-token, anthropic-api-key, per-account
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

tips

One short tip at a time about the part of Vyre you are using, the parts you have not tried, and what an update brought. Each module ships its own tips; this one chooses, never nags, and turns off in Settings.

  • Folder: core/tips, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 7
  • Emits: 1 events
  • Shows on: cli
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

undo

The shared acted-log: what agents, the assistant, watchers and modules did for the person, each with the inverse its own module declared, so one tap undoes it.

  • Folder: core/undo, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 3
  • Emits: 3 events
  • Shows on: cli

update

Is a newer Vyre out: one daily look at the releases, one answer every surface draws its Update card from.

  • Folder: core/update, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: 2 events
  • Shows on: cli

vault

  • Folder: core/vault, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 181, 24 of them only for other modules
  • Emits: 59 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"reach":true,"membership":true,"mints":[{"prefix":"vault","actions":["vault.use","vault.edit"]}]}
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

views

A module's screens, described and drawn by Vyre: the lists, boards, summaries, details and forms an installed module declares under views, read from its manifest and answered as small frames for the app to draw in its own components. No module code runs in the app's window.

  • Folder: core/views, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 6
  • Emits: no events
  • Shows on: cli

vitals

How the server and this device are doing: CPU, RAM, GPU, disk, network and battery, plus a breakdown per running computer on the server. Person-level only; an agent gets a summary with no process or window detail.

  • Folder: core/vitals, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 5
  • Emits: 2 events
  • Shows on: capsule, cli, deck
  • Teaches tips: [object Object], [object Object], [object Object]

voice

Push-to-talk for Lumen: streams the mic to a speech provider and relays the words back, with optional spoken replies.

  • Folder: local/voice, version 0.1.0
  • Runs on: local
  • Requires: none
  • Tools: 4
  • Emits: no events
  • Shows on: capsule
  • Streams: listen
  • Needs credentials: [object Object], [object Object], [object Object]
  • Needs vault: voice-deepgram-key, voice-openai-key, voice-elevenlabs-key
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

vyre

The live index of Vyre's modules: what each one is for, where it lives, where it runs and whether it is running here now. Read from the architecture map's generated table (which is generated from each module.json) and the daemon's own module list, so it cannot drift from either.

  • Folder: core/vyre-index, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 1
  • Emits: no events
  • Shows on: cli

waiting

One list of what waits on the user: session asks, held drafts, ringing reminders and pairing requests.

  • Folder: core/waiting, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 2
  • Emits: 1 events
  • Shows on: cli

watchers

  • Folder: core/watchers, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 21, 1 of them only for other modules
  • Emits: 8 events
  • Shows on: capsule, cli, deck
  • Needs kernel: {"actions":["records.read","records.create","records.update","records.remove"],"types":[{"name":"def-watcher","label":"Watcher","icon":"IconEye","fields":[{"name":"name","kind":"text","label":"Name","required":true},{"name":"project","kind":"text","label":"Project"},{"name":"schedule","kind":"text","label":"Runs"},{"name":"hash","kind":"text","label":"Hash"},{"name":"spec","kind":"text","label":"Settings (watcher.json)"},{"name":"code","kind":"text","label":"Code (watch.js)"}]}]}
  • Needs vault: per-watcher
  • Teaches memory: watcher.item
  • Teaches tips: [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]

wink

Pairing as grants: every way in is a Wink (scan a code, or type two-sided codes). Devices (phone, computer, server, storage) belong to the identity, never to a space. Add a device, pair a server or a phone, invite a person, offer compute, see and remove what was given.

  • Folder: core/wink, version 0.1.0
  • Runs on: box, local
  • Requires: relay
  • Tools: 68, 14 of them only for other modules
  • Emits: 36 events
  • Listens for: relay.code-asked, relay.signin-asked, relay.connected, name.claimed, relay.invite-redeemed, device.paired, device.removed
  • Shows on: capsule, cli, deck
  • Needs daemon: dataStores
  • Needs kernel: {"mints":[{"prefix":"member/*","actions":["member.act"]},{"prefix":"node/*","actions":["node.host"]},{"prefix":"storage/*","actions":["storage.hold"]}]}
  • Needs vault: per-storage

work

The work layer on the kernel: the native assistant's tool surface and situation, teammates, the three-layer memory and the Engineer. Every call goes through the kernel with the chain the kernel builds for the caller; nothing here holds authority.

  • Folder: core/work, version 0.1.0
  • Runs on: box, local
  • Requires: none
  • Tools: 78, 21 of them only for other modules
  • Emits: no events
  • Shows on: cli
  • Needs daemon: flowsHost, agentActor
  • Needs kernel: {"membership":true,"work":true,"attrs":true,"actions":["drive.read","drive.write","events.read","grants.list","records.create","records.read","records.remove","records.update","tasks.read","tasks.request"],"types":[{"name":"project","label":"Project","icon":"IconFolder","kind":"project","fields":[{"name":"name","kind":"text","label":"Name","required":true},{"name":"slug","kind":"text","label":"Short name used in addresses","unique":true},{"name":"status","kind":"choice","label":"Status","options":["active","archived","moved"]},{"name":"client","kind":"link","label":"Client","to":"contact","inverse":{"name":"projects","label":"Projects"}},{"name":"owner","kind":"actor","label":"Owner"},{"name":"due","kind":"date","label":"Due"},{"name":"drive_path","kind":"text","label":"Drive folder"},{"name":"repo","kind":"text","label":"Repository"},{"name":"memory_scope","kind":"text","label":"Memory scope"},{"name":"archived_at","kind":"datetime","label":"Archived"},{"name":"moved_to","kind":"text","label":"Moved to (Space and project) when it left this Space"},{"name":"moved_from","kind":"text","label":"Moved from (Space and project) when it came from another"},{"name":"template","kind":"text","label":"Template it started from (blank when none)"},{"name":"template_version","kind":"text","label":"Template version it started from"},{"name":"lead","kind":"text","label":"Project lead (an agent of the Space; a template may name one)"},{"name":"credentials","kind":"link","label":"Logins and keys it uses","many":true},{"name":"template_stage","kind":"text","label":"Stage it is in (a template project)"},{"name":"template_snapshot","kind":"text","label":"The template's stages as they were when it started (JSON)"},{"name":"personal_of","kind":"text","label":"The person whose private Personal project this is (blank for every other project)"},{"name":"tags","kind":"text","label":"Tags"}]},{"name":"chat-record","label":"Chat","icon":"IconMessage","fields":[{"name":"title","kind":"text","label":"Title"},{"name":"project","kind":"link","label":"Project","to":"project","inverse":{"name":"chats","label":"Chats"}},{"name":"about","kind":"link","label":"About"},{"name":"shared","kind":"boolean","label":"Shown on the timeline to everyone who can see the record"},{"name":"chat","kind":"text","label":"Chat id","unique":true},{"name":"people","kind":"text","label":"People"},{"name":"agents","kind":"text","label":"Agents"},{"name":"former","kind":"text","label":"Former participants (people and agents who could not move with it)"},{"name":"started","kind":"datetime","label":"Started"},{"name":"last_active","kind":"datetime","label":"Last active"},{"name":"status","kind":"choice","label":"Status","options":["working","idle","stopped","failed"]},{"name":"drive","kind":"text","label":"Project Drive folder"},{"name":"location","kind":"text","label":"This chat's Drive folder"},{"name":"tags","kind":"text","label":"Tags"}]},{"name":"file-share","label":"Shared file","icon":"IconShare","fields":[{"name":"path","kind":"text","label":"File path","required":true}]}]}