opbox

The assistant is the way you drive Opbox by talking to it. Open Spotlight with a keystroke, ask for what you want in plain language, and an agent works the job for you: it reads the data, picks the right actions, and calls them. Crucially, it does not get a private back door. The agent reaches for the exact same verbs you would click in the app, through the same single front door, under the same checks, leaving the same audit trail. Its narration is never the source of truth - the matter screens are - so anything it tells you can be read back against the record.

What it does

One input that searches and asks. Spotlight is the centred overlay you summon with Cmd-K (or Ctrl-K). Start typing and you get live search results across matters, documents, facts, and knowledge. Press Enter and it escalates to a full cowork view: a chat thread on one side, the agent’s working context on the other. The same overlay is both the find-it bar and the ask-the-agent surface, so you never have to decide which tool to reach for first.

Governed tool-calling through the one kernel door. When you ask for something, the agent drives real Opbox verbs through the kernel’s MCP front door. It is offered the full governed verb surface its bearer can see, never a hand-curated subset: what it may actually do is bounded at the verb itself by the verb’s authz tier, the agent’s autonomy ceiling, and its grant and budget. The client never decides the agent’s power; the kernel does, on every single call. See the agents concept for how that bounding works.

Streamed live, step by step. The conversation streams as it happens. As the agent calls each verb you see a labelled chip appear and then resolve to ok or failed, and the answer arrives in chunks rather than all at once. Behind the surface this is a standard event stream (the AG-UI protocol the chat backend emits over server-sent events), so the progress you watch is the agent’s real, in-flight work, not a spinner.

The agent acts as a bounded worker, never as you. Public chat requires you to be signed in: the surface validates your session before it will stream a single token, and refuses anyone anonymous. But the agent itself executes under its own bounded chat-agent identity, low autonomy and capability-scoped, never under your owner-level key. That separation - your sign-in is the access gate, the agent is a low-privileged worker - is why letting the assistant help can never quietly amplify what gets done in your name.

Working context at your side. When a turn touches a matter, party, document, or cap table, that object surfaces in a context panel beside the chat, rendered from the verb’s own render-schema, with an inline card under the message that touched it. You can pin the panel so the next turn does not replace it. The agent narrates; the panel shows you the actual record it acted on, so you check rather than trust.

Threads that persist. Conversations are kept. Each thread is saved as you go, so you can leave a piece of work and resume the same thread later, with its history reloaded. Starting a new thread is one action, and your own threads are the only ones you see.

Confirm before sending, if you want it. A toggle lets you hold each message for a confirmation step before it goes to the agent. This is a presentation convenience and says so plainly: the kernel’s gates, not this checkbox, are what govern whatever the agent may do.

Retrieval and reusable know-how. The assistant draws on more than the literal record. Text is indexed and queried for semantic retrieval, and a reviewed knowledge base of guidance and precedent backs the answers. Knowledge is curated through a proper lifecycle - proposed, reviewed, published, superseded, retired - so what the assistant leans on is vetted, append-only, and never silently rewritten.

How you use it

Open Spotlight and ask. Press Cmd-K anywhere to bring up the bar. Type a question or an instruction (“How many open matters are there?”, “Create an O-1B petition matter”, “Draft an engagement letter”) and send it. For a quick lookup, the inline results are enough; for real work, escalate to cowork and let the thread run.

Watch the work, not just the answer. As the agent runs, follow the tool-call chips to see exactly which verbs it called and whether each succeeded. If something failed, the chip says so. Read the answer it gives, then open the object it touched from the context panel and confirm the change landed on the record.

Pick who you are talking to. Use the agent switcher to direct a turn at a role (for example the chief of staff, head of legal, or company secretary). It is a routing hint for which agent picks up the work.

Keep or resume a thread. Carry on a saved conversation by reopening its thread, or start fresh with a new one. The history comes back with the thread, so a long-running piece of work stays in one place.

Turn on confirmation when it matters. If you want a beat before each message reaches the agent, switch on confirm-before-sending. Remember it is a UI check only - the agent is still bounded by the kernel whether the toggle is on or off.

The kernel verbs behind it

The assistant adds no powers of its own. Every action it takes is one of the same verbs that the app and the command line use, through the one front door - permission-checked, scope-checked, and audited before it runs. These are the verbs most specific to the assistant’s own machinery: retrieval, the knowledge base, and the agent governance that bounds it.

Retrieval and knowledge:

The conversation itself:

Bounding the agent:

  • agent.autonomy.set - set an agent’s autonomy ceiling, L0 to L3; no agent raises its own.
  • agent.grant.set - grant or deny a verb-pack to an agent, with no amplification beyond the grantor’s own grants.
  • agent.convene - convene one ephemeral agent for a task, a subset-instance of the convener, bounded at the verb (INV-15).
  • agent.convene.panel - convene a panel of agents under one convening, each a distinct seat sharing one budget pool.

See the full set in the agent verb reference.