Getting Started
Installation
Download the OpenEditor desktop app for macOS. It’s a native app built with Tauri — no browser required.
Open the secure download flow →
First Launch
- Your projects appear automatically. OpenEditor scans
~/Documents/GitHubfor projects and lists them on the home screen. - Click a project to open it. Your routes load as live, interactive frames on an infinite canvas.
- Or open any folder. Click New > Open Folder to pick any local project directory.
Supported Frameworks
react
React / Vite — auto-detected
next
Next.js — auto-detected
astro
Astro — auto-detected
shopify
Shopify themes
expo
Expo / React Native
ios
iOS / SwiftUI via Simulator
static
Plain HTML / CSS / JS
Agent-Friendly Setup
OpenEditor projects are easiest for coding agents when the repo includes a small set of explicit files. Agents should inspect the repo first, preserve existing config, and write the smallest correct setup instead of inventing routes or credentials.
Use the OpenEditor skill
When your agent supports skills, ask it to use openeditor-project-setup. That skill is responsible for detecting the framework, creating OpenEditor config, and generating useful test metadata.
Use the openeditor-project-setup skill.
Inspect this repo and make it OpenEditor-ready.
Create or update .logic-editor.json.
Create oe-tests.json for stable preview routes.
For iOS or SwiftUI projects, create oe-swift.json.
Do not include secrets, tokens, account IDs, or private deployment values.
Expected agent outputs
| File | When to create | Purpose |
|---|---|---|
.logic-editor.json |
Every OpenEditor project | Project type, port, start command, route list, and optional canvas settings. |
oe-tests.json |
Previewable projects with stable routes | Repeatable preview/test flows for agents and local verification. |
oe-swift.json |
Real iOS or SwiftUI apps | Xcode project, scheme, simulator, and view capture metadata. |
AGENTS.md |
Repos that need repeatable agent behavior | Short repo-specific instructions, verification commands, and safety notes. |
AGENTS.md snippet
Add a short repo-level instruction file when a project needs repeatable agent behavior. Keep it public-safe and avoid machine-specific secrets.
# Agent Notes
Use the openeditor-project-setup skill for OpenEditor config work.
Before editing, read .logic-editor.json, oe-tests.json, and oe-swift.json if present.
Prefer conservative route detection; default to / when route signals are weak.
Run the project verification command before reporting completion.
Never write API keys, bearer tokens, account IDs, or private deployment values into config files.
Agent checklist
- Read existing
.logic-editor.json,oe-tests.json,oe-swift.json, andAGENTS.mdbefore editing. - Inspect high-signal files first:
package.json, lockfiles, route folders,.xcodeproj, and.xcworkspace. - Use conservative defaults when route detection is weak: one
/route labeledHome. - Keep secrets out of generated files. Use environment variable names only when configuration needs to refer to credentials.
- After writing config, run the smallest relevant verification command and report what still needs manual confirmation.
The Canvas
Every route in your project becomes a live, interactive frame on an infinite canvas. Frames are not screenshots — they render your actual running app.
- Pan — click and drag the background, or two-finger trackpad scroll
- Zoom — pinch on trackpad, or Cmd + scroll wheel
- Resize — drag the handles on a selected frame to test breakpoints
- Interact — click inside a frame to use your app normally
View Tabs
- Views — your route frames on the canvas
- Elements — auto-detected components rendered in isolation
- Code — built-in Monaco editor with your file tree
- Data — visual schema builder
- Style — extracted design tokens (colors, fonts, spacing)
- Config — route and state configuration
Dev Server
OpenEditor manages your dev server automatically:
- Auto-start on hover — hovering a project card on the home screen starts the server in the background
- Manual control — use the play/stop button in the navbar
- Port detection — the app auto-detects which port your server binds to
- HMR — code changes appear instantly in all frames via hot module replacement
Project Configuration
.logic-editor.jsonOpenEditor looks for this file in your project root. If it doesn’t exist, the app auto-detects your framework and creates one for you.
{
"name": "my-project",
"type": "react",
"port": 5173,
"requiredPorts": [5173],
"runCommand": "bun dev",
"routes": [
{ "path": "/", "label": "Home" },
{ "path": "/products/example", "label": "Product Page" }
],
"canvas": {
"artboardsPerRow": 2
}
}
Configuration Fields
| Field | Type | Description |
|---|---|---|
name Required |
string |
The display name of your project in the Project Cluster. |
type Required |
string |
Project flavor hint used for route auto-discovery and UI badges. |
port Required |
number |
The local port your development server is running on (e.g., 5173). |
runCommand Optional |
string |
The terminal command used to start your dev server. Default: bun dev. |
requiredPorts Optional |
number[] |
Ports that must be alive for preview. Include the main preview port when using this field. |
routes Required |
array |
A list of navigatable URL paths to be displayed as selectable frames in the editor. |
pages Optional |
array |
Grouped route collections for larger projects. Use this instead of duplicating large top-level route lists. |
location Optional |
string |
The absolute or relative path to the project root. Automated during folder selection. |
canvas Optional |
object |
Canvas layout hints, such as artboardsPerRow. |
platform Optional |
string |
Useful for mobile projects where the project type alone is not enough. |
integrations Optional |
object |
Optional integration metadata. Store references, not raw credentials. |
Route Definitions
Each item in the routes array can include advanced preview states for different
scenarios:
{
"path": "/dashboard",
"label": "User Dashboard",
"states": [
{ "label": "Guest View", "query": "?auth=false" },
{ "label": "Admin View", "query": "?auth=true&role=admin" }
]
}
Type Values
Supported values for type:
react
Standard React / Vite project (default)
next
Next.js-style routing projects
astro
Astro projects
static
Static HTML projects
shopify
Shopify theme projects
ios
Xcode / SwiftUI projects
android
Android projects
react-native
React Native projects
expo
Expo projects
unknown
Source-only or custom projects
Use unknown when the repo cannot be classified safely. A small accurate config is better than a broad speculative one.
Integration with Project Loading
When a project is added via the "Add Project" button in the Workspace Manager:
- The editor scans the selected directory.
- It attempts to auto-discover routes by analyzing the file structure (e.g.,
src/pages,pages,src/app,app, and optionallytemplates/). - It generates or updates this JSON file to persist your workspace settings.
- Agents can repeat the same onboarding process by using the
openeditor-project-setupskill.
Best Practices
- Place this file in the root directory of your repository.
- Ensure your
runCommandmatches the package manager you are using (e.g.,npm run devvsbun dev). - Ensure your
portmatches the one your local dev server actually binds to. - Do not store secrets in OpenEditor config files. Use environment variables or platform secrets.
- Keep agent instructions in
AGENTS.mdshort: repo purpose, setup command, verification command, and files the agent should avoid touching.
iOS / SwiftUI Projects
OpenEditor supports native iOS and SwiftUI projects. Create an oe-swift.json file next to your .xcodeproj:
{
"name": "MyApp",
"project": "MyApp.xcodeproj",
"scheme": "MyApp",
"simulator": "iPhone 16 Pro",
"bundleId": "com.example.myapp",
"views": [
{ "name": "Home", "file": "Views/HomeView.swift" },
{ "name": "Profile", "file": "Views/ProfileView.swift" }
]
}
Each view gets a preview node on the canvas with live simulator screenshots. The preview engine watches .swift files and automatically rebuilds and re-captures when you make changes.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd + S | Save current file (Code tab) |
Cmd + Z | Undo |
Cmd + Shift + Z | Redo |
Space + Drag | Pan the canvas |
Cmd + Scroll | Zoom in/out |
Cmd + 0 | Reset zoom to fit |
Delete | Remove selected frame |
Troubleshooting
Frames not loading
- Make sure your dev server is running (check the play button in the navbar)
- Verify the port in your
.logic-editor.jsonmatches your dev server - Check the Console tab in the inspector for errors
iOS previews not capturing
- Ensure the iOS Simulator is booted and the app is installed
- Check that
oe-swift.jsonhas the correctprojectandscheme - Try clicking Build & Capture to rebuild from scratch
Projects not appearing
- Projects must be inside
~/Documents/GitHubfor auto-discovery - Or use New > Open Folder to add any directory manually
- The project needs a
package.json,oe-swift.json, or.logic-editor.json