Skip to content

sergioadevita/notemac-plus-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

568 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notemac++

Notemac++

A powerful, feature-rich text and source code editor for macOS and Web, inspired by Notepad++.

Version Platform License Tests Languages Ko-fi

🚀 Try it in your browser  ·  Landing Page  ·  Releases


Notemac++ brings the familiar power of Notepad++ to macOS — both as a native desktop app (via Tauri or Electron) and as a web application. It features syntax highlighting for 73+ languages, a tabbed interface with drag-and-drop reordering, split views, macro recording, bookmarks, powerful find/replace with regex, built-in Git integration, an AI coding assistant with multi-provider support, an integrated terminal, code snippets, Compile & Run execution in 73+ languages, and much more.

Screenshots

Notemac++ — Mac Glass theme

Mac Glass — the default theme, with warm orange accents and glassmorphism-inspired palette.

More themes and features

 

Notemac++ — Dark theme

Dark theme

Notemac++ — Light theme

Light theme

Notemac++ — Monokai theme

Monokai theme

Notemac++ — Dracula theme

Dracula theme

Notemac++ — Solarized Dark theme

Solarized Dark theme

Notemac++ — Solarized Light theme

Solarized Light theme

Notemac++ — Find & Replace

Find & Replace with regex support, mark system, and multiple search modes.

Quick Start

Web (any platform):

./build-web.sh

This builds and serves the app locally. Works on macOS, Linux, and WSL.

Desktop (macOS):

# Portable — runs directly from the disk image
./build-portable-dmg.sh

# Installable — drag to Applications
./build-install-dmg.sh

Development:

npm install
npm run dev              # Web dev server
npm run electron:dev     # Electron dev mode

Features

Command Palette & Quick Open — Fast access to every command and file

 

  • Command Palette (Cmd+Shift+P): Fuzzy-searchable launcher with 100+ commands spanning every menu action, keybinding, and feature
  • Quick Open (Cmd+P): Fuzzy file finder that searches all files in the current workspace
  • Keyboard navigation with arrow keys and Enter
  • Real-time filtered results as you type
Editing — Monaco-powered editor with full code intelligence

 

Notemac++ is built on the Monaco Editor, the same engine that powers VS Code. This gives you:

  • Syntax highlighting for 70+ languages including C, C++, Python, JavaScript, TypeScript, Rust, Go, Java, Ruby, PHP, Swift, Kotlin, SQL, HTML/CSS, Markdown, and many more
  • Multi-cursor editing
  • Code folding with 8 levels of granularity
  • Bracket matching and auto-closing for brackets and quotes
  • Smart auto-indent
  • Comment toggling (line and block comments)
  • Configurable tab size, spaces vs. tabs
  • Virtual space mode, smooth scrolling
  • Minimap for quick navigation
  • Indent guides
  • Word wrap with optional wrap symbols
  • Whitespace and EOL character visualization
  • Line numbers with current-line highlighting
Tabs — Drag, pin, color-code, and manage your workspace

 

  • Drag-and-drop tab reordering
  • Pin tabs to prevent accidental closure
  • Color-code tabs (6 colors: red, green, blue, orange, magenta, or none)
  • Visual indicators for modified, pinned, and read-only files
  • Middle-click to close
  • Right-click context menu: Close, Close Others, Close to Left/Right, Close Unchanged, Close All but Pinned
  • Restore last closed tab (with full undo history)
  • Recent files list (last 20 files)
  • Clone tab to split view
Find & Replace — Regex, marks, and bulk operations

 

  • Find with regex, case-sensitive, whole-word, and wrap-around options
  • Replace single or all occurrences
  • Find in Files across your workspace
  • Incremental search (live results as you type)
  • Mark system with 5 color styles — highlight all matches visually, then operate on marked lines: cut, copy, delete, replace, or inverse
  • Go to Line dialog
  • Go to Matching Bracket
  • Bookmark system: toggle, navigate next/previous, clear all

See Keybindings Reference for all search shortcuts.

Split View — Work on two files side by side

 

  • Horizontal or vertical split
  • Clone any tab into the split pane
  • Synchronized vertical and/or horizontal scrolling
  • Close split to return to single-pane mode
Themes — 7 built-in color themes

 

Theme Style
Mac Glass Warm orange/amber glassmorphism (default)
Dark VS Code Dark
Light VS Code Light
Monokai Classic warm palette
Dracula Purple-toned dark theme
Solarized Dark Ethan Schoonover's dark variant
Solarized Light Ethan Schoonover's light variant

Each theme fully styles the editor, tabs, sidebar, menus, dialogs, and status bar.

Macros — Record, replay, and save action sequences

 

  • Record keyboard actions (typing, deletions, cursor movement, commands)
  • Playback recorded macro
  • Run macro multiple times (with count dialog)
  • Save macros with custom names for reuse
  • Recording indicator in the status bar
Sidebar & Panels — File explorer, function list, and more

 

  • File Explorer: Open folders as workspaces, browse the tree, click to open files
  • Document List: Quick overview of all open tabs
  • Function List: Code symbol navigation
  • Clipboard History: Last 50 clipboard entries, paste from history
  • Character Panel: Inspect character details and code points
  • Search Results: Find-in-files results panel

