Website profiles · Technology insights · Alternatives

coteditor.com

Text Editor for macOS

No paid content found
Visit website
Profile views 0 Outbound visits 0 Normal
CotEditor -Text Editor for macOS Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2014
Hosting
FastlyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is CotEditor?

CotEditor is a free, open-source plain-text editor built specifically for macOS. Its pitch is a light, fast editor that behaves like a native Mac application: quick to launch, quick to open a document, and configured through a standard settings window rather than hand-edited config files. It is aimed at people who work with text and code but don't need a full IDE—writers editing Markdown, developers doing quick edits, and anyone who regularly deals with encoding or character issues.

What it's good at

  • Syntax highlighting for more than 60 pre-installed languages, including HTML, PHP, Python, Ruby and Markdown, with custom syntax definitions if yours isn't covered.
  • Find and replace using the ICU regular expression engine, so pattern-based edits are practical rather than an afterthought.
  • Outline menu that extracts defined lines from a document so you can jump around long files.
  • Split editor for viewing different parts of the same document side by side.
  • Auto backup of unsaved work while you edit.
  • Character inspector showing Unicode data for selected characters.
  • Incompatible character checking, which lists characters that can't be converted to a target encoding.
  • CJK-friendly handling: accurate encoding estimation, vertical text mode, and correct line height in that mode.
  • Scripting in Python, Ruby, Perl, PHP, UNIX shell, AppleScript or JavaScript for custom macros.

Where it fits

CotEditor suits a plain-text workflow rather than a project-centric one. If you want a fast window for editing a config file, a script, a Markdown draft or a document in an unusual encoding, the native feel and quick launch matter more than plugin ecosystems. If you need deep project navigation, integrated debugging or heavy extension support, a full IDE will serve you better.

One trade-off worth noting: the feature list is deliberately compact. The value is in doing text editing well on macOS, not in matching every capability of larger editors.

A practical next step

Install it, then open a file you already work with—a Markdown note or a source file—and check three things: whether your language is highlighted correctly, whether the encoding is detected properly, and whether the find-and-replace regex handles a pattern you actually use. If those pass, set up a syntax definition or a small script macro for your most repetitive edit. The project is developed openly and takes bug reports and feature requests through its issue tracker, so unusual encoding or CJK problems are worth reporting rather than working around.

How does CotEditor compare to other text editors for macOS?

CotEditor is best understood as a focused plain-text editor built specifically for macOS, not a general-purpose code IDE. Its appeal is speed and simplicity: it launches quickly, follows native macOS conventions, and puts settings in a normal preferences window rather than config files. For someone who edits Markdown, shell scripts, config files or short source files, that is often enough.

Compared with broader editors, it trades ecosystem size for a lighter, more Mac-native feel. Its feature set is practical rather than sprawling:

  • Syntax highlighting for 60+ pre-installed languages, with custom definitions
  • ICU regular-expression find and replace
  • Outline menu for jumping to defined sections
  • Split editor panes for viewing different parts of one document
  • Automatic backup of unsaved work
  • Scriptable macros in Python, Ruby, Perl, PHP, shell, AppleScript or JavaScript
  • Character inspector and incompatible-character checking for encoding work
  • CJK-friendly encoding detection, vertical text mode and line-height handling

How the trade-offs usually play out

Need CotEditor fits when A different editor may fit when
Quick plain-text edits You want fast launch and native behavior You need deep project-wide refactoring
Multiple languages Built-in highlighting covers common cases You depend on a large plugin marketplace
Encoding and CJK text Character inspection and vertical text matter You mainly work in one ASCII-heavy language
Automation Scripting in your preferred language is enough You need integrated build, debug and test tooling
Configuration You prefer a settings window You prefer editing dotfiles and configs directly

If you already use a heavier editor for large projects, CotEditor can serve as the lightweight second editor you keep open for notes, logs and one-off edits. A reasonable next step is to open a file you edit often, check whether its language is highlighted correctly, and try the outline menu and find-and-replace on real content before deciding whether it replaces or complements your current setup. macOS users who want a native alternative can also look at BBEdit, while cross-platform users may compare Visual Studio Code or Sublime Text.

How do I set up syntax highlighting for a custom language in CotEditor?

CotEditor handles custom syntax highlighting through its Settings window rather than a configuration file, so you define a new language and its rules in a dialog and it appears as a selectable syntax thereafter.

The basic workflow

  1. Open CotEditor's Settings and go to the Syntax pane (the same place where the pre-installed languages like HTML, PHP, Python, Ruby and Markdown are listed).
  2. Add a new syntax definition and give it a name — this is what will show up in the syntax selector.
  3. Define the language's elements: keywords, commands, types, attributes, variables, values, and numbers, plus comment delimiters and quote characters for strings.
  4. Add regular-expression-based rules for anything the simpler categories can't capture, and assign each category a color.
  5. Save, then set the new syntax as the one CotEditor should use for matching files, typically by associating file extensions or filenames with it.

Because settings live in a standard window, you can revisit and edit any of this later without touching files on disk. If your language shares most of its vocabulary with an existing one, the faster route is often to duplicate that definition and change the deltas rather than build from scratch.

Practical details worth knowing

  • Regex rules use the ICU engine, the same engine behind CotEditor's find and replace, so patterns you test in the search field generally behave the same way in a syntax rule.
  • Colors are per-category, not per-rule by default. If you need finer visual separation, split items into different categories rather than expecting a single category to render two ways.
  • The Outline menu is driven by the same syntax definition. If you want to jump between functions or sections, define outline patterns as part of the language setup.
  • Incompatible-character checking and encoding detection are separate features. They help when a file mixes encodings, but they don't affect highlighting rules.
  • You can script around the editor. Macros in Python, Ruby, Perl, PHP, a UNIX shell, AppleScript or JavaScript are supported, which is useful if you generate syntax definitions or transform documents repeatedly.

A concrete scenario

Suppose you maintain a small in-house configuration language with # comments, quoted strings, and a fixed set of directives. You would add a syntax named after the language, list the directives as keywords, set # as the line-comment marker, set the quote characters, and attach the file extension your configs use. The first pass takes a few minutes; the payoff is that every config file you open afterward is colored and outline-navigable without further effort.

Choosing between duplicating and building fresh

Situation Better starting point
Language is a superset or dialect of an existing one Duplicate the closest built-in syntax, then edit
Few keywords, unusual comment or string syntax New definition from scratch
You mainly need outline navigation Either, but prioritize outline patterns
You need many distinct colors Plan categories before adding rules

If you get stuck on rule behavior, the regular-expression rules are the part most worth testing incrementally — add one pattern, check a sample file, then add the next. The project is open source, so the issue tracker is the right place for bugs or feature requests if a rule type you need isn't available.

Can I use CotEditor to edit files in CJK languages?

Yes. CotEditor is explicitly built with CJK (Chinese, Japanese, Korean) users in mind, and its CJK-friendly features are among its selling points on CotEditor.

What this means in practice

  • Encoding detection: CotEditor estimates various file encodings accurately, which matters for CJK text because the same characters can be stored in Shift-JIS, EUC-JP, GB18030, Big5, UTF-8 and other encodings. Misdetection is a common source of garbled (mojibake) text, so accurate estimation is the feature most CJK users will notice first.
  • Vertical text mode: You can toggle to vertical writing, with line height kept correct. This is useful for Japanese and traditional Chinese documents, and it is not something most general-purpose editors handle well.
  • Incompatible character checking: CotEditor lists characters in your document that cannot be converted into a target encoding. If you write in UTF-8 but must deliver a file in a legacy encoding, this tells you exactly which characters will break before you save.
  • Syntax highlighting: Over 60 pre-installed languages, and you can add your own definitions, so CJK markup and code files are covered.
  • Character inspector: Selecting a character shows its Unicode data in a popover, helpful when two visually similar CJK glyphs need to be distinguished.

A concrete scenario

Suppose you receive a Japanese CSV file from a partner and it opens as garbled text. You open it in CotEditor, let the encoding estimator suggest the right encoding, confirm the text reads correctly, edit it, then use the incompatible-character check before saving back to the original encoding so nothing silently gets replaced.

Decision criterion

If your work is mostly CJK plain text with encoding round-trips, vertical layout, or legacy encodings, CotEditor is a strong fit and it is free and open source. If you need heavy project-wide refactoring, integrated terminals, or deep plugin ecosystems, a full IDE may serve you better; CotEditor is positioned as a lightweight, macOS-native editor rather than an IDE.

A useful next step: open one of your real CJK files, check whether the encoding is detected correctly, and try the vertical text toggle to see whether the layout suits your documents.

How do I run scripts or macros in CotEditor?

CotEditor lets you automate the editor with scripts written in a language you already know — Python, Ruby, Perl, PHP, a UNIX shell, AppleScript, or JavaScript — rather than a proprietary macro language. The scriptable feature is listed among CotEditor's main capabilities on CotEditor, so this is a built-in part of the app rather than an add-on.

How scripting generally works in CotEditor

Scripts live in a scripts folder that CotEditor watches, and each script appears in the Script menu. From there you can run it against the current document. The typical workflow is:

  1. Open the Script menu and choose the option to open the Scripts folder (or find it via the app's settings).
  2. Drop a script file into the appropriate language subfolder — the file extension tells CotEditor which interpreter to use.
  3. Return to CotEditor; the script shows up in the Script menu, ready to run on the active document.

Because the menu is populated from that folder, adding, renaming or removing scripts is a matter of managing files, not editing configuration files — consistent with CotEditor's stated preference for settings windows over complex config files.

What a script can do

Scripts can read the current document's text, transform it, and write it back, so they are well suited to repetitive editing tasks: reformatting lists, converting between encodings or line endings, generating boilerplate, or extracting data. CotEditor's other features complement this. The syntax highlighting definitions and themes are editable from the settings window, and the outline menu and character inspector help you verify what a script changed. The incompatible-characters check is useful if a script also touches the file encoding.

Choosing a language

  • AppleScript — best for controlling CotEditor and other macOS apps, not for heavy text processing.
  • Python, Ruby, Perl — best for text manipulation, regular expressions and file processing.
  • Shell — best for piping text through command-line tools.
  • JavaScript — a reasonable middle ground if you already write it.

Pick whichever you can debug fastest; the script's job is usually small, so familiarity matters more than language features.

A practical next step

Start with one narrow task you repeat often — for example, stripping trailing whitespace or renumbering a list — and write the smallest script that does only that. Run it from the Script menu on a scratch document first, confirm the result, then keep it. Once that works, extend it rather than writing a large script from scratch.

For general macOS text-editing habits, CotEditor's focus on plain text and quick launch makes it a natural home for these small automations; if you need a broader editor ecosystem, GitHub hosts CotEditor's project page and issue tracker, where feature requests and bug reports about scripting belong.

What should I do if CotEditor cannot open a file due to encoding issues?

Start by determining whether the file is actually text or whether CotEditor is guessing the wrong encoding. CotEditor is built for plain text on macOS, and its CJK-friendly encoding detection is designed to estimate various file encodings accurately, but no detector is perfect. If a file opens as garbled characters rather than refusing to open, the problem is usually the selected encoding, not the file itself.

Practical steps

  1. Try reopening with an explicit encoding. In the open dialog, choose the file and set the encoding manually instead of relying on auto-detection. Common candidates are UTF-8, UTF-16, Shift_JIS, EUC-JP, GB18030 and Windows-1252.
  2. Reopen and reinterpret. If the document is already open but unreadable, use the encoding/reinterpret command to reload it with a different encoding without editing the bytes.
  3. Check for incompatible characters. CotEditor's Incompatible Characters feature lists characters that cannot be converted into a target encoding. If you see that list, the file contains characters the chosen encoding cannot represent, so pick a wider encoding such as UTF-8.
  4. Inspect suspicious characters. Use the Character Inspector to view Unicode data for selected characters; this helps distinguish a real encoding mismatch from lookalike or control characters.
  5. Confirm the file is text. A binary file, a damaged download, or a file on a network volume that failed to mount will not open as text regardless of encoding.

Choosing the right encoding

Symptom Likely cause First thing to try
Garbled letters, wrong symbols Wrong encoding selected Reopen with UTF-8, then the regional encoding
File opens but some characters are boxes or question marks Target encoding cannot represent them Switch to UTF-8
Nothing opens at all File is binary, truncated or inaccessible Verify the file type and location

For a concrete scenario: you receive a Japanese CSV export and it opens as mojibake. Opening it as UTF-8 fails, so you reinterpret it as Shift_JIS and the text becomes readable. If you then need to save it for a system that expects UTF-8, check Incompatible Characters before saving to catch anything that would be lost.

As a next step, note the encoding that worked and set it as the default for that file type in CotEditor's settings window, so the same kind of file opens correctly the next time. If the file still will not open, the issue is likely outside encoding entirely and worth checking with the file's source.

Related questions

More questions →
What Are Open-Source UI Element Libraries and How Do They Differ From UI Frameworks?

An open-source UI element library is a collection of individual, ready-made interface pieces—buttons, cards, inputs, toggles, loaders—that you copy into your own project and adapt. A UI framework, by contrast, is a structured system of components, conventions, and often a theming layer that governs how your whole interface is built. The practical difference: an element library gives you a snippet; a framework gives you a way of working. If you need a polished button in ten minutes, reach for the element library. If you're building a 40-screen product with a team, you probably want the framework.

What "open-source UI element library" actually means

The term gets used loosely, so it helps to separate the parts:

  • Open-source: the code is publicly available, and the license tells you what you may do with it—copy, modify, redistribute, or use commercially.
  • UI element: a single, self-contained piece of interface, usually small enough to read in one sitting. A button with hover states, a pricing card, a search field.
  • Library: a browsable, searchable collection of those elements, typically contributed by many different people.

On a site like Uiverse, elements are shared by a community and written in plain CSS or Tailwind. You find one you like, copy the markup and styles, paste them into your project, and adjust colors, spacing, and text to fit. There's no package to install and no build step required—which is exactly the appeal, and also the source of most of the confusion.

Element library vs. UI framework: the core differences

Dimension Open-source UI element library UI framework / design system
Unit of reuse A single snippet you copy A component you import or call
Installation None; paste into your code Package install, config, sometimes a provider
Consistency Depends on you; each element may look different Enforced by shared tokens and APIs
Theming Manual edits per element Central theme/config file
Updates You own the copy; no upstream updates Version bumps bring fixes and changes
Accessibility Varies per contributor; must be checked Usually tested and documented
Best for Prototypes, landing pages, small sites, one-off needs Multi-page apps, teams, long-lived products
Learning curve Low—read the CSS Higher—learn the API and conventions

The table isn't a verdict. It's a map of trade-offs. Element libraries win on speed and freedom; frameworks win on consistency and maintenance.

Licensing and attribution: what to check before you paste

This is where people get into trouble, and it's worth slowing down for.

  1. Find the license. Every element or collection should state one. Common open-source licenses include MIT, Apache-2.0, and BSD. Some projects use copyleft licenses like GPL, which can impose obligations if you redistribute your code.
  2. Understand what the license permits. MIT and Apache-2.0 are permissive: you can typically use the code in commercial and closed-source projects. Copyleft licenses may require you to release derivative source under the same terms.
  3. Check attribution requirements. Permissive licenses usually require you to keep the copyright notice and license text somewhere in your project. That's a real obligation, not a formality.
  4. Look for per-element terms. On community sites, the site's overall terms and the individual contributor's stated wishes may differ. If a contributor asks for credit, honor it.
  5. When in doubt, ask or avoid. If a snippet has no license at all, you don't have clear permission to reuse it. Treat "no license" as "not open source," even if the code is publicly visible.

This article is general information, not legal advice. For commercial products with real exposure, have someone qualified review the licenses you're relying on.

How to use a community element in your project: a practical workflow

Here's a repeatable process that avoids most of the usual mess.

1. Start from a real need, not a browsing session

Decide what you need first—"a compact primary button with a loading state"—then search. Browsing aimlessly produces a pile of pretty snippets that don't fit together.

2. Copy the smallest version that works

Take the markup and the styles. Strip anything you don't need: demo wrappers, extra animations, decorative layers. Less code means fewer surprises.

3. Convert it to your conventions

If your project uses design tokens or CSS variables, replace hard-coded values:

/* Before: hard-coded */
.button { background: #4f46e5; border-radius: 8px; }

/* After: token-based */
.button { background: var(--color-primary); border-radius: var(--radius-md); }

This one step is what keeps a copied element from looking like a foreign object in your UI.

4. Check accessibility before you ship

Community elements vary widely here. Verify at minimum:

  • Keyboard focus is visible and the element is reachable by Tab.
  • Color contrast meets WCAG AA (4.5:1 for normal text).
  • Interactive elements use semantic HTML (<button>, not a clickable <div>).
  • Form inputs have associated labels.
  • Motion respects prefers-reduced-motion.

5. Test in context

Paste it into a real page with real content. Long labels, small screens, and dark mode break more copied elements than anything else.

6. Note where it came from

Keep a short comment or an internal credits file: source, license, date. Future you—and your legal reviewer—will be grateful.

Where element libraries genuinely shine

  • Prototypes and demos: you need something clickable today, not a design system.
  • Landing pages and marketing sites: a handful of distinctive elements, each custom.
  • Filling gaps: your framework lacks one specific component, and you don't want to build it from scratch.
  • Learning: reading well-made CSS is one of the fastest ways to improve.
  • Small projects: a personal site doesn't need a theming architecture.

Where they fall short

  • Consistency at scale: ten elements from ten contributors rarely look like one product.
  • Maintenance: you own every copy. When your design changes, you edit each one.
  • Accessibility debt: you inherit whatever the contributor did or didn't do.
  • No upstream fixes: a bug fixed in the original won't reach your copy.
  • Integration friction: different naming conventions, different units, different assumptions about resets.

When to choose which

Choose an element library when the scope is small, the timeline is short, or you need a few distinctive pieces rather than a whole system.

Choose a framework or design system when multiple people build multiple screens over months, when consistency is a product requirement, or when accessibility and theming need to be guaranteed rather than checked.

A hybrid works well for many teams: adopt a framework for the structural components—forms, navigation, layout—and borrow individual elements for the places where you want personality. Just route every borrowed element through the same token and accessibility checks, so it lands as part of your system rather than beside it.

The short version: open-source UI element libraries are a fast, flexible way to get good-looking interface pieces into a project. They are not a substitute for a design system, and the license and accessibility details are the part worth reading carefully.

What Is CotEditor and What Kind of Text Editor Is It?

CotEditor is a free, open-source plain-text editor built specifically for macOS. It is aimed at people who want a fast, native-feeling editor for writing and editing text files rather than a full IDE. If you work on macOS and need something lightweight that still handles syntax highlighting, regular-expression search, and encoding checks, it fits that role. If you need a cross-platform editor or a full development environment, it is not designed for that.

What kind of editor is it?

CotEditor describes itself as "the plain-text editor for macOS" — light-weight, neat, yet powerful. Three traits define its scope:

  • macOS-only. It is made exactly for macOS and is intended to look and behave like a standard macOS application, rather than a port of a cross-platform tool.
  • Plain-text focused. It edits text files; it is not positioned as an IDE or a document word processor.
  • Open source. It is developed as an open-source project, and anyone can contribute. Bug reports and feature requests go through its issue tracker, with the project page hosted on GitHub.

Who is it for?

It suits users who want a native macOS text editor that starts quickly and stays out of the way. The site emphasizes rapid launch, so you can begin writing immediately. It also suits people who prefer configuring through a standard settings window instead of editing complex configuration files.

It is less suitable if you need the same editor across Windows and Linux, or if your work depends on IDE-style project management and build tooling.

What can it do?

The feature set centers on text editing rather than project management:

Feature What it does
Syntax highlighting Colorizes more than 60 pre-installed major languages, including HTML, PHP, Python, Ruby, and Markdown; you can also create your own settings
Find & replace Uses the ICU regular expression engine
Settings via click All settings, including syntax definitions and themes, are reachable from a standard settings window — no complex config files
Auto backup Backs up documents automatically while editing, so unsaved data is not lost
Outline menu Extracts specified lines using the predefined syntax and lets you jump to the corresponding line
Split editor Splits a window into multiple panes to view different parts of the same document
Character inspector Shows Unicode character data for each selected character in a popover
Scripting Lets you write macros in Python, Ruby, Perl, PHP, UNIX shell, AppleScript, or JavaScript
Incompatible character check Lists characters that cannot be converted into the target encoding
CJK language support Estimates various file encodings accurately, toggles vertical text mode, and keeps line height correct

How to decide

Choose CotEditor if all of these hold: you are on macOS, you mainly edit plain text, and you value fast launch plus a native interface over IDE features. The syntax highlighting, regex search, and encoding tools cover common writing and light coding tasks, and scripting covers repetitive edits.

Look elsewhere if you need cross-platform availability or integrated project/build workflows. The site states the editor is free, and it is distributed as an open-source project; for current download and system requirements, check the project page on GitHub or the official site.

What Features Does CotEditor Offer for macOS Users?

CotEditor is a free, open-source plain-text editor built specifically for macOS. It is lightweight and launches quickly, and its feature set centers on everyday writing and coding tasks: syntax highlighting for 60+ languages, ICU regular-expression find and replace, GUI-based settings, automatic backup, and a set of editing utilities. It suits macOS users who want a fast native editor for plain text, code, and Markdown without a heavy IDE.

Core editing features

Syntax highlighting

CotEditor colorizes more than 60 pre-installed major languages, including HTML, PHP, Python, Ruby, and Markdown. You can also create your own syntax settings if a language you use is not covered.

Find and replace

The find-and-replace function uses the ICU regular expression engine, which supports powerful pattern matching for search and substitution.

Outline menu

The outline menu extracts specified lines based on the predefined syntax, and you can jump directly to the corresponding line in the document.

Split editor

You can split a window into multiple panes to view different parts of the same document at the same time.

Character inspector

Select a character and the character inspector displays its Unicode character data in a popover.

Incompatible character check

CotEditor can check and list the characters in your document that cannot be converted into a desired encoding, which helps before saving or exporting to a specific encoding.

Configuration and workflow

Settings via a standard window

There are no complex configuration files requiring technical knowledge. All settings, including syntax definitions and themes, are accessible from a standard settings window.

Auto backup

CotEditor automatically backs up your documents while you edit, so unsaved data is not lost.

Scriptable macros

You can write your own macros in a range of languages: Python, Ruby, Perl, PHP, UNIX shell, AppleScript, or JavaScript.

macOS and CJK-specific behavior

  • Made for macOS: CotEditor is designed specifically for macOS and behaves like a native macOS application.
  • Rapid launch: It launches quickly so you can start writing immediately.
  • CJK language friendly: It estimates various file encodings accurately, can toggle to vertical text mode, and keeps line height correct in that mode.
  • Open source: CotEditor is developed as an open-source project that accepts contributions, and bug reports or feature requests go through its issue tracker.

Quick reference

Feature What it does
Syntax highlighting Colorizes 60+ languages; custom settings supported
Find & replace Uses the ICU regular expression engine
Settings window Configure syntax definitions and themes without config files
Auto backup Backs up documents automatically while editing
Outline menu Extracts specified lines and jumps to them
Split editor Divides a window into multiple panes
Character inspector Shows Unicode data for a selected character
Scriptable macros Macros in Python, Ruby, Perl, PHP, shell, AppleScript, or JavaScript
Incompatible characters Lists characters that cannot convert to a target encoding
CJK support Accurate encoding estimation, vertical text mode, correct line height

The site states CotEditor is free, lightweight, and open source. If your work is mostly plain text, code, or Markdown on macOS and you want native behavior, fast startup, and scriptable macros without a full IDE, these features cover that use case.

Can I write scripts and macros in CotEditor?

Yes. CotEditor is scriptable, and according to the project's own feature list you can write your own macros in Python, Ruby, Perl, PHP, UNIX shell, AppleScript, or JavaScript. This applies to macOS users who want to automate repetitive text work inside the editor rather than switching to a separate scripting environment.

What "scriptable" means in CotEditor

CotEditor is a plain-text editor built specifically for macOS. Its scripting support is presented as a way to "make your own macro in your favorite language," so the practical idea is: you write a script in a language you already know, and CotEditor runs it as a macro against your document.

The supported languages listed on the site are:

  • Python
  • Ruby
  • Perl
  • PHP
  • UNIX shell
  • AppleScript
  • JavaScript

Because the list mixes general-purpose languages with macOS automation tools, you can pick based on the task. AppleScript fits macOS-level automation, while Python, Ruby, Perl, PHP, shell, and JavaScript fit text transformation and processing.

How this fits with the rest of the editor

Scripting is one feature among several aimed at people who work with text regularly. Related capabilities from the same feature set include:

Feature What it does
Syntax Highlighting Colorizes 60+ pre-installed languages, including HTML, PHP, Python, Ruby, and Markdown; custom settings allowed
Find & Replace Uses the ICU regular expression engine
Outline Menu Extracts specified lines using predefined syntax and jumps to the matching line
Split Editor Splits a window into panes to view different parts of a document
Character Inspector Shows Unicode data for selected characters in a popover
Incompatible Characters Lists characters that cannot convert to a chosen encoding
CJK Language Friendly Estimates file encodings, supports vertical text mode, and keeps line height correct

For scripting specifically, the Find & Replace engine and syntax definitions matter because a macro often needs to locate patterns and rewrite them. The site also notes that all settings, including syntax definitions and themes, are reachable from a standard settings window rather than complex configuration files.

Who this is for

Scripting in CotEditor suits users who want to automate text processing without leaving the editor. Typical situations include:

  • Reformatting or cleaning up repeated text patterns
  • Running a small Python or Ruby routine over a document
  • Using AppleScript to tie editor actions into macOS workflows
  • Writing shell-based transformations for plain-text files

If your work is mostly manual editing, the other features (syntax highlighting, outline navigation, split view) may matter more. If your work involves repeated transformations, the multi-language scripting support is the relevant reason to choose CotEditor.

Practical notes

  • The site describes CotEditor as free, lightweight, and open source, with development on GitHub and feedback handled through an issue tracker.
  • It is made only for macOS, so scripting assumes a macOS environment.
  • The feature list does not specify script APIs, file locations, or execution details, so exact setup should be confirmed in the app itself or the project's documentation.
  • Auto Backup is included, which reduces the risk of losing unsaved data while editing or testing scripts.
How CotEditor Handles CJK Languages and File Encodings

CotEditor treats CJK (Chinese, Japanese, Korean) support as a first-class feature rather than an afterthought. According to the official site, it is "CJK Language Friendly," which specifically means it estimates various file encodings accurately, lets you toggle to vertical text mode, keeps line height correct in that mode, and can list characters that cannot be converted into a target encoding. If you regularly open text files of unknown origin or work with vertical Japanese or Chinese text, these are the capabilities that matter most.

Accurate encoding estimation

CJK text is where encoding problems surface fastest: the same byte sequence can be valid Shift_JIS, GB18030, or UTF-8, and guessing wrong produces mojibake. CotEditor's stated behavior is to "estimate various file encodings accurately," so when you open a file without specifying its encoding, the editor attempts to detect the right one instead of defaulting blindly to UTF-8.

What this means in practice:

  • Opening legacy files — Japanese Shift_JIS or EUC-JP documents, and Chinese GB-family encodings, are more likely to display correctly on first open.
  • Fewer manual corrections — you spend less time re-opening a file with a hand-picked encoding after seeing garbled text.
  • A starting point, not a guarantee — estimation can still be wrong for short files or files with few CJK characters, since there is little data to distinguish encodings. If the text looks wrong, the fix is to reopen with an explicitly chosen encoding.

Vertical text mode and line height

CotEditor supports toggling to vertical text mode, and the site notes it keeps line height correct in that mode. This matters because vertical CJK layout is not just rotated horizontal text — line spacing, character advance, and punctuation positioning all change, and a naive rotation produces cramped or overlapping columns.

For anyone editing Japanese novels, traditional Chinese poetry, or any document intended for vertical reading, this means the editing view can match the intended output layout rather than forcing you to compose horizontally and convert later.

Checking characters that can't be converted

The "Incompatible Characters" feature checks and lists up characters in your document that cannot be converted into a desired encoding. This is the counterpart to encoding estimation: estimation is about reading a file in, and this feature is about writing a file out.

A concrete case: you have a UTF-8 document containing emoji, rare kanji, or symbols, and you need to save it as Shift_JIS for a legacy system. Rather than saving and discovering later that characters were replaced or dropped, you can have CotEditor list exactly which characters will not survive the conversion, then decide whether to substitute, remove, or keep the file in a wider encoding.

Related features that support CJK work

Several other documented features are useful in the same workflows:

Feature How it helps with CJK text
Syntax highlighting 60+ pre-installed languages including HTML, PHP, Python, Ruby, Markdown; you can define your own
Outline menu Extracts specified lines using the syntax definition and lets you jump to them — useful for navigating long structured documents
Split editor Divides a window into panes to view different parts of the same document
Character inspector Shows Unicode character data for each selected character in a popover — helpful when two visually similar characters behave differently
Scriptable macros Write macros in Python, Ruby, Perl, PHP, UNIX shell, AppleScript, or JavaScript for batch text processing
Auto backup Backs up documents automatically while editing, so unsaved work is not lost

The character inspector is particularly relevant to CJK editing, since it lets you confirm exactly which Unicode code point a character is — the difference between a Chinese and Japanese variant of the same-looking character is often invisible on screen.

Practical conditions to keep in mind

  • Platform: CotEditor is made specifically for macOS and behaves like a native macOS application. It is not available for Windows or Linux.
  • Cost: the site states "It's free!" No pricing page or paid tier is indicated in the available material.
  • Source: it is developed as an open-source project, with the project page on GitHub and an issue tracker for bug reports and feature requests.
  • Launch speed: the site emphasizes rapid launch, so opening a file to check its encoding is a low-friction action.

If your work involves CJK text in mixed or unknown encodings, vertical layout, or conversion to narrower legacy encodings, CotEditor's documented feature set addresses each of those points directly. If you only ever handle UTF-8 files in horizontal layout, the encoding estimation and vertical mode will rarely come into play, and the more relevant features would be syntax highlighting, find and replace with the ICU regular expression engine, and the outline menu.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 2014, this domain has about 11 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .com extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by value-domain.com, indicating managed DNS hosting. No CNAME was found; the observed records resolve directly to addresses. No MX record was found. A conventional explicit inbound-mail route is not configured. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed. The lowest observed DNS TTL is 1200 seconds.

TLS and Certificates

The certificate uses an RSA 2048-bit public key, offering broad client compatibility. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The checked browser-security headers were not detected, leaving fewer explicit browser-side safeguards. CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The x-cache, x-served-by, via response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Fastly without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. Twitter Card metadata is configured. The title has 32 characters, within a common display range. A meta description is present, with 21 characters. The observed directives allow indexing and link following.

Hosting and Email

DNSvalue-domain.com
HostingFastly
EmailUnknown
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagUnited States Inferred 185.199.108.153

Registration details

RDAP / WHOIS

RegistrareNom, LLC
Registered2014-10-31
Expires2027-10-31
Domain statusclient transfer prohibited
Nameserversns1.value-domain.com、ns2.value-domain.com、ns3.value-domain.com、ns4.value-domain.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Acoteditor.com185.199.108.1531200—
Acoteditor.com185.199.109.1531200—
Acoteditor.com185.199.110.1531200—
Acoteditor.com185.199.111.1531200—
NScoteditor.comns1.value-domain.com1200—
NScoteditor.comns2.value-domain.com1200—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectcoteditor.com
IssuerLet's Encrypt
Valid until2026-11-19T22:56 · Remaining when checked: 34 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlmax-age=600
serverGitHub.com
access-control-allow-origin*

Identified technologies

Fastly

Pages, Search and Sharing

User reviews (0)

  • No reviews yet.