A native Swift editor for Code and Markdown across macOS, iPadOS, iOS, and visionOS.
See the code
Neon Vision Editor
A native editor for markdown, notes, and code across macOS, iPhone, iPad, and Apple Vision Pro.
Minimal by design. Quick edits, fast file access, no IDE bloat.
Download: GitHub Releases · App Store · TestFlight
Status: active release
Latest release: v1.8.5 Next release target: v1.8.6 Platform target: macOS 26 (Tahoe) compatible with macOS Sequoia Apple Silicon: supported Direct GitHub release: v1.8.5 / App Store and TestFlight availability varies by platform and review status Last updated (README): 2026-09-26 for latest release v1.8.5
git clone https://github.com/h3pdesign/Neon-Vision-Editor.gitcd Neon-Vision-Editorxcodebuild -project "Neon Vision Editor.xcodeproj" -scheme "Neon Vision Editor" -destination 'platform=macOS,name=My Mac' buildopen "Neon Vision Editor.xcodeproj" and run, then use Cmd+P for Quick Open.| For | Not For |
|---|---|
| Fast native editing across macOS, iOS, iPadOS | Full IDE workflows with deep refactoring/debugger stacks |
| Markdown writing and script/config edits with highlighting | Teams that require Windows or Linux support |
| Users who want low overhead and quick file access | Users expecting full desktop-IDE parity on iPhone |
Start Here · Release Channels · Core Workflows · Download Metrics · Project Documentation · Features
Established Workflows · Architecture At A Glance · Platform Matrix · Roadmap (Near Term) · Troubleshooting · FAQ · Changelog · Contributing Quickstart · Support & Feedback
| Channel | Best for | Delivery | Current status |
|---|---|---|---|
| Direct notarized builds and fastest stable updates | GitHub Releases | v1.8.5 release docs current; v1.8.5 direct download current | |
| Apple-managed install/update flow | App Store | Check the platform listing for current availability | |
| Early testing of upcoming changes | TestFlight | Newest beta availability may vary by review state |
Release Download + Traffic Trend
Styled line chart shows per-release totals with 14-day traffic counters for clones and views.
| Document | Purpose |
|---|---|
CHANGELOG.md | Full release history and milestone issue coverage |
release/RELEASE-WORKFLOW.md | Isolated release preparation, changelog/README generation, offline dry runs, and publication checks |
docs/ARCHITECTURE.md | Current cross-platform architecture, ownership boundaries, performance rules, and verification model |
CONTRIBUTING.md | Local setup, build, and contribution workflow |
PRIVACY.md | Privacy guarantees and data-handling policy |
SECURITY.md | Security policy and responsible disclosure |
release/ | TestFlight, App Store, and release preflight checklists |
| Path | Contents |
|---|---|
Project/Sources/ | Main app, extensions, Neon Pulse products, and shared Swift source |
Project/Tests/ | Cross-platform test target and shared test plan |
Project/Configuration/ | Platform and widget property lists |
docs/ | Architecture, engineering documentation, and media |
samples/ | Language, Markdown, and PDF regression fixtures |
scripts/ | Build, validation, release, and maintenance automation |
site/ | Localized GitHub Pages website |
| Best For | Why Neon Vision Editor |
|---|---|
| Quick note takers | Fast native startup and low UI overhead for quick edits |
| Markdown-focused writers | Clean editing with quick preview workflows on Apple devices |
| Developers editing scripts/config files | Syntax highlighting + fast file navigation without full IDE complexity |
| Advantage | What It Means |
|---|---|
| Faster startup | Lower overhead for short edit sessions |
| Focused surface | Editor-first workflow without project-system bloat |
| Native Apple behavior | Consistent experience on macOS, iOS, and iPadOS |
Prebuilt binaries are available on GitHub Releases.
The direct GitHub release is currently ahead of the iOS/iPadOS App Store version. The App Store version may temporarily lag while updates are in Apple review.
| Channel | Platform | Best For | Download | Release Track | Notes |
|---|---|---|---|---|---|
| Stable | macOS | Direct notarized builds and fastest stable updates | GitHub Releases | v1.8.5 | Current direct download |
| Store | iOS / iPadOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v1.8.4 | Current public App Store listing |
| Store Review | macOS | Corrected App Store update | App Store Connect review | v1.8.5 | In Apple review |
| Store | visionOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v1.6.1 | Current recorded visionOS listing |
| Beta | iOS / iPadOS / macOS | Testing upcoming changes before stable | TestFlight Invite | v1.8.5 | Early access builds for feedback; availability may vary by review state |
Install the latest release directly:
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh
Install without admin password prompts (user-local app folder):
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh -s -- --appdir "$HOME/Applications"
Install the official Homebrew cask:
brew install neon-vision-editor
The explicit cask form is equivalent:
brew install --cask neon-vision-editor
Cask source: Homebrew/homebrew-cask
If Homebrew asks for an admin password, it is usually because casks install into /Applications.
Use this to avoid that:
brew install --cask --appdir="$HOME/Applications" neon-vision-editor
The direct macOS build from GitHub bundles an optional nve helper for terminal workflows. It is not included in the Mac App Store build. Install it only when you want a shell command:
$HOME/bin.nve README.md
nve --wait --new-window "Project/Sources/Neon Vision Editor/UI/ContentView.swift"
nve --line 42 "Project/Sources/Neon Vision Editor/UI/ContentView.swift" # validates the line flag; cursor placement is not yet supported
Development builds can also link the repository copy:
mkdir -p "$HOME/bin"
ln -sf "$PWD/scripts/nve" "$HOME/bin/nve"
Permission model: the helper is optional and user-linked. It calls macOS Launch Services through /usr/bin/open and does not read file contents itself. Neon Vision Editor handles the document-open request inside the sandbox with user-selected read/write file access and security-scoped file access. It does not require Full Disk Access, Accessibility access, administrator permission, background services, or telemetry. See docs/CommandLineHelper.md.
The macOS Project Sidebar brings files, search, and Git together, with Terminal available in the direct build. Remote Sessions are opt-in. Markdown formatting, preview, and export stay in one contextual flow.
Neon Vision Editor keeps the surface minimal and focuses on fast writing/coding workflows. Platform-specific availability is tracked in the Platform Matrix section below.
Editing Core
Navigation & Preview
Platform, Output & Customization
Safety & Privacy
UITextView input and rendering path over the shared tab/document model.Cmd+P), project sidebar navigation, and recursive project tree rendering.scripts/nve opens files from the terminal and supports --wait, --new-window, and --line compatibility flags..gitignore files. Use the project sidebar's Ignored Folders menu to exclude node_modules, build, dist, and other listed output folders; custom paths and patterns belong in .gitignore. Unknown text-file extensions remain searchable. Git global excludes and tracked-file exceptions are not applied.Expand All / Collapse All), recent project folders, file filters for All Files, Modified, Images, PNG, PDF, and Markdown, and default ignored heavy folders (.git, .build, node_modules, DerivedData).Save As… and Close All Tabs with confirmation.Aa control..svg files support XML editing, bracket help, and rendered SVG Preview on all platforms.
Aa control on iPhone.The current stable editor separates scene presentation, document ownership, native rendering, and optional services. Arrows show ownership or data exchange, not thread guarantees.
ContentView owns scene presentation; each window has an @MainActor EditorViewModel. TabCommandQueue serializes asynchronous tab mutations, while TabData keeps UI identity, document resource identity, and content revisions distinct.EditorDocument is the bounded read/edit contract, not the load/save controller. TabData currently uses FileBackedTextDocument for both URL-backed files and content initialized in memory. Eligible large local files retain disk source ranges plus replacement pieces; the loader completes their line index before transferring ownership to the main actor. Saves preserve encoding and line endings and use the existing conflict and atomic-replacement flow.VirtualEditorView wraps an AppKit scroll view and a Core Text canvas implementing NSTextInputClient. It consumes bounded windows and UTF-16 ranges, uses generation/revision checks, and owns drawing, hit testing, selection, undo and input. CustomTextEditor wraps UITextView on iOS/iPadOS/visionOS. SwiftUI allocates panes; neither preview nor structured views create a second document store.EmmetExpander support both native paths. Emmet 2 runs locally from the bundled JavaScript through JavaScriptCore; it is separate from provider-backed AI. The macOS HEX picker edits through the canvas's existing mutation path.OpenDocumentObservationCenter uses NSFilePresenter events to refresh clean local tabs and offer Keep Local, Reload from Disk, or Compare for dirty tabs. iCloud Drive/network folders supply document transport; appearance sync is a separate preferences service. Peer-to-peer document handoff remains proposed in #164.ProjectFileIndex; chat captures explicit context before calling AIClient; remote sessions use macOS SSH/broker hosting with mobile/spatial attach clients. Provider credentials and SSH-key bookmarks remain in Keychain, while document recovery, saved conversations, preferences and PDF annotations use their respective stores.nve helper. ReleaseRuntimePolicy gates distribution-specific behavior.Full architecture reference: docs/ARCHITECTURE.md. The reference tracks the current Swift 6 cross-platform structure, platform guards, editor rendering paths, performance rules, distribution boundaries, and release verification workflow.
Implementation entry points: tab/document orchestration, document contract, storage, macOS canvas, UIKit editor, and distribution policy.
@MainActor) and heavy work off the UI thread.Neon Vision Editor shares its editor core across macOS, iPhone, iPad, and Apple Vision Pro. Platform-specific controls adapt to available space and input rather than exposing desktop-only workflows on touch devices. macOS also has two distribution profiles: the direct GitHub build includes optional local developer tools, while App Store builds keep those executable-code workflows out of the shipped UI.
Platform boundary: Git review is available on macOS when a local repository and Git installation are present. The PTY Terminal, Python project creation/execution, and the bundled
nvecommand-line helper are direct-macOS-only; they are not included in the App Store macOS build and are not exposed on iPhone, iPad, or Apple Vision Pro. SSH-hosted Remote Sessions remain opt-in and use macOS as the host.
Availability key: full native workflow ·
layout adapts to space and input ·
touch-first presentation ·
local desktop capability
| Capability | macOS | iPhone | iPad | Apple Vision Pro | Notes |
|---|---|---|---|---|---|
| Emmet 2 | Native editor | Native editor | Native editor | Native editor | Local abbreviation expansion in supported markup/stylesheet contexts; uses configured indentation. |
| HEX color picker | Gutter swatch and native picker | -- | -- | -- | CSS/HTML/XML/SVG; source edits preserve representable short and alpha formats. |
| Apple Pencil editing | -- | -- | Hover caret, drag selection, preference-aware undo | -- | Requires compatible iPad/Pencil hardware and enabled system preferences. |
| Saved AI chats | Sidebar | Compact presentation | Sidebar | Adaptive presentation | Explicit context; optional providers; credentials in Keychain. |
Quick OpenCmd+P | Keyboard and menu | Hardware keyboard | Keyboard and menu | Hardware keyboard | Keyboard-first navigation remains available whenever a hardware keyboard is connected. |
| Project workspace | Files/Search/Git rail; Terminal in direct build | File workflow | Files/Search workflow | Spatial workspace | Git review is macOS-only; the PTY Terminal is direct-macOS-only. |
| Find in Files | Sidebar | Sheet | Sidebar | Panel | On Mac and iPad, results remain visible while opening a match. |
| Markdown formatting | Collapsible toolbar below tabs | Aa status-row menu | Collapsible toolbar below tabs | Collapsible toolbar below tabs | Direct Bold, Italic, Link, Quote, and Code actions; structural actions and five heading levels remain available in menus. |
| Toolbar and workspace presets | Compact labels; standard, focused, developer, review, complete, custom | Icon-first toolbar; compact preset controls | Compact labels and preset controls | Spatial toolbar presentation | Presets are configured from Settings; labels and available controls adapt to space and input. |
| Tab closing | Close controls and confirmation | Double-tap tab | Double-tap tab | Spatial tab controls | Unsaved-change confirmation remains active on every platform. |
| Status-bar and navigation surface | macOS window chrome | Transparent iOS composition | iPadOS surface composition | Spatial chrome | v1.2.1 restores the transparent iOS status-bar composition without changing the editor or preview layout. |
| Preview Markdown, HTML, SVG, PDF, PNG | Inline split pane | Full-screen sheet | Inline pane in regular width | Inline pane | Markdown/HTML/SVG remain opt-in; PDF/PNG open automatically. PDF notes reuse the existing editor and optional Markdown preview. |
| Preview appearance | Templates and backgrounds | Templates and compact controls | Templates and backgrounds | System Glass, Paper, Slate, or Ink | visionOS intentionally uses its own reader surfaces instead of the full Markdown template collection. |
| Font-size gesture | Trackpad pinch | Touch pinch | Touch pinch | Touch pinch | Gestures adjust editor font size from 10 to 28 pt and retain the regular font-size controls. |
| Code Minimap | Opt-in | Opt-in | Opt-in | Opt-in | Available for supported languages; it stays hidden for document types where a minimap is not useful. |
| Diff workflows | Inline | Sheet | Inline | Panel | Compact presentations avoid taking over narrow touch layouts. |
| Git review | Local repository history, changes, and diffs | -- | -- | -- | Requires a local Git repository and an installed Git executable on macOS. |
| PTY Terminal and Python workflow | PTY terminal, Python project runner, and nve helper | -- | -- | -- | Available in the direct GitHub macOS build; intentionally omitted from App Store macOS builds and all mobile/spatial builds. |
| Remote sessions | SSH owner and broker host | Broker attach client | Broker attach client | Broker attach client | Remote access is opt-in; iPhone, iPad, and visionOS explicitly save through a Mac-hosted session. |
| Save and export | Native Save As and export | System exporter | System exporter | System exporter | iPhone and iPad export Markdown and Swift with their declared content types. |
More release integrity details: Release Integrity
docs/images/README.md
Light editor workspace with symbol navigation |
Wide light editor workspace with toolbar actions |
Compact light editor workspace with focused code view |
Light editor workspace with code minimap |
| Track | Current Focus | Status |
|---|---|---|
| Stable direct download | v1.8.5 notarized GitHub release | Current |
| App Store rollout | Platform releases are published independently after App Review | Check the relevant App Store listing |
| Post-1.4 stabilization | Crash triage, docs freshness, platform polish, App Store/Xcode Cloud release checks | Next patch train |
| Larger workflow work | Remote workflow hardening, minimap polish, project navigation refinements | Later v1.5+ work |
<pdf-name>.pdf.notes.md opens in the existing editor on the left. Enable the optional Markdown preview explicitly to render it beside the PDF.Cmd+P.Settings > DesignsSettings > Allgemein/General > WindowSettings > EditorSettings > Allgemein/GeneralSettings > Mehr/More > Remote or Settings > Remote on wider layoutsSettings > Mehr/More (platform-dependent)SecureTokenStore, not in UserDefaults.All shortcuts use Cmd (⌘). iPhone, iPad, and Apple Vision Pro require an external hardware keyboard. The table shows defaults; selected editor shortcuts can be customized in Settings > Shortcuts.
Availability key: assigned shortcut ·
external keyboard required ·
desktop command
| Shortcut | Action | macOS | iPhone | iPad | Apple Vision Pro |
|---|---|---|---|---|---|
Cmd+N | New Window | -- | -- | -- | |
Cmd+T | New Tab | ||||
Cmd+O | Open File | ||||
Cmd+Shift+O | Open Folder | ||||
Cmd+S | Save | ||||
Cmd+Shift+S | Save As | ||||
Cmd+W | Close Tab | ||||
Cmd+X, Cmd+C, Cmd+V, Cmd+A | Cut, Copy, Paste, Select All | ||||
Cmd+Z, Cmd+Shift+Z | Undo, Redo | ||||
Cmd+B, Cmd+I, Cmd+K | Bold, Italic, Link in Markdown | -- | -- |
| Shortcut | Action | macOS | iPhone | iPad | Apple Vision Pro |
|---|---|---|---|---|---|
Cmd+F, Cmd+G | Find, Find Next | ||||
Cmd+Shift+F | Find in Files | ||||
Cmd+P | Quick Open | ||||
Cmd+L | Go to Line | ||||
Cmd+Shift+J | Go to Symbol | ||||
Cmd+Option+S | Toggle Sidebar | ||||
Cmd+Option+L | Toggle Line Wrap | ||||
Cmd+Option+M | Toggle Code Minimap | -- | -- | -- | |
Cmd+,, Cmd+? | Settings, Toolbar Help |
| Shortcut | Action | Availability |
|---|---|---|
Cmd+D | Add Next Match | |
Cmd+Shift+D | Brain Dump Mode | |
Cmd+Shift+V | Toggle Vim Mode | |
Cmd+Shift+G | Suggest Code | |
Cmd+Option+Shift+L | AI Activity Log | |
Cmd+Shift+U | Inspect whitespace at caret |
Vim navigation is also available on iPad with a hardware keyboard after enabling Vim mode; arrow keys and the standard Vim movement keys work in Normal mode.
Latest stable: v1.8.5 (2026-09-26)
timeline
title Neon Vision Editor — recent release story
16 September 2026 : v1.8.1 · Release highlights
: Gives iPhone and iPad a compact bottom editor toolbar with easier access to tools while keeping more code visible.
18 September 2026 : v1.8.2 · A more deliberate workflow
: View large Markdown documents as rendered Markdown instead of a truncated source preview.
19 September 2026 : v1.8.3 · Release highlights
: Edit complete text documents below 100 MB without entering the excessive-file preview mode.
21 September 2026 : v1.8.4 · Release highlights
: Browse JSON in a structured preview and read YAML with syntax colors.
26 September 2026 : v1.8.5 · A more deliberate workflow
: Choose whether Markdown opens for editing or full-window reading, and switch modes from the toolbar or keyboard.
The recent release arc is about continuity: files that change outside the app, workflows that stay reviewable, windows that return where you left them, and document transitions that preserve your editing context. The full record remains in CHANGELOG.md.
| Release | The editor change | What it protects or enables |
|---|---|---|
v1.8.5 | A more deliberate workflow — Choose whether Markdown opens for editing or full-window reading, and switch modes from the toolbar or keyboard. | Makes configured app shortcuts available while the mobile editor has hardware-keyboard focus; restores the documented Save As, Line Wrap, and… |
v1.8.4 | Release highlights — Browse JSON in a structured preview and read YAML with syntax colors. | Uses the same window routing for new and already-open files across macOS Spaces (#583, #584). |
v1.8.3 | Release highlights — Edit complete text documents below 100 MB without entering the excessive-file preview mode. | Fixes clipped unwrapped text on iPhone and iPad by keeping the drawing canvas and horizontal scrolling geometry aligned, including cursor reveal… |
CHANGELOG.mdPRIVACY.md.SecureTokenStore), not UserDefaults.SECURITY.md.v1.8.5git rev-parse --verify v1.8.5
shasum -a 256 <downloaded-file>
git config --local gpg.ssh.allowedSignersFile "$HOME/.config/git/allowed_signers"
git log --show-signature -1
Stable: tagged GitHub releases intended for daily use.Beta: TestFlight builds may include in-progress UX and platform polish.CHANGELOG.md.If you already completed the Start in 60s (Source Build), you can open and run directly from Xcode.
git clone https://github.com/h3pdesign/Neon-Vision-Editor.git
cd Neon-Vision-Editor
open "Neon Vision Editor.xcodeproj"
Contributor guide: CONTRIBUTING.md
| Branch | Purpose | Use for contributions |
|---|---|---|
main | Production-ready code and published release state | Do not target this branch for contributions. All contributions, including standalone documentation and maintenance changes, must target develop unless a maintainer explicitly requests main. |
develop | Integration branch for the next release | Start normal feature, bug-fix, and code-related documentation work here, then open the PR back into develop. |
release/<version> | Short-lived release stabilization branch created from develop | Maintainer-managed; do not use it for regular contributions or new features. Its release PR targets main. |
archive/legacy-branches | Preserved historical branch tips | Read-only history; do not branch from it or target it with a PR. |
automation/* | Generated metadata, metrics, appcast, or Store synchronization | Bot-managed; do not use these branches for manual contributions. |
Both main and develop are protected, so contribute from a branch in your fork. Unless a maintainer asks for another target, branch from the latest develop and open your PR into develop. Focused names such as fix/..., feature/..., or docs/... make the change easy to identify.
develop.git clone https://github.com/h3pdesign/Neon-Vision-Editor.git
cd Neon-Vision-Editor
xcodebuild -project "Neon Vision Editor.xcodeproj" -scheme "Neon Vision Editor" -destination 'platform=macOS,name=My Mac' build
Lock-safe cross-platform verification (sequential macOS + iOS Simulator + iPad Simulator):
scripts/ci/build_platform_matrix.sh
Share what works well and what should improve for both the app and the README.
Share positive feedback · Share negative feedback
Keep it free, sustainable, and improving.
Neon Vision Editor will always stay free to use.
No subscriptions and no paywalls.
Keeping the app alive still has real costs: Apple Developer Program fee, maintenance, updates, and long-term support.
Optional Support Tip (Consumable): $4.99 and can be purchased multiple times.
Your support helps cover Apple developer fees, bug fixes and updates, future improvements and features, and long-term support.
Thank you for helping keep Neon Vision Editor free for everyone.
In-app support tip: Settings > Mehr/More (platform-dependent)
External support: Buy Me a Coffee
External support: Patreon
h3p apps portal for docs, setup guides, and release workflows: >h3p apps
External support: PayPal
To auto-increment Xcode CURRENT_PROJECT_VERSION on every commit:
scripts/install_git_hooks.sh
Neon Vision Editor is licensed under the Apache License, Version 2.0.
See LICENSE.
The project moved to Apache-2.0 because it keeps the same permissive open-source model while adding an explicit patent grant and patent-termination protection for contributors and downstream users. This better matches a developer tool that may receive contributions, integrations, and commercial redistribution over time.
Swift
78.3%
HTML
14.5%
Python
5.1%
Shell
2.1%
A native Swift editor for Code and Markdown across macOS, iPadOS, iOS, and visionOS.
See the code
Neon Vision Editor
A native editor for markdown, notes, and code across macOS, iPhone, iPad, and Apple Vision Pro.
Minimal by design. Quick edits, fast file access, no IDE bloat.
Download: GitHub Releases · App Store · TestFlight
Status: active release
Latest release: v1.8.5 Next release target: v1.8.6 Platform target: macOS 26 (Tahoe) compatible with macOS Sequoia Apple Silicon: supported Direct GitHub release: v1.8.5 / App Store and TestFlight availability varies by platform and review status Last updated (README): 2026-09-26 for latest release v1.8.5
git clone https://github.com/h3pdesign/Neon-Vision-Editor.gitcd Neon-Vision-Editorxcodebuild -project "Neon Vision Editor.xcodeproj" -scheme "Neon Vision Editor" -destination 'platform=macOS,name=My Mac' buildopen "Neon Vision Editor.xcodeproj" and run, then use Cmd+P for Quick Open.| For | Not For |
|---|---|
| Fast native editing across macOS, iOS, iPadOS | Full IDE workflows with deep refactoring/debugger stacks |
| Markdown writing and script/config edits with highlighting | Teams that require Windows or Linux support |
| Users who want low overhead and quick file access | Users expecting full desktop-IDE parity on iPhone |
Start Here · Release Channels · Core Workflows · Download Metrics · Project Documentation · Features
Established Workflows · Architecture At A Glance · Platform Matrix · Roadmap (Near Term) · Troubleshooting · FAQ · Changelog · Contributing Quickstart · Support & Feedback
| Channel | Best for | Delivery | Current status |
|---|---|---|---|
| Direct notarized builds and fastest stable updates | GitHub Releases | v1.8.5 release docs current; v1.8.5 direct download current | |
| Apple-managed install/update flow | App Store | Check the platform listing for current availability | |
| Early testing of upcoming changes | TestFlight | Newest beta availability may vary by review state |
Release Download + Traffic Trend
Styled line chart shows per-release totals with 14-day traffic counters for clones and views.
| Document | Purpose |
|---|---|
CHANGELOG.md | Full release history and milestone issue coverage |
release/RELEASE-WORKFLOW.md | Isolated release preparation, changelog/README generation, offline dry runs, and publication checks |
docs/ARCHITECTURE.md | Current cross-platform architecture, ownership boundaries, performance rules, and verification model |
CONTRIBUTING.md | Local setup, build, and contribution workflow |
PRIVACY.md | Privacy guarantees and data-handling policy |
SECURITY.md | Security policy and responsible disclosure |
release/ | TestFlight, App Store, and release preflight checklists |
| Path | Contents |
|---|---|
Project/Sources/ | Main app, extensions, Neon Pulse products, and shared Swift source |
Project/Tests/ | Cross-platform test target and shared test plan |
Project/Configuration/ | Platform and widget property lists |
docs/ | Architecture, engineering documentation, and media |
samples/ | Language, Markdown, and PDF regression fixtures |
scripts/ | Build, validation, release, and maintenance automation |
site/ | Localized GitHub Pages website |
| Best For | Why Neon Vision Editor |
|---|---|
| Quick note takers | Fast native startup and low UI overhead for quick edits |
| Markdown-focused writers | Clean editing with quick preview workflows on Apple devices |
| Developers editing scripts/config files | Syntax highlighting + fast file navigation without full IDE complexity |
| Advantage | What It Means |
|---|---|
| Faster startup | Lower overhead for short edit sessions |
| Focused surface | Editor-first workflow without project-system bloat |
| Native Apple behavior | Consistent experience on macOS, iOS, and iPadOS |
Prebuilt binaries are available on GitHub Releases.
The direct GitHub release is currently ahead of the iOS/iPadOS App Store version. The App Store version may temporarily lag while updates are in Apple review.
| Channel | Platform | Best For | Download | Release Track | Notes |
|---|---|---|---|---|---|
| Stable | macOS | Direct notarized builds and fastest stable updates | GitHub Releases | v1.8.5 | Current direct download |
| Store | iOS / iPadOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v1.8.4 | Current public App Store listing |
| Store Review | macOS | Corrected App Store update | App Store Connect review | v1.8.5 | In Apple review |
| Store | visionOS | Apple-managed installs and updates | Neon Vision Editor on the App Store | v1.6.1 | Current recorded visionOS listing |
| Beta | iOS / iPadOS / macOS | Testing upcoming changes before stable | TestFlight Invite | v1.8.5 | Early access builds for feedback; availability may vary by review state |
Install the latest release directly:
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh
Install without admin password prompts (user-local app folder):
curl -fsSL https://raw.githubusercontent.com/h3pdesign/Neon-Vision-Editor/main/scripts/install.sh | sh -s -- --appdir "$HOME/Applications"
Install the official Homebrew cask:
brew install neon-vision-editor
The explicit cask form is equivalent:
brew install --cask neon-vision-editor
Cask source: Homebrew/homebrew-cask
If Homebrew asks for an admin password, it is usually because casks install into /Applications.
Use this to avoid that:
brew install --cask --appdir="$HOME/Applications" neon-vision-editor
The direct macOS build from GitHub bundles an optional nve helper for terminal workflows. It is not included in the Mac App Store build. Install it only when you want a shell command:
$HOME/bin.nve README.md
nve --wait --new-window "Project/Sources/Neon Vision Editor/UI/ContentView.swift"
nve --line 42 "Project/Sources/Neon Vision Editor/UI/ContentView.swift" # validates the line flag; cursor placement is not yet supported
Development builds can also link the repository copy:
mkdir -p "$HOME/bin"
ln -sf "$PWD/scripts/nve" "$HOME/bin/nve"
Permission model: the helper is optional and user-linked. It calls macOS Launch Services through /usr/bin/open and does not read file contents itself. Neon Vision Editor handles the document-open request inside the sandbox with user-selected read/write file access and security-scoped file access. It does not require Full Disk Access, Accessibility access, administrator permission, background services, or telemetry. See docs/CommandLineHelper.md.
The macOS Project Sidebar brings files, search, and Git together, with Terminal available in the direct build. Remote Sessions are opt-in. Markdown formatting, preview, and export stay in one contextual flow.
Neon Vision Editor keeps the surface minimal and focuses on fast writing/coding workflows. Platform-specific availability is tracked in the Platform Matrix section below.
Editing Core
Navigation & Preview
Platform, Output & Customization
Safety & Privacy
UITextView input and rendering path over the shared tab/document model.Cmd+P), project sidebar navigation, and recursive project tree rendering.scripts/nve opens files from the terminal and supports --wait, --new-window, and --line compatibility flags..gitignore files. Use the project sidebar's Ignored Folders menu to exclude node_modules, build, dist, and other listed output folders; custom paths and patterns belong in .gitignore. Unknown text-file extensions remain searchable. Git global excludes and tracked-file exceptions are not applied.Expand All / Collapse All), recent project folders, file filters for All Files, Modified, Images, PNG, PDF, and Markdown, and default ignored heavy folders (.git, .build, node_modules, DerivedData).Save As… and Close All Tabs with confirmation.Aa control..svg files support XML editing, bracket help, and rendered SVG Preview on all platforms.
Aa control on iPhone.The current stable editor separates scene presentation, document ownership, native rendering, and optional services. Arrows show ownership or data exchange, not thread guarantees.
ContentView owns scene presentation; each window has an @MainActor EditorViewModel. TabCommandQueue serializes asynchronous tab mutations, while TabData keeps UI identity, document resource identity, and content revisions distinct.EditorDocument is the bounded read/edit contract, not the load/save controller. TabData currently uses FileBackedTextDocument for both URL-backed files and content initialized in memory. Eligible large local files retain disk source ranges plus replacement pieces; the loader completes their line index before transferring ownership to the main actor. Saves preserve encoding and line endings and use the existing conflict and atomic-replacement flow.VirtualEditorView wraps an AppKit scroll view and a Core Text canvas implementing NSTextInputClient. It consumes bounded windows and UTF-16 ranges, uses generation/revision checks, and owns drawing, hit testing, selection, undo and input. CustomTextEditor wraps UITextView on iOS/iPadOS/visionOS. SwiftUI allocates panes; neither preview nor structured views create a second document store.EmmetExpander support both native paths. Emmet 2 runs locally from the bundled JavaScript through JavaScriptCore; it is separate from provider-backed AI. The macOS HEX picker edits through the canvas's existing mutation path.OpenDocumentObservationCenter uses NSFilePresenter events to refresh clean local tabs and offer Keep Local, Reload from Disk, or Compare for dirty tabs. iCloud Drive/network folders supply document transport; appearance sync is a separate preferences service. Peer-to-peer document handoff remains proposed in #164.ProjectFileIndex; chat captures explicit context before calling AIClient; remote sessions use macOS SSH/broker hosting with mobile/spatial attach clients. Provider credentials and SSH-key bookmarks remain in Keychain, while document recovery, saved conversations, preferences and PDF annotations use their respective stores.nve helper. ReleaseRuntimePolicy gates distribution-specific behavior.Full architecture reference: docs/ARCHITECTURE.md. The reference tracks the current Swift 6 cross-platform structure, platform guards, editor rendering paths, performance rules, distribution boundaries, and release verification workflow.
Implementation entry points: tab/document orchestration, document contract, storage, macOS canvas, UIKit editor, and distribution policy.
@MainActor) and heavy work off the UI thread.Neon Vision Editor shares its editor core across macOS, iPhone, iPad, and Apple Vision Pro. Platform-specific controls adapt to available space and input rather than exposing desktop-only workflows on touch devices. macOS also has two distribution profiles: the direct GitHub build includes optional local developer tools, while App Store builds keep those executable-code workflows out of the shipped UI.
Platform boundary: Git review is available on macOS when a local repository and Git installation are present. The PTY Terminal, Python project creation/execution, and the bundled
nvecommand-line helper are direct-macOS-only; they are not included in the App Store macOS build and are not exposed on iPhone, iPad, or Apple Vision Pro. SSH-hosted Remote Sessions remain opt-in and use macOS as the host.
Availability key: full native workflow ·
layout adapts to space and input ·
touch-first presentation ·
local desktop capability
| Capability | macOS | iPhone | iPad | Apple Vision Pro | Notes |
|---|---|---|---|---|---|
| Emmet 2 | Native editor | Native editor | Native editor | Native editor | Local abbreviation expansion in supported markup/stylesheet contexts; uses configured indentation. |
| HEX color picker | Gutter swatch and native picker | -- | -- | -- | CSS/HTML/XML/SVG; source edits preserve representable short and alpha formats. |
| Apple Pencil editing | -- | -- | Hover caret, drag selection, preference-aware undo | -- | Requires compatible iPad/Pencil hardware and enabled system preferences. |
| Saved AI chats | Sidebar | Compact presentation | Sidebar | Adaptive presentation | Explicit context; optional providers; credentials in Keychain. |
Quick OpenCmd+P | Keyboard and menu | Hardware keyboard | Keyboard and menu | Hardware keyboard | Keyboard-first navigation remains available whenever a hardware keyboard is connected. |
| Project workspace | Files/Search/Git rail; Terminal in direct build | File workflow | Files/Search workflow | Spatial workspace | Git review is macOS-only; the PTY Terminal is direct-macOS-only. |
| Find in Files | Sidebar | Sheet | Sidebar | Panel | On Mac and iPad, results remain visible while opening a match. |
| Markdown formatting | Collapsible toolbar below tabs | Aa status-row menu | Collapsible toolbar below tabs | Collapsible toolbar below tabs | Direct Bold, Italic, Link, Quote, and Code actions; structural actions and five heading levels remain available in menus. |
| Toolbar and workspace presets | Compact labels; standard, focused, developer, review, complete, custom | Icon-first toolbar; compact preset controls | Compact labels and preset controls | Spatial toolbar presentation | Presets are configured from Settings; labels and available controls adapt to space and input. |
| Tab closing | Close controls and confirmation | Double-tap tab | Double-tap tab | Spatial tab controls | Unsaved-change confirmation remains active on every platform. |
| Status-bar and navigation surface | macOS window chrome | Transparent iOS composition | iPadOS surface composition | Spatial chrome | v1.2.1 restores the transparent iOS status-bar composition without changing the editor or preview layout. |
| Preview Markdown, HTML, SVG, PDF, PNG | Inline split pane | Full-screen sheet | Inline pane in regular width | Inline pane | Markdown/HTML/SVG remain opt-in; PDF/PNG open automatically. PDF notes reuse the existing editor and optional Markdown preview. |
| Preview appearance | Templates and backgrounds | Templates and compact controls | Templates and backgrounds | System Glass, Paper, Slate, or Ink | visionOS intentionally uses its own reader surfaces instead of the full Markdown template collection. |
| Font-size gesture | Trackpad pinch | Touch pinch | Touch pinch | Touch pinch | Gestures adjust editor font size from 10 to 28 pt and retain the regular font-size controls. |
| Code Minimap | Opt-in | Opt-in | Opt-in | Opt-in | Available for supported languages; it stays hidden for document types where a minimap is not useful. |
| Diff workflows | Inline | Sheet | Inline | Panel | Compact presentations avoid taking over narrow touch layouts. |
| Git review | Local repository history, changes, and diffs | -- | -- | -- | Requires a local Git repository and an installed Git executable on macOS. |
| PTY Terminal and Python workflow | PTY terminal, Python project runner, and nve helper | -- | -- | -- | Available in the direct GitHub macOS build; intentionally omitted from App Store macOS builds and all mobile/spatial builds. |
| Remote sessions | SSH owner and broker host | Broker attach client | Broker attach client | Broker attach client | Remote access is opt-in; iPhone, iPad, and visionOS explicitly save through a Mac-hosted session. |
| Save and export | Native Save As and export | System exporter | System exporter | System exporter | iPhone and iPad export Markdown and Swift with their declared content types. |
More release integrity details: Release Integrity
docs/images/README.md
Light editor workspace with symbol navigation |
Wide light editor workspace with toolbar actions |
Compact light editor workspace with focused code view |
Light editor workspace with code minimap |
| Track | Current Focus | Status |
|---|---|---|
| Stable direct download | v1.8.5 notarized GitHub release | Current |
| App Store rollout | Platform releases are published independently after App Review | Check the relevant App Store listing |
| Post-1.4 stabilization | Crash triage, docs freshness, platform polish, App Store/Xcode Cloud release checks | Next patch train |
| Larger workflow work | Remote workflow hardening, minimap polish, project navigation refinements | Later v1.5+ work |
<pdf-name>.pdf.notes.md opens in the existing editor on the left. Enable the optional Markdown preview explicitly to render it beside the PDF.Cmd+P.Settings > DesignsSettings > Allgemein/General > WindowSettings > EditorSettings > Allgemein/GeneralSettings > Mehr/More > Remote or Settings > Remote on wider layoutsSettings > Mehr/More (platform-dependent)SecureTokenStore, not in UserDefaults.All shortcuts use Cmd (⌘). iPhone, iPad, and Apple Vision Pro require an external hardware keyboard. The table shows defaults; selected editor shortcuts can be customized in Settings > Shortcuts.
Availability key: assigned shortcut ·
external keyboard required ·
desktop command
| Shortcut | Action | macOS | iPhone | iPad | Apple Vision Pro |
|---|---|---|---|---|---|
Cmd+N | New Window | -- | -- | -- | |
Cmd+T | New Tab | ||||
Cmd+O | Open File | ||||
Cmd+Shift+O | Open Folder | ||||
Cmd+S | Save | ||||
Cmd+Shift+S | Save As | ||||
Cmd+W | Close Tab | ||||
Cmd+X, Cmd+C, Cmd+V, Cmd+A | Cut, Copy, Paste, Select All | ||||
Cmd+Z, Cmd+Shift+Z | Undo, Redo | ||||
Cmd+B, Cmd+I, Cmd+K | Bold, Italic, Link in Markdown | -- | -- |
| Shortcut | Action | macOS | iPhone | iPad | Apple Vision Pro |
|---|---|---|---|---|---|
Cmd+F, Cmd+G | Find, Find Next | ||||
Cmd+Shift+F | Find in Files | ||||
Cmd+P | Quick Open | ||||
Cmd+L | Go to Line | ||||
Cmd+Shift+J | Go to Symbol | ||||
Cmd+Option+S | Toggle Sidebar | ||||
Cmd+Option+L | Toggle Line Wrap | ||||
Cmd+Option+M | Toggle Code Minimap | -- | -- | -- | |
Cmd+,, Cmd+? | Settings, Toolbar Help |
| Shortcut | Action | Availability |
|---|---|---|
Cmd+D | Add Next Match | |
Cmd+Shift+D | Brain Dump Mode | |
Cmd+Shift+V | Toggle Vim Mode | |
Cmd+Shift+G | Suggest Code | |
Cmd+Option+Shift+L | AI Activity Log | |
Cmd+Shift+U | Inspect whitespace at caret |
Vim navigation is also available on iPad with a hardware keyboard after enabling Vim mode; arrow keys and the standard Vim movement keys work in Normal mode.
Latest stable: v1.8.5 (2026-09-26)
timeline
title Neon Vision Editor — recent release story
16 September 2026 : v1.8.1 · Release highlights
: Gives iPhone and iPad a compact bottom editor toolbar with easier access to tools while keeping more code visible.
18 September 2026 : v1.8.2 · A more deliberate workflow
: View large Markdown documents as rendered Markdown instead of a truncated source preview.
19 September 2026 : v1.8.3 · Release highlights
: Edit complete text documents below 100 MB without entering the excessive-file preview mode.
21 September 2026 : v1.8.4 · Release highlights
: Browse JSON in a structured preview and read YAML with syntax colors.
26 September 2026 : v1.8.5 · A more deliberate workflow
: Choose whether Markdown opens for editing or full-window reading, and switch modes from the toolbar or keyboard.
The recent release arc is about continuity: files that change outside the app, workflows that stay reviewable, windows that return where you left them, and document transitions that preserve your editing context. The full record remains in CHANGELOG.md.
| Release | The editor change | What it protects or enables |
|---|---|---|
v1.8.5 | A more deliberate workflow — Choose whether Markdown opens for editing or full-window reading, and switch modes from the toolbar or keyboard. | Makes configured app shortcuts available while the mobile editor has hardware-keyboard focus; restores the documented Save As, Line Wrap, and… |
v1.8.4 | Release highlights — Browse JSON in a structured preview and read YAML with syntax colors. | Uses the same window routing for new and already-open files across macOS Spaces (#583, #584). |
v1.8.3 | Release highlights — Edit complete text documents below 100 MB without entering the excessive-file preview mode. | Fixes clipped unwrapped text on iPhone and iPad by keeping the drawing canvas and horizontal scrolling geometry aligned, including cursor reveal… |
CHANGELOG.mdPRIVACY.md.SecureTokenStore), not UserDefaults.SECURITY.md.v1.8.5git rev-parse --verify v1.8.5
shasum -a 256 <downloaded-file>
git config --local gpg.ssh.allowedSignersFile "$HOME/.config/git/allowed_signers"
git log --show-signature -1
Stable: tagged GitHub releases intended for daily use.Beta: TestFlight builds may include in-progress UX and platform polish.CHANGELOG.md.If you already completed the Start in 60s (Source Build), you can open and run directly from Xcode.
git clone https://github.com/h3pdesign/Neon-Vision-Editor.git
cd Neon-Vision-Editor
open "Neon Vision Editor.xcodeproj"
Contributor guide: CONTRIBUTING.md
| Branch | Purpose | Use for contributions |
|---|---|---|
main | Production-ready code and published release state | Do not target this branch for contributions. All contributions, including standalone documentation and maintenance changes, must target develop unless a maintainer explicitly requests main. |
develop | Integration branch for the next release | Start normal feature, bug-fix, and code-related documentation work here, then open the PR back into develop. |
release/<version> | Short-lived release stabilization branch created from develop | Maintainer-managed; do not use it for regular contributions or new features. Its release PR targets main. |
archive/legacy-branches | Preserved historical branch tips | Read-only history; do not branch from it or target it with a PR. |
automation/* | Generated metadata, metrics, appcast, or Store synchronization | Bot-managed; do not use these branches for manual contributions. |
Both main and develop are protected, so contribute from a branch in your fork. Unless a maintainer asks for another target, branch from the latest develop and open your PR into develop. Focused names such as fix/..., feature/..., or docs/... make the change easy to identify.
develop.git clone https://github.com/h3pdesign/Neon-Vision-Editor.git
cd Neon-Vision-Editor
xcodebuild -project "Neon Vision Editor.xcodeproj" -scheme "Neon Vision Editor" -destination 'platform=macOS,name=My Mac' build
Lock-safe cross-platform verification (sequential macOS + iOS Simulator + iPad Simulator):
scripts/ci/build_platform_matrix.sh
Share what works well and what should improve for both the app and the README.
Share positive feedback · Share negative feedback
Keep it free, sustainable, and improving.
Neon Vision Editor will always stay free to use.
No subscriptions and no paywalls.
Keeping the app alive still has real costs: Apple Developer Program fee, maintenance, updates, and long-term support.
Optional Support Tip (Consumable): $4.99 and can be purchased multiple times.
Your support helps cover Apple developer fees, bug fixes and updates, future improvements and features, and long-term support.
Thank you for helping keep Neon Vision Editor free for everyone.
In-app support tip: Settings > Mehr/More (platform-dependent)
External support: Buy Me a Coffee
External support: Patreon
h3p apps portal for docs, setup guides, and release workflows: >h3p apps
External support: PayPal
To auto-increment Xcode CURRENT_PROJECT_VERSION on every commit:
scripts/install_git_hooks.sh
Neon Vision Editor is licensed under the Apache License, Version 2.0.
See LICENSE.
The project moved to Apache-2.0 because it keeps the same permissive open-source model while adding an explicit patent grant and patent-termination protection for contributors and downstream users. This better matches a developer tool that may receive contributions, integrations, and commercial redistribution over time.
Swift
78.3%
HTML
14.5%
Python
5.1%
Shell
2.1%