A desktop application for creating Scaffold-ETH 2 projects with a user-friendly GUI. Built with Electron, React, and TypeScript.
- ๐ Easy Project Creation - Create new Scaffold-ETH 2 projects with a simple interface
- ๐ฏ Framework Selection - Choose between Hardhat or Foundry
- ๐ Extension Support - Select from a curated list of extensions or use third-party extensions
- ๐ฆ Version Control - Select specific versions of create-eth (defaults to latest)
- ๐ Project Management - View and manage all your created projects
- ๐ง IDE Integration - Open projects directly in Cursor or VS Code
- โ Validation - Automatic validation to prevent duplicate project names
- Node.js >= 20.18.3 (required by create-eth)
- Yarn >= 1.0.0 (required by create-eth, recommended >= 2.0.0)
- Foundry (if using Foundry framework) - Install from getfoundry.sh
- Clone the repository:
git clone <repository-url>
cd create-eth-desktop- Install dependencies:
npm install- Build the Electron files:
npm run electron:build- Start the development server:
npm run dev- In another terminal, start Electron:
npm run electron:devBuild the application for distribution:
# Build for current platform
npm run dist
# Build for specific platforms
npm run dist:mac # macOS
npm run dist:win # Windows
npm run dist:linux # LinuxBuilt applications will be in the dist-electron directory.
- Click "Create New Project"
- Choose a destination folder
- Enter a project name
- Select a framework (Hardhat or Foundry)
- (Optional) Select a create-eth version
- (Optional) Choose an extension
- Click "Create" and wait for the project to be generated
- View all your projects on the main screen
- Click on a project to open it in your preferred IDE (Cursor or VS Code)
- Select your preferred IDE from the dropdown
- Delete projects you no longer need
create-eth-desktop/
โโโ electron/ # Electron main process files
โ โโโ main.ts # Main process entry point
โ โโโ preload.ts # Preload script for IPC
โโโ src/ # React application
โ โโโ App.tsx # Main app component
โ โโโ ProjectsList.tsx
โ โโโ CreateProject.tsx
โโโ dist/ # Built React app (generated)
npm run dev- Start Vite dev servernpm run build- Build React app and Electron filesnpm run electron:build- Build only Electron TypeScript filesnpm run electron:dev- Start Electron in development modenpm run dist- Build for distributionnpm start- Start Electron (production mode)
The app uses Electron's IPC (Inter-Process Communication) to:
- Find Node.js/npx - Automatically locates Node.js installations (including nvm) to run create-eth
- Validate Requirements - Checks Node.js version and ensures it meets create-eth requirements (>= 20.18.3)
- Run create-eth - Executes
npx create-ethwith your selected options - Stream Output - Shows real-time output from the create-eth process
- Manage Projects - Stores project metadata locally for easy access
To distribute the macOS app without Gatekeeper warnings, you need to:
-
Get an Apple Developer Certificate:
Step 1: Sign up for Apple Developer Program
- Go to developer.apple.com/programs
- Sign up for the Apple Developer Program ($99/year)
- Complete enrollment and wait for approval (usually instant for individuals)
Step 2: Create a Developer ID Application Certificate
Option A: Using Xcode (Easiest)
- Open Xcode
- Go to Xcode โ Settings (or Preferences on older versions)
- Click the Accounts tab
- Click the + button and sign in with your Apple ID
- Select your Apple ID and click Manage Certificates...
- Click the + button โ Developer ID Application
- Xcode will automatically create and install the certificate in your Keychain
Option B: Using Apple Developer Portal
- Go to developer.apple.com/account
- Sign in with your Apple ID
- Click Certificates, Identifiers & Profiles
- Click Certificates โ + button
- Select Developer ID Application โ Continue
- Follow the instructions to create a Certificate Signing Request (CSR):
- Open Keychain Access on your Mac
- Go to Keychain Access โ Certificate Assistant โ Request a Certificate From a Certificate Authority
- Enter your email and name, select Saved to disk
- Upload the CSR file on the Apple Developer portal
- Download the certificate and double-click to install it in Keychain Access
Step 3: Export Certificate as .p12 File
- Open Keychain Access on your Mac
- Select login keychain (left sidebar)
- Select My Certificates category
- Find your Developer ID Application certificate (it should show your name/company)
- Right-click the certificate โ Export "Developer ID Application: Your Name"
- Choose Personal Information Exchange (.p12) format
- Save it (remember the location and password you set!)
- Enter a password when prompted (remember this - you'll need it for GitHub Secrets)
Step 4: Convert .p12 to Base64 for GitHub
- Open Terminal
- Navigate to where you saved the .p12 file
- Run:
base64 -i YourCertificate.p12 | pbcopy - This copies the base64-encoded certificate to your clipboard
- Paste it into the
APPLE_CERTIFICATE_BASE64GitHub secret (it will be a very long string)
Step 5: Get Your Apple Team ID
- Go to developer.apple.com/account
- Sign in
- Your Team ID is displayed at the top right (format:
ABC123DEF4) - Or in Xcode: Xcode โ Settings โ Accounts โ Select your account โ Team ID is shown
-
Set up environment variables (for local builds):
export APPLE_TEAM_ID="YOUR_TEAM_ID" export APPLE_ID="[email protected]" export APPLE_APP_SPECIFIC_PASSWORD="your-app-specific-password"
-
For GitHub Actions, add these secrets:
How to add secrets to GitHub:
- Go to your GitHub repository page
- Click Settings (top menu bar)
- In the left sidebar, click Secrets and variables โ Actions
- Click New repository secret button
- Add each secret below (Name = secret name, Secret = the value)
Required secrets:
APPLE_CERTIFICATE_BASE64: Base64-encoded .p12 certificate- Export your certificate from Keychain Access as .p12
- Convert to base64:
base64 -i certificate.p12 | pbcopy(macOS) or use an online base64 encoder
APPLE_CERTIFICATE_PASSWORD: Password you set when exporting the .p12 certificateAPPLE_TEAM_ID: Your Apple Team ID (found in Apple Developer portal or Xcode โ Preferences โ Accounts)APPLE_ID: Your Apple ID email (the one associated with your Apple Developer account)APPLE_APP_SPECIFIC_PASSWORD: App-specific password- Generate at appleid.apple.com
- Sign in โ Sign-In and Security โ App-Specific Passwords โ Generate an app-specific password
-
Generate app-specific password:
- Go to appleid.apple.com
- Sign in โ App-Specific Passwords โ Generate
- Use this password in
APPLE_APP_SPECIFIC_PASSWORD
Note: Without code signing, users will need to right-click the app and select "Open" the first time, then click "Open" in the security dialog.
This is a macOS Gatekeeper issue. Solutions:
- Right-click and Open: Right-click the app โ "Open" โ Click "Open" in the dialog
- Remove quarantine attribute (temporary fix):
xattr -cr "/Applications/Create ETH Desktop.app" - Proper fix: Code sign and notarize the app (see Code Signing section above)
The app automatically searches for Node.js installations. If you're using nvm, make sure you have Node.js >= 20.18.3 installed:
nvm install 20.18.3
nvm use 20.18.3Make sure Foundry is installed and in your PATH. The app will automatically add ~/.foundry/bin to the PATH, but if Foundry is installed elsewhere, you may need to add it manually.
Create-eth requires Node.js >= 20.18.3. The app will automatically try to find a compatible version if you have multiple Node.js versions installed (via nvm).
[Add your license here]
[Add contribution guidelines here]