The 1,141-test result makes Lavish easy to trial
Lavish AXI turns a local HTML file into a review surface shared by one person and one coding agent. The browser adds element annotations, text-range comments, image attachments, chat, and editable Mermaid whiteboards without changing the saved artifact. Feedback waits in the session until the agent runs lavish-axi poll, then the agent can answer in the same conversation. That is more precise than describing a visual defect by coordinates in a screenshot.
The repository targets Node 22 or newer and publishes a CLI that can run on demand through npx -y lavish-axi. Its recommended skill is a short discovery layer, while optional session hooks cover Claude Code, Codex, OpenCode, and GitHub Copilot CLI. Plugin registration covers VS Code, Cursor, and Copilot CLI. Lavish explicitly declares no MCP server, so buyers should understand it as a command-line protocol around a browser session.
One local page keeps feedback tied to the artifact
Lavish v0.1.62 keys each session to the canonical path of the HTML file. A reviewer can reload a revised artifact while keeping scroll position, queued feedback, unsent annotation text, and answers to Lavish-aware controls. The conversation sits beside the artifact on wider screens and becomes a bottom sheet below 860 pixels. That continuity is the product's strongest practical idea: comments stay attached to the page being revised instead of becoming a detached checklist.
The interaction model still asks the agent harness to cooperate. lavish-axi poll is a long-running command, and the README tells Codex users to keep it attached to the active turn because a finished background task may not wake the agent. Session hooks and skills improve discovery, yet they do not supervise the agent. If your harness kills long polls or cannot resume work after browser feedback arrives, the review loop can stall even though the local page looks ready.
What happened when we ran it
Our sandbox installed commit 653d9bd in 24 seconds, pulling 390 pnpm packages and occupying 248 MB on disk. The build completed in 10 seconds. We ran it in a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and the Node 22 lab image. The checked-out repository contained 189 files, about 56,634 lines of source, and 12.8 MB before dependencies.
The node:test suite finished in 69 seconds with 1,141 passed and 0 failed out of 1,141. Our scan found a tests directory, 4 CI workflow files, workspace-based monorepo structure, and no Dockerfile. Those results establish that the supplied commit installs, builds, and tests cleanly in the stated environment. They do not measure browser behavior, annotation accuracy, feedback latency, or the optional hosted sharing service.
Two browsers still have open compatibility failures
GitHub listed 22 open issues on August 27, including specific reports for Firefox and Arc. Issue 201 describes a blank page in Firefox 151.0.2 while Chrome works, and an August 20 triage comment says the problem remains unfixed on current main. A developer whose default browser is Firefox should test one real artifact before adopting Lavish for routine reviews.
Issue 172 is nastier because the Arc page can look functional. The report says the outer editor loads, but the sandboxed artifact never fetches the injected SDK, leaving queue, annotation, and choice controls inert. The maintainer's August 20 check found the code path unchanged. Chrome is the safer choice today, while a mixed-browser team should document that requirement rather than discover it after feedback disappears.
Feedback delivery still lacks agent acknowledgement
Lavish v0.1.62 preserves feedback queued before an agent listens, but issue 296 identifies a narrower delivery risk. A poll consumes a batch before the receiving agent explicitly acknowledges it. The issue says a disconnect, process exit, or truncated consumer can lose that delivered batch or leave the browser showing an indefinite working state. This matters most when a review comment is the only record of an approval or required change.
The project has already written detailed acceptance criteria for leased feedback, receipt IDs, expiry recovery, and bounded presence states. That is useful issue hygiene, though it is still open work rather than current behavior. GitHub Copilot has another open report, issue 26, where the local browser opened but annotated prompts did not return to the agent. Lavish is best used with a visible agent response as the delivery confirmation, especially for changes that should not be inferred from silence.
Hosted sharing cannot provide true deletion
Local use has no hosted dependency, and the server defaults to loopback on port 4387. With Tailscale running, Lavish can also bind to the machine's Tailscale address for phone review. The README warns that this listener has no authentication beyond access to the trusted tailnet. Host checks and origin checks reduce accidental exposure, but anyone on that tailnet who can reach the service is inside the trust boundary.
The optional share command sends an inlined copy to ht-ml.app, where pages are public by default or password-protected on request. Inline limits default to 10 MB per asset and 25 MB per bundle. There is no delete endpoint. Unpublishing replaces content with a locked placeholder, while the URL still resolves and the host retains the publication. Teams with deletion or retention requirements should keep reviews local or implement the documented custom backend contract.
August activity is strong for a v0.1 project
The repository had 3,124 stars, 22 open issues, and 18 open pull requests when fetched on August 27, 2026. The last push was August 25, and release v0.1.62 was published the same day with a fix for closing empty annotation cards using Escape. Recent triage comments also revisit older reports against current main. That combination shows active maintenance and real user testing, while the v0.1 version and unresolved delivery contract still argue for a monitored rollout.

