DEV Community

권용범
권용범

Posted on

I built a one-click installer for OpenClaw AI agent

If you've ever tried setting up OpenClaw — the
open-source AI agent that runs on Telegram — you know the drill: install Node.js, run a bunch of
npm commands, configure API keys in JSON files, set up a gateway process, figure out why it
won't start...

I kept seeing people in the community give up halfway through the setup. So I built EasyClaw
— a desktop app that handles the entire installation in three clicks.

## What it does

Download → Run → Enter your API key. That's the whole process.

EasyClaw automatically:

  • Detects your environment (Node.js version, WSL on Windows, etc.)
  • Installs missing dependencies
  • Configures OpenClaw with your AI provider (Anthropic, Google Gemini, OpenAI, MiniMax, or GLM)
  • Sets up a Telegram bot so you can chat with your AI agent from your phone
  • Runs the gateway process in the background with a system tray icon

## The interesting technical challenges

### Cross-platform WSL automation (Windows)

On macOS, the setup is fairly straightforward — install Node.js, run npm. But Windows doesn't
have a native Unix environment, so OpenClaw runs inside WSL (Windows Subsystem for Linux).

Automating WSL installation from an Electron app turned out to be surprisingly tricky:

  • WSL state machine: WSL can be in 6 different states. Each state needs different handling.
  • Reboot persistence: WSL installation requires a system reboot. The app saves wizard state to a JSON file with a 24-hour expiry, so users can pick up right where they left off after rebooting.
  • IPv6 issues: WSL defaults to IPv6 DNS resolution which breaks some network calls. We force NODE_OPTIONS=--dns-result-order=ipv4first when running the gateway.

### Electron lifecycle quirks

The app lives in the system tray. Closing the window doesn't quit the app — it just hides it.
The gateway keeps running in the background and polls for status every 10 seconds.

### 7-step wizard with conditional flow

The installation wizard has 7 steps, but not all are shown to every user. We built a custom
useWizard hook with history tracking for back navigation and goTo() for skipping steps.

## Stack

  • Electron + electron-vite for the desktop shell
  • React 19 + Tailwind CSS 4 for the UI
  • TypeScript throughout
  • electron-builder + GitHub Actions for CI/CD
  • Apple Notarization for macOS code signing
  • i18n support for Korean, English, Japanese, and Chinese

## Try it out

It's MIT licensed and fully open source. Contributions welcome!

Would love to hear your feedback. What AI providers would you like to see supported next?

Top comments (0)