The open visual AI builder
Hemingweight is an open-source, browser-based IDE. Type what you want. An AI writes the code, builds the files, and shows you the result — live.
How it works
Tell Hemingweight what you want in plain English. The agent writes production-ready code, iterates on it, and stays out of your way.
Your site renders as it's built. Components appear in the live preview the moment they're written. No refresh, no waiting.
GitHub, Supabase, Vercel, Netlify — connect services in one click. No config files, no terminal. Just authenticate and go.
Hemingweight monitors your browser console and logs. When an error appears, it diagnoses the issue and pushes a fix automatically.
Get started
Hemingweight runs on Claude Code, Anthropic's AI coding agent. You'll need a Claude account (Max or API key).
Open Terminal (Cmd + Space → type Terminal → Enter) and run:
npm install -g @anthropic-ai/claude-code
Don't have npm? Install Node.js first (it includes npm).
In Terminal, type claude and press Enter to start Claude Code. Once it's running, paste this prompt:
Install Hemingweight on this machine. Here's exactly what to do:
1. Check prerequisites: make sure node (v18+), python3, and git are available. If anything is missing, install it via Homebrew (install Homebrew first if needed on macOS).
2. Clone the repo: if ~/Developer/hemingweight exists, cd into it and run "git pull". Otherwise run "git clone https://github.com/AlexandreFlamant/hemingweight.git ~/Developer/hemingweight". Create ~/Developer if it doesn't exist.
3. Install dependencies: run "npm install --production" in ~/Developer/hemingweight, then "npm install" in ~/Developer/hemingweight/client.
4. Build the client: run "npm run build" in ~/Developer/hemingweight/client. Verify that ~/Developer/hemingweight/client/dist/index.html exists after.
5. Compute the Chrome extension ID from the key in the extension manifest — do NOT use the file path. Run this command:
python3 -c "
import json, hashlib, base64, os
manifest = json.load(open(os.path.expanduser('~/Developer/hemingweight/extension/manifest.json')))
key_bytes = base64.b64decode(manifest['key'])
digest = hashlib.sha256(key_bytes).hexdigest()[:32]
print(''.join(chr(ord('a') + int(c, 16)) for c in digest))
"
The result must be oppghhmjfjibmjjbpchmhheelfcnbboo. If it is not, stop and report the error.
6. Register Chrome native messaging: read the template at ~/Developer/hemingweight/native-host/com.hemingweight.server.json.template. Replace HEMINGWEIGHT_HOST_SH_PATH with the absolute path to ~/Developer/hemingweight/native-host/hemingweight-host.sh, and set allowed_origins to ["chrome-extension://oppghhmjfjibmjjbpchmhheelfcnbboo/"]. Write the result to the Chrome NativeMessagingHosts directory — on macOS that's "~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.hemingweight.server.json", on Linux it's "~/.config/google-chrome/NativeMessagingHosts/com.hemingweight.server.json". Create the directory if needed.
7. Make the host script executable: run "chmod +x ~/Developer/hemingweight/native-host/hemingweight-host.sh"
When everything is done, tell me to open Chrome, go to chrome://extensions, enable Developer mode (top right toggle), click Load unpacked, and select ~/Developer/hemingweight/extension.
Claude will check your system, install anything missing, and set everything up. Just approve the commands it runs.
Once Claude finishes, open Chrome and follow these steps:
chrome://extensions~/Developer/hemingweight/extensionFAQ
~/Developer folder on your computer. Your files never leave your machine unless you push to GitHub.