SubEthaEdit is a general purpose plain-text editor for macOS, widely known for its live collaboration feature, and it is built for writers, developers and teams who need several people editing the same document at the same time.
What it is
SubEthaEdit is a native macOS desktop application written in Objective-C on AppKit and Cocoa, distributed under the MIT License and developed in the open at github.com/subethaedit/SubEthaEdit. It edits plain text, which covers source code, HTML and creative writing alike, and its defining feature is live collaboration: multiple people work inside one document simultaneously rather than taking turns. Official releases ship both inside and outside the Mac App Store from subethaedit.net, while the GitHub repository is the main development repository.
The concrete problem it solves is the serialized-edit workflow, where one person holds a file and everyone else waits for a copy, a merge or a paste. Collaborative editing in SubEthaEdit rests on Transactional Transformations, credited in the acknowledgements to the Xerox PARC Jupiter Project. Peer connectivity is handled by TCMPortMapper.framework, built from monkeydom/TCMPortMapper, alongside the MiniUPnP project, so participants reach each other without manual network configuration. The application definition document, ApplicationDefinition.md, sets out what the project should and should not become.
Key capabilities
- Live collaborative editing of a single plain-text document by multiple participants, implemented with Transactional Transformations.
- Native macOS application built with AppKit and Cocoa in Objective-C, opened as the shared workspace
SubEthaEdit.xcworkspace.
- Editing suited to code, HTML and creative writing, per the project topics.
- Port mapping through
TCMPortMapper.framework, built from monkeydom/TCMPortMapper, with MiniUPnP for automatic peer connections.
- Automatic updates via
Sparkle.framework, built from the ui-separation-and-xpc branch of sparkle-project/Sparkle.
- TOML handling through
tomlutil, used from monkeydom/ObjectiveTOML.
- Releases published through subethaedit.net both in and out of the Mac App Store, with a full
ChangeLog.md history.
Who uses it and how
- macOS developers editing source and markup who want collaboration without a server round-trip or a browser tab.
- Creative writers working on shared drafts where simultaneous typing matters more than heavy document formatting.
- Small teams running a live session on one document, connecting peers directly through the bundled port-mapping stack.
- Contributors building the app from source on the most recent macOS, following
Contributing.md and ApplicationDefinition.md.
- End users installing official builds from subethaedit.net or the Mac App Store rather than compiling the project.
Getting started
Build from source by cloning the repository, switching to the develop branch, running git submodule update --init, then editing BuildConfig/Identity.xcconfig with your team ID, product name and CFBundleIdentifier base (security find-identity -v reveals the Team ID) before opening SubEthaEdit.xcworkspace. Regular users instead take an official release from subethaedit.net or the Mac App Store.
How it compares
This registry entry supplies no list of paid products that SubEthaEdit replaces, and the README names no competing editors to position it against. It stands alone in this registry as the macOS plain-text editor built around live collaborative editing.
When to use it — and when not to
Choose it when you are on macOS, want a native plain-text editor, and want several people in one document at once. Do not choose it if your team runs Linux or Windows, or if you want a hosted, browser-based tool with nothing to install. A self-hoster building from source needs a recent macOS install, an Apple developer account, Xcode and a code-signing identity, and should note the 93 open issues and the fact that SubEthaEdit remains trademarked by TheCodingMonkeys and Dominik Wagner, LoneMonkeyProductions even though the code is MIT-licensed.
project readme (upstream, from github) — read inline
SubEthaEdit
General purpose plain-text editor for macOS. Widely known for its live collaboration feature.
github.com/subethaedit/SubEthaEdit is the main development repository.
subethaedit.net is the base for the official releases in and out of the app store.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
Development is done on most recent macOS and you are expected to have a apple developer account.
- Clone the repo, and switch to the develop branch
- Initialise the submodules by
git submodule update --init
- Edit the
BuildConfig/Identity.xcconfig with your team ID, Product Name and CFBundleIdentifier base. You can use security find-identity -v to find out your Team ID.
- [optional] tell git to ignore those changes to get out of your way by
git update-index --skip-worktree BuildConfig/Identity.xcconfig
You should be all set to open up the shared workspace at SubEthaEdit.xcworkspace and build the app.
Contributing
Please read contributing for details on our code of conduct, and the process for submitting pull requests to us.
For general guidance on what is should/ and isn't shouldn't be SubEthaEdit, please refer to the application definintion document.
Active contributors
Project email: subethaedit at lone.monkey.productions
See the full list of contributors.
Change Log
See the full release change log history.
License
This project is distributed under the MIT License - see the LICENSE.txt file for details
- SubEthaEdit is trademarked by TheCodingMonkeys and Dominik Wagner, LoneMonkeyProductions.
Acknowledgments
Related Repositories