The sidebar is resizable (150–500px) and togglable with Cmd+B.

Encoding & Line Endings — Full character set support

 

Notemac++ supports a wide range of encodings: UTF-8, UTF-8 BOM, UTF-16 LE/BE, Windows-1250 through 1258, ISO 8859 family, KOI8-R/U, Big5, GB2312, Shift JIS, EUC-KR, and dozens of DOS/OEM code pages. Line endings are auto-detected and switchable between LF, CRLF, and CR.

See the full list in docs/FEATURES.md.

Line Operations — Sort, deduplicate, trim, and transform

 

  • Sort lines (ascending, descending, case-insensitive, by length)
  • Remove duplicate lines (all or consecutive only)
  • Remove empty lines (including blank-only)
  • Trim leading/trailing/both spaces
  • Convert EOL to spaces, TAB to spaces, spaces to TABs
  • Insert blank lines above/below
  • Reverse line order
Tools — Hashing, encoding, and formatting utilities

 

  • Hash generation: MD5, SHA-1, SHA-256, SHA-512 (from text or file)
  • Copy hash to clipboard
  • Base64 encode/decode
  • URL encode/decode
  • JSON format (pretty-print) and minify
Case Conversion — 6 text case transforms

 

UPPERCASE, lowercase, Proper Case, Sentence case, iNVERT cASE, and RaNdOm CaSe.

Compile & Run — Execute code in 73+ languages

 

  • Multi-language support: 73+ programming languages including C, C++, Python, JavaScript, TypeScript, Rust, Go, Java, Ruby, PHP, Swift, Kotlin, and many more
  • Desktop execution: Run code natively on your local system
  • Web execution: WASM runtimes with Service Worker caching for browser-based execution
  • Cloud execution: Piston API for cloud-based execution of 40+ languages without native WASM runtimes
  • Keyboard shortcuts: F5 (run), Shift+F5 (clear and run), Ctrl+F5 (run and focus output)
  • Output panel: Real-time output streaming with ANSI color support for colorized terminal output
  • Category A-E runtime architecture: Optimized performance and memory usage tiers
More Features

 

  • Shortcut Mapping Presets: Choose between built-in preset mappings (Notemac++ Default, ReSharper) via dropdown in the Shortcut Mapper — plugins can register custom presets
  • Compare Files: Side-by-side diff comparison of any two files with Monaco diff editor
  • Distraction-Free Mode: Hides all UI chrome for focused writing
  • Always on Top: Keep the editor above other windows
  • Monitoring (tail -f): Live file watching with auto-scroll
  • Column Editor: Multi-line vertical editing
  • Run Command: Execute shell commands from within the editor
  • Search on Google/Wikipedia: Quick web lookups for selected text
  • Open in Browser: Preview files directly
  • Insert Date/Time: Configurable format
  • File Summary: Line, word, and character counts at a glance
  • Session Save/Load: Persist your workspace across sessions
  • Copy File Path/Name/Dir: Quick path operations
Git Integration — Full version control from within the editor

 

  • Repository management: Initialize, clone (with GitHub OAuth), and open Git repositories
  • Staging & commits: Stage/unstage files, write commit messages, view commit history
  • Branch management: Create, switch, and delete branches
  • Diff viewer: Side-by-side diff comparison for changed files
  • GitHub OAuth: Secure authentication with token encryption and automatic refresh
  • Powered by isomorphic-git for full web and Electron compatibility
AI Assistant — Multi-provider AI chat and inline completions

 

  • AI Chat panel: Ask questions, get code explanations, generate code, and refactor
  • Inline completions: Context-aware code suggestions as you type
  • Multi-provider support: OpenAI (GPT-4), Anthropic (Claude), and Google (Gemini)
  • Context actions: Explain, refactor, fix, document, test, simplify, convert language
  • XSS-protected responses: Sanitized AI output for safe rendering
  • Configurable: Choose your provider, model, and API key in settings
Integrated Terminal — Run commands without leaving the editor

 

  • Built-in terminal emulator powered by Xterm.js
  • Run shell commands directly from the editor
  • Terminal panel in the sidebar for quick access
Code Snippets — Language-aware snippet management

 

  • Pre-built snippets for popular languages (JavaScript, TypeScript, Python, HTML, CSS, and more)
  • Quick insertion via the snippet manager panel
  • Create and save custom snippets
  • IntelliSense-integrated snippet completion provider
Security — Hardened credential storage and secure flows

 

  • AES-GCM encrypted credential storage with Electron safeStorage integration
  • Secure OAuth flows with PKCE and state validation
  • Token expiry tracking with automatic cleanup
  • XSS protection on all AI-generated content
  • No plaintext secrets in localStorage

Architecture

Notemac++ follows a layered architecture with clear separation of concerns:

Layer Responsibility
Configs Static settings and configuration data
Models Runtime state (tabs, search, macros, UI, file tree)
Controllers Business logic and coordination
ViewPresenters UI components — no business logic

