Decide where your agent will run
OpenPencil's browser editor and native app have different agent options. The README says the web host supports built-in API-key agents only; CLI and ACP agents remain native-only. If your intended workflow depends on a local coding agent, that distinction should determine your trial before you spend time on deployment.
The OpenPencil README describes an infinite vector canvas backed by JSON .op files, with components, design variables, multiple pages and MCP tools for reading and changing documents. It also documents Figma .fig imports, .pen component kits and exports to React with Tailwind, HTML with CSS, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose and React Native. These are project-documented capabilities. Our recorded run did not evaluate their fidelity or output quality.
What our recorded run establishes
Our stored run began on September 27, 2026, at 03:13:36 UTC, using commit 3e55570d20bd4be891700789146e7c43c9c1c3b1, dated September 22, 2026. Its configuration recorded 3 CPUs, 12 GB of memory and image lab-rust:1. The image name does not identify the actual compiler version.
The dependency-download step exited 0 after 55.432 seconds, the build step exited 0 after 683.444 seconds, and the cargo test step exited 0 after 81.655 seconds. Rounded, those are 55, 683 and 82 seconds. The download tail shows Cargo fetching crates. It does not prove that the product or its CLI was installed. The build tail shows an unoptimized development build and OpenPencil crates labeled v0.8.5; this was a source checkout, not a test of the v0.8.4 release assets.
The stored parser aggregates are 1,468 passed, 0 failed and 1,468 total across 10 suites. Those measurements remain in the record, but the log repeats summaries before and after a replay marker. Unique and exhaustive counts have not been verified. We therefore report successful test-command execution without presenting 1,468 as a verified count of distinct passing tests. The visible Cargo output includes four ignored tests, which are not failures.
The daemon tests logged that no web bundle was found and that / served build instructions. Those tests exercised server contracts, including named CORS and managed-daemon checks; they did not demonstrate a complete browser editor. The run also does not establish an installed op command on PATH, a working local-agent connection, canvas frame rate, collaboration latency, import fidelity or generated-code quality.
The checkout measured 4,928 files, approximately 1,094,831 source lines and 331 MB. The dependency count was 704, and the detector recorded 13 CI workflow files. Its negative Dockerfile detection is not evidence that Docker deployment is unavailable: the README documents Dockerfile.web-rust. No security audit result was recorded. The build emitted a future Rust incompatibility warning for ashpd v0.8.1; the build still completed successfully.
Self-hosting requires a credential decision
The README says browser-entered provider, image-generation and Openverse credentials remain in same-origin localStorage by default. A credential needed for an AI request travels with that request, but the daemon does not persist the browser snapshot by default.
Optional server persistence is deployment-wide: an accepted snapshot replaces the shared browser-owned copy. The project recommends enabling it only for a trusted, access-controlled deployment with one active administrator profile behind HTTPS. Same-origin scripts can read localStorage, so protecting that origin matters even when server persistence is disabled. Public reverse proxies must configure exact allowed browser origins separately. These are documented controls and operating requirements, not findings from a security assessment.
For source work, the README documents three public Git submodules and a pinned Rust 1.94 toolchain. Bun >= 1.0 and Node.js >= 18 apply to the web SDK packages. Its Windows portable artifacts need the Visual C++ Redistributable, and its Nix flake is published for x86_64-linux. Verify the requirements for your chosen artifact rather than treating our source build as a platform compatibility check.
Read issue follow-ups before treating reports as current failures
The supplied v0.8.4 release page labels that release a prerelease. That establishes the status of v0.8.4, not that it is the newest release today. Our source checkout compiled crates labeled v0.8.5, which likewise does not establish a published v0.8.5 release.
Issue 228 reports a macOS connection failure with OpenPencil 0.8.4 and codex-cli 0.149.1. A contributor subsequently said the fix was in the v0.8.5 branch and linked commit bfd4f34d0. That is a reported branch fix, not a connection result from our run or proof that a corrected release reached users.
Issue 181 needs a different qualification. The original reporter confirmed on August 15, 2026 that screenshot pasting worked, while reporting placement outside the page and a delay of almost two seconds. The thread also contains a report about OpenPencil 0.14.0 that maintainers identified as a different project. It cannot support a defect claim about ZSeven-W/openpencil. Our run did not reproduce the remaining placement or delay report.
For a trial, check the exact release asset and architecture, connect your intended agent, paste a representative image, import one real document and inspect one generated interface. Our command results do not replace those checks.
Alternatives depend on the artifact you want to edit
Penpot's README documents browser use, self-hosting, real-time collaboration and an MCP server. Evaluate it for a team design environment with deployment control. Calling it an option only when agent control is secondary would misrepresent its documented capabilities.
Onlook's README focuses the open-source editor on Next.js and TailwindCSS. Its visual editor maps browser elements to code and updates both. Evaluate it when application code is the artifact you want to change. The README separately describes its next hosted product as being in early access. We did not run either alternative or compare their stability.
How to read the scores
These are editorial ratings of the evidence available for this review, not benchmark results. The scale is 1 for substantial documented obstacles or very limited evidence, 2 for limited evidence with important gaps, 3 for a workable documented path with material qualifications, 4 for broad documentation or verification within the stated scope, and 5 for extensive verification across the reader's intended workflows. Unknown adoption, compatibility and support quality do not earn a high score.
Setup receives 3/5 because the recorded download and build completed, but the build took 683 seconds and did not establish an installed CLI or complete browser bundle. Documentation receives 4/5 for explicit native/web boundaries, prerequisites and credential settings. Community receives 2/5 because the supplied issue threads show responses and follow-ups but do not establish adoption or support reliability. Maturity receives 2/5 because the supplied release is a prerelease and our successful commands leave interactive and packaged workflows unverified.

