README.md
May 5, 2026 · View on GitHub
Support Moped!
License
This FREE software is licensed under GNU GPLv3 or later. Please see the LICENSE file for details.

Language Translations
Proudly supporting the following languages: German, English, Spanish, Finnish, French, Hebrew, Hindi, Italian, Japanese, Dutch, Portuguese, Brazilian Portuguese, and Ukranian.
Want to see another language? Volunteer to translate!
Download Binary App
Pre-compiled versions are available directly from GitHub or the AppStore.
Features
- Syntax highlighting — powered by Highlightr, supporting dozens of languages with switchable themes
- Line numbers — toggleable gutter ruler
- Word wrap — configurable per preference
- Auto-indentation — configurable default: tab, 2 spaces, or 4 spaces
- Status bar — shows document type, cursor position (line:column), and an inline language picker to override detection on the fly
- Find & Replace — system find bar with full regex support (⌘F / ⌘⌥F)
- Jump to Line — ⌘L dialog that pre-fills the current line
- Font & size — any system font, sizes 9–24, with in-window zoom (⌘+ / ⌘− / ⌘0)
- Print — syntax-aware print view with standard page margins
- External change detection — watches the file on disk and prompts to reload when another app modifies it
- Large file mode — gracefully disables syntax highlighting for very large files to keep the editor responsive
- Launch behavior — open with a file dialog or start with a blank editor
- Alternate app icons — Default, Pink, Black, Red, Rainbow, and Beige
- CLI tool — install a
mopedcommand to/usr/local/binvia Moped > Set Up CLI Tool - Set as default editor — register Moped as the system default for all supported plain-text file types from Preferences
Manifesto - General Audience
If you come from the Windows world, you may be missing a small utility: Notepad, a simple but essential tool for editing plain text files. While macOS counts on its own built-in text editor: TextEdit, it is actually more like a Rich Text Editor with full images, fonts and layout support. Similar to the built-in Windows Write or WordPad.
It kind of feels heavier than it should and in the way. There are known settings to make it look and feel lighter, but inside it's still the same. You can get the source and peek inside. It's bigger and with older code than it needs to be.
Moped intends on feeling like Notepad, while being a full native of macOS, with syntax highlighting, themes, line numbers, auto-indenting, and other modern editor conveniences — without getting in the way.
Manifesto - Advanced Users
While you can install the best text editors on your macOS system (BBEdit, TextMate, VIM, Emacs, etc) - big and powerful, sometimes, you need just a small and light editor for that one file or note that you need to work on. It has to be light on resources and get out of the way.
Moped intends on getting the job done, with all the basics and standard macOS-like keyboard shortcuts.
Manifesto - Developers
Moped intends to be a showcase application and reference for a Document-Based Application built with Swift, SwiftUI, and AppKit. The project deliberately avoids third-party UI frameworks and keeps its dependency footprint small — Highlightr for syntax highlighting is the main external dependency.
If you scroll through the commit history you can see how the pieces fit together. Please check the Resources section for references and links.
Wanted Features
- Comprehensive Help File
- Code folding support
- Prompt user for Encoding when it is not recognized automatically
Contributing
Contributions are more than welcome! Please fork the master branch and pull request when ready. Observe formatting and common coding patterns in Swift, for ideological reasons tabs will remain tabs, not spaces. Please understand that not all changes will be integrated, in particular they must remain in the ideals of the project.
All Pull Requests are automatically evaluated using GitHub Actions.
If your document is not being identified and syntax highlighted, please send its content identifier information. It can be obtained with the following command:
mdls -name kMDItemContentType -name kMDItemContentTypeTree -name kMDItemKind YOURFILE
You can check for M1 (ARM) and x86 fat binary support by running lipo:
% lipo -archs ~/Library/Developer/Xcode/DerivedData/Moped-*/Build/Products/Debug/Moped.app/Contents/MacOS/Moped
x86_64 arm64
Having trouble building / you are new to contributing? Check the following Issue and the video I posted: https://github.com/RobertoMachorro/Moped/issues/36
Localization Workflow
Moped uses Xcode String Catalogs (Localizable.xcstrings) as the source of truth for translations.
To translate without sharing source code:
- In Xcode, run
Product > Export Localizations...and generate.xclocpackages. - Share the
.xclocpackage with translators. - Translators edit the package (XLIFF/CAT-tool compatible) and return it.
- In Xcode, run
Product > Import Localizations...to apply translated strings. - Build and ship the app release with the imported translations.
Adding a new language:
- Add the language in project localization settings.
- Export localizations for that language.
- Import completed translations and release.
