mrkeyoor.com_
Sun 08 Nov 21:57 UTC
AI Toolsevaluationupdated 29 Sept 2026

dyad review

Dyad is a desktop AI app builder that edits and previews web apps on your own computer. It gives people who like Lovable or Bolt a local workspace and lets them connect their own model accounts, while keeping the generated project under their control.

+73stars / 7d
Verdict

Our Dyad run built successfully, but 10 of 9,121 tests timed out and npm audit found 96 known vulnerabilities, so teams should treat it as an active desktop product rather than a clean foundation for unattended releases. Use it if you want a local visual app builder on Mac or Windows and can review its output. Skip it when an all-Apache codebase, Linux download, or green dependency gate is mandatory.

We ran it

Lab card: what happened when we ran dyadScreenshot of dyad (dyad.sh)
Install✓ · 110s1594 packages · 2168 MB
Build✓ · 187s
Tests✗ · 548s9099 passed · 10 failed · 12 skipped of 9121 (vitest)
Known vulns967 critical · 55 high · 17 moderate · 17 low (npm audit)
Repo3664 files~657,595 lines of source · 34.7 MB · 20 CI workflows

Answers from our run

Does dyad build from source?

Dependencies installed in 110 seconds (1594 packages), and the build succeeded in 187 seconds. We cloned commit fd562c6 into a clean Debian container with 3 CPUs and no project-specific setup.

Do dyad's tests pass?

No. The project's own test command finished in 548 seconds and reported 9099 passed, 10 failed, 12 skipped (vitest).

Does dyad have known vulnerabilities in its dependencies?

npm audit flagged 96 known advisories in the dependency tree, including 7 critical at the time of our run.

Who should not use dyad?

Teams that require every source file under Apache-2.0: the README says src/pro uses the Functional Source License 1.1, while the rest uses Apache-2.0.

What are the alternatives to dyad?

Bolt.diy, OpenHands, Open Lovable. Our Dyad run built successfully, but 10 of 9,121 tests timed out and npm audit found 96 known vulnerabilities, so teams should treat it as an active desktop product rather than a clean foundation for unattended releases.

Setup2/51,594 packages, 2,168 MB, and a 548-second failed test run
Docs3/5Clear user pitch, while the contributor guide has the detail
Community5/521,631 stars, 20 workflows, and an October 1 push
Maturity3/5v1.17.0 is active, but our full suite and audit were not clean

Discussed on

  1. hnShow HN: Dyad – build AI apps locally, no cloud5 points

Who it’s for

Developers who want a visual AI builder without moving the working project into a browser service.
Mac and Windows users who prefer a downloadable Electron app over assembling an agent, preview server, and editor.
Builders willing to supply model access and inspect generated code before publishing.
Contributors comfortable with a large TypeScript desktop application and its mixed-license codebase.

Who it’s NOT for

Teams that require every source file under Apache-2.0: the README says src/pro uses the Functional Source License 1.1, while the rest uses Apache-2.0.
Linux desktop users expecting an advertised download: the README lists Mac and Windows as the supported platforms.
Organizations with a clean dependency-audit gate: our npm audit found 96 known vulnerabilities, including 7 critical and 55 high.
Contributors who require the complete suite to pass in a fresh container: our run ended with 10 timed-out tests.
Small CI runners or lean development images: installation pulled 1,594 packages and occupied 2,168 MB.

Setup reality

Our sandbox installed commit fd562c6 in 110 seconds, pulling 1,594 packages and using 2,168 MB. The build passed in 187 seconds. Tests failed after 548 seconds: Vitest reported 9,099 passed, 10 failed, and 12 skipped out of 9,121; npm audit found 96 known vulnerabilities.

Using the finished app still requires model access, either through your own API keys or a supported subscription. Publishing and database features can bring in outside accounts such as Vercel, Cloudflare, or Supabase, depending on what you build. Development also requires a userData directory for the local database.

Dyad is an Electron app, and the package declares Node 24 or 25 for contributors. The README advertises downloads for Mac and Windows, not Linux. The 34.7 MB checkout has 20 CI workflow files but no Dockerfile, so containerizing the desktop development path is left to the contributor.

The project stays local, but the intelligence comes from elsewhere

Dyad is a desktop workshop for making web apps through chat. You describe a feature, inspect the result in a built-in preview, and keep the generated project on your machine. That last part is the useful distinction from browser-only builders: the working files are local, and the README says you can bring your own AI API keys. The application itself does not turn a laptop into a local language-model server.

The downloadable product targets Mac and Windows. Underneath, it is an Electron application with a TypeScript codebase and a local database stored under userData. Contributors need to create that directory before starting the app. The package declares Node 24 or 25, while the development commands use npm. For a person who wants to install an app and start prompting, that machinery stays mostly out of sight. Anyone changing Dyad itself gets the full desktop stack.

The license changes at src/pro

Most of the repository uses Apache-2.0, but the README draws a bright line around src/pro. That directory uses Functional Source License 1.1 with an Apache-2.0 future license. The contributing guide also says that contributions inside src/pro take that license. A company with an Apache-only intake rule cannot approve the repository by glancing at the root license file.

This split does not prevent normal use of the downloadable app. It does change what "open source" means across the checkout, especially for anyone planning to modify, redistribute, or build around Pro code. Read both license files before assigning engineers. The GitHub API reports the root license as NOASSERTION, which is another reason to review the directory boundary directly rather than depend on a metadata badge.

What happened when we ran it

Our sandbox installed commit fd562c6 in 110 seconds. npm added 1,594 packages, and the installed tree occupied 2,168 MB. The build then succeeded in 187 seconds inside an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The checked-out repository itself contained 3,664 files, about 657,595 lines of source, and used 34.7 MB.

The test command failed after 548 seconds. Vitest reported 9,099 passing tests, 10 failures, and 12 skipped tests out of 9,121. Each failure shown in the tail was a 5,000 ms timeout. The summary counted 74 failed test files, even though only 10 individual tests failed, so the file count should not be read as 74 distinct broken assertions.

The tail also printed expected error cases from search_replace_dsl.spec.ts, including case mismatch, missing context, repeated matches, and an empty original file. Those lines were on stderr, but the supplied tail does not identify them as the 10 timed-out cases. We cannot honestly connect the timeout to a specific subsystem from that excerpt. The finding is simply that the complete command did not finish cleanly on commit fd562c6.

npm audit found 96 known vulnerabilities: 7 critical, 55 high, 17 moderate, and 17 low. That count belongs to the dependency tree we installed, not a claim that 96 flaws are remotely exploitable through Dyad. It is still too large to wave through a strict software-supply-chain gate. A prospective adopter should inspect the affected packages and reachable paths before making a risk decision.

Mac and Windows get the documented download path

The README promises a no-sign-up download and names Mac and Windows. Linux is absent from that platform list, although the contributor instructions include Unix commands for creating userData. That makes source development and an officially advertised desktop package two different questions. Linux users should verify their intended path before treating Dyad as a cross-platform team standard.

Model access is another boundary. Bring-your-own-key support reduces dependence on a single AI vendor, but it does not remove hosted-model credentials or usage costs. Recent v1.17.0 notes added ChatGPT subscription support and an experimental Claude Code integration. Publishing features also mention Vercel and Cloudflare work, while Supabase appears throughout the current issue and release activity. Each service introduces its own account, permissions, and failure modes.

The October 1 push shows a busy project with a busy queue

GitHub recorded 21,631 stars, 308 open issues and pull requests, and a last push on October 1, 2026. Release v1.17.0 arrived on September 28 with a long list of fixes and additions. The release included test-isolation changes, a fix for an unresponsive MCP server freezing agent chats, Cloudflare publishing, and the experimental Claude Code work. This is active maintenance, not a repository coasting on an old tag.

The same pace brings churn. Open reports around the release include chats becoming stuck and built-in preview behavior differing from external browsers. These are user reports, not results from our container, and issue counts combine pull requests with issues. Still, a product that edits code, runs previews, connects model accounts, and publishes apps has a broad failure surface. Teams should test their chosen model and deployment route rather than treating the green build alone as acceptance.

Dyad is best for local visual building, not CI-first engineering

Bolt.diy is the closer pick when you prefer a browser workspace. OpenHands makes more sense when an agent needs to work through an existing repository rather than shape a new app in a visual builder. Open Lovable is narrower still: it starts from a live website and recreates it as React. Dyad earns its place when the local desktop loop is the reason you are choosing the tool.

That loop worked well enough for our build to finish, but the engineering bill is visible: 1,594 packages, 2,168 MB after installation, 96 audit findings, and a suite that stopped with 10 timeouts. For an individual builder, those costs may sit behind the installer. For a team adopting or extending the codebase, they belong in the decision before the first generated app reaches production.

Alternatives

ProjectWhat it isPick it when
Bolt.diyA browser-based full-stack app builder that can use several model providers.pick this instead when a web workspace and provider choice matter more than a desktop app.
OpenHands gh↗A general software-development agent for repository tasks rather than a visual app builder.pick this instead when the job starts with an existing codebase and issue queue.
Open LovableA narrower tool for recreating an existing website as a React application.pick this instead when the input is a live site you want to reproduce.

Sources

  1. Dyad README
  2. Dyad contributing guide
  3. Dyad v1.17.0 release
  4. Dyad issue 4681
  5. Dyad issue 1872

More ai tools reviews

nextai-translator · Toonflow-app · AutoRAG · MonkeyCode · grok-bot-templates · WorkDaddy · the whole board →