State management uses Zustand with Immer for immutable updates, split into composable slices. Dependencies are resolved through a lightweight Service Locator pattern, and components communicate via a typed event dispatcher (pub/sub).

For more detail, see docs/ARCHITECTURE.md.

Project Structure

src/
├── Notemac/                    # Project-specific code
│   ├── Commons/                # Constants, enums, shared types
│   ├── Configs/                # EditorConfig, ThemeConfig
│   ├── Controllers/            # Business logic controllers
│   ├── Model/                  # TabModel, SearchModel, MacroModel, UIModel, FileTreeModel, SnippetModel, GitModel, AIModel
│   └── UI/                     # ViewPresenter components
│       └── Params/             # Parameter/DTO classes
├── Shared/                     # Reusable framework library
│   ├── DependencyInjection/    # Service locator
│   ├── EventDispatcher/        # Typed pub/sub events
│   ├── Helpers/                # FileHelpers, IdHelpers
│   ├── Persistence/            # Save/load + credential encryption
│   ├── Pooling/                # Object pool management
│   └── Git/                    # Git integration adapter
├── components/                 # React UI components
├── store/                      # Zustand store slices
└── __tests__/                  # 2,169 unit tests (101 suites, Vitest)

Testing

npx vitest run

2,237 unit tests across 102 test suites, ~800 web E2E tests across 43 Playwright spec files, and 214 Electron E2E tests across 4 Playwright Electron spec files — covering every source file, all UI components, panels, dialogs, keyboard shortcuts, menu actions, and user flows for both web and desktop.

npx playwright test          # E2E tests

See docs/TESTING.md for details.

Comparison

How Notemac++ stacks up against other editors:

Feature Notemac++ Notepad++ VS Code Sublime Text
Platform macOS / Web Windows All All
Size ~10-15 MB (Tauri) ~5 MB ~300 MB ~30 MB
Startup Time Instant Fast Moderate Fast
Syntax Languages 70+ 80+ 200+ 50+
Built-in Git Yes No Yes No
Built-in AI Yes (multi-provider) No Via Copilot No
Terminal Yes No Yes No
Command Palette Yes No Yes Yes
Quick Open Yes No Yes Yes
Macros Yes Yes Via Extensions Yes
Split View Yes Yes Yes Yes
Code Snippets Yes No (plugins) Yes Yes
Mark System Yes (5 colors) Yes (5 styles) No No
Column Editor Yes Yes Via Extensions Yes
Compare Files Yes Via Plugin Yes Via Plugin
Themes 7 30+ 1000+ 25+
Plugins Yes (5 bundled) 200+ 30K+ 5K+
Runs in Browser Yes No Yes (vscode.dev) No
Price Free (MIT) Free (GPL) Free $99

Notemac++ is purpose-built for macOS and web users seeking Notepad++ familiarity with modern web technology and native desktop integration. It combines the simplicity of Notepad++ with power features found in VS Code — without the overhead.

Roadmap

  • Compile & Run — Execute code in 73+ languages (DONE)
  • Workspace & Project Settings — Per-folder editor and formatter settings
  • Remote File Editing — Edit files over SSH/SFTP
  • Debug Support — Breakpoints and step-through debugging

Have a feature request? Open an issue or discussion.

Contributing

All changes go through pull requests with mandatory CI checks — no direct pushes to main. See docs/WORKFLOW.md for the full branching and PR workflow.

We welcome contributions! Please read CONTRIBUTING.md for guidelines on:

  • Setting up your development environment
  • Project architecture and coding standards
  • How to submit pull requests
  • Code of conduct

Building

Target Command Output
Web (dev) npm run dev localhost:5173
Web (prod) ./build-web.sh Built + served
Desktop/Electron (dev) npm run electron:dev Live Electron window
Desktop/Tauri (dev) npm run tauri:dev Live Tauri window
Desktop/Tauri (build) npm run tauri:build src-tauri/target/release/bundle/
Portable DMG ./build-portable-dmg.sh release/Notemac++-Portable.dmg
Installable DMG ./build-install-dmg.sh release/Notemac++-Installer.dmg

Build scripts auto-install prerequisites (Homebrew, Node.js, Python/Pillow) if missing.

See docs/BUILDING.md for full build documentation.

Tech Stack

Technology Role
React UI framework
Monaco Editor Code editor engine
TypeScript Type-safe development
Zustand + Immer State management
Vite Build tooling
Electron Desktop shell (legacy)
Tauri Desktop shell (lightweight, ~10-15MB vs ~50MB)
isomorphic-git Git operations (web & desktop)
Xterm.js Integrated terminal emulator
OpenAI / Anthropic / Google AI Multi-provider AI assistant
Vitest Unit testing framework
Playwright E2E testing framework

Author

Sergio Agustin De Vita LinkedIn · GitHub · Ko-fi

Support

If you find Notemac++ useful, consider supporting its development:

Support on Ko-fi

License

This project is licensed under the MIT License.

About

A powerful Notepad++ inspired text & source code editor for macOS and Web. 73+ languages with Compile & Run, Git integration, AI assistant, hex editor, shortcut presets, terminal, plugins. Built with React, Monaco, TypeScript.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors