All posts

4 min readTrustPolicy

What an audit log for a shared coding agent must record

The day something goes wrong is the wrong day to start logging. Six fields every request line needs, five every approval line needs, what must never appear in the log, and why the owner, not the requester, holds it.

By Noah· Product at Muti AI

An audit log for a shared coding agent is an append-only record with one line per request and one line per approval, held by the machine’s owner and exportable by them. It answers, after the fact, who asked the agent to do what, who allowed it, what actually ran, and what it cost. If the agent is only ever used by its owner, the runtime’s own transcript is enough. The moment a second person can send requests, it isn’t.

This post lists the fields, in the order a reader needs them, then the things that must stay out.

The request line

Every request produces exactly one line when it reaches a terminal state.

FieldWhy it is there
Request idThe handle everyone uses: in the room, in chat threads, in bug reports. R20260906-07.
Who askedThe requester’s account, and whether they were the owner, a member with a standing grant, or a guest approved once. Trust is per person; the log has to say which person.
Which agent, which roomThe agent tells you the machine and the working directory. The room tells you the audience that saw the run.
Which rule let it runOwner, standing grant, or a one-time approval with the approver’s name. This is the field auditors read first.
Outcomedone, failed, cancelled, expired, and the error class if any.
TimingCreated, started, finished. The gap between created and started is the approval wait; between started and finished is the run.
UsageTokens or the runtime’s own usage report, so borrowed requests have a cost attached.

The approval line

Approvals get their own line because they are decisions, and decisions have different readers than runs.

FieldWhy
The actionThe exact command or path, not a paraphrase: git push origin main, rm -rf build/, read ~/.aws/credentials.
The rule it hitPush to shared branch, delete, spend, credentials, or a custom rule.
Who asked, who decidedTwo names. They differ by design when someone borrows the agent.
The decisionApproved, rejected, continue read-only, or expired.
The noteWhatever the decider typed. Notes carry the same weight as the request, so they belong in the record.
LatencyHow long the request waited. Long waits are a signal to scope agents more narrowly.

Request lines and approval lines, with an approved push in amber and an expired deletion in red.Request lines and approval lines, with an approved push in amber and an expired deletion in red.

What must not be in the log

  • Secrets. A credential approval records that a key was accessed, not the key.
  • File contents. Diffs are paths and line counts. The change is in the repository, where the repository’s own access control applies.
  • Full command output. The tail is enough to explain a failure. Whole logs can contain anything.
  • Other rooms. Each room’s log is scoped to that room. The owner sees across rooms; members see their room.

Properties, not just fields

Append-only. Nobody edits the log, including the owner. Corrections are new lines.

Owner-held. The person whose machine ran the work holds the record and can export it. Requesters see their own lines in the room.

Complete under revocation. Revoking a grant or a machine cancels queued work and lets running work finish, so the log never has a gap where “something ran but we stopped watching”.

Owner actions included. The owner is not subject to approvals on their own agent, but their requests are logged the same way. A log that only records outsiders is a log that only records half the risk.

Reading the log

Three questions come up most, and the fields above answer each in one filter.

  1. “Who pushed that?” Filter approval lines by rule = push, read who asked and who decided.
  2. “Why did this request take an hour?” Compare created and started; the approval wait is usually the answer.
  3. “What did lending my agent cost this month?” Sum usage on request lines where who asked is not the owner.

Frequently asked questions

Is the room timeline the audit log? The timeline is the detailed, human-readable record of one run. The audit log is the one-line-per-event summary across runs, designed for filtering and export. muti keeps both; the log is derived from the same events the daemon uploads. See what the daemon uploads.

How long is it kept? Request and approval lines are kept for the life of the room. Deleting a room soft-deletes it; the record stays for the owner.

Can a requester see other people’s lines? They see the room’s timeline, which includes everyone’s requests in that room. Export is the owner’s.

Do owner requests need approval to be logged? No. Owner runs are logged without approvals, with rule = owner.

The log is what makes “you can revoke it later” a real promise. Give your agent a room and it comes with one.

Published

Give your agent a room.

muti is free during the private beta. Connect the machine where your agents live and invite the people you trust.

Get started

Keep reading

6 min readComparison

QoderWake and muti

Of every agent product launched in 2026, Alibaba's QoderWake is the closest in shape to muti. Both run on your own machine, and both let a group send it work, through a chat that has to be paired first. They split on whose agent it is, what it runs, and who approves when a colleague's request reaches a delete.

9 min readComparison

WorkBuddy, QwenWork and QoderWake

Tencent's WorkBuddy lets you drive the agent on your own computer from WeChat and WeCom. Alibaba's QwenWork merges desktop, cloud and DingTalk agents into one product. QoderWake runs a team of digital employees on your machine behind a single bot the whole group can mention. All three let colleagues use the agent. They answer how in very different ways.

5 min readPersonal agents

An agent with its own phone number

Manus Cue gives each personal agent an email address, a phone number, a wallet and a computer. That makes the agent reachable by anyone who has the number, which changes the permission question from "what may my agent do" to "what may a stranger make it do". What Manus 2.0 shipped, and what reachability asks of an agent.