Last updated: 

This page shows off the features of MacTerm 5.0, which is under development and is not ready for general use.  It also is the only version that will run on macOS 10.15 “Catalina” and beyond.  If you use 10.14 or any earlier macOS, please check out the older stable version 4.1.

MacTerm 5 will be a major upgrade, in addition to adding support for the latest macOS.  It is currently under development and only available by building directly from GitHub.  “Alpha” builds are planned soon, probably by early 2021.  You should have no expectation of stability and there will be issues when using this version so soon!

The full change log sums up pretty much everything that has ever happened over the past several years!

You can jump to the screenshots gallery at the end, if you like.

Unique to Version 5:

MacTerm may be just for you:

And there is a lot more:


MacTerm is Free Software Under the GPL

MacTerm is free software; you are welcome to change it and/or distribute copies under certain conditions.  There is absolutely no warranty for MacTerm.  See the GNU General Public License (as published by the Free Software Foundation) for details.

You can access the source code for this project from the Developers page.

Major Upgrades in Version 5

“Big Sur” Ready and “Apple Silicon” Ready

When running on macOS 11 “Big Sur”, MacTerm icons use the new system-defined symbols, in everything from toolbars to preference panels, and session status icons.  (It also runs on macOS 10.15 but uses older icons on that OS.)

On “Big Sur” only, window frames are also updated, and the Preferences toolbar has the new standard look.

Alert messages have adopted large buttons and a more centered style to match “Big Sur” but they are still customized in MacTerm, with tinted frames and a wider layout, for better usability than standard alerts.

MacTerm is also built simultaneously for “Apple Silicon” (arm64) and older Macs (x86_64).

Native Interface

Terminal windows finally look at home on Retina displays, with support for modern user interface idioms.

Full Screen Split-Panes
MacTerm terminals can finally appear alongside other application windows in Full Screen split-view.
Window Tabs
The custom “window tab” implementation from MacTerm 4.x is being replaced by native macOS window tabs, integrating with other window tab features in macOS.
Beautiful Text and Graphics
Text rendering is smoother and especially striking on Retina displays.  Terminal graphics such as drawn lines are more crisp and readable.
Significantly Updated User Interface
Many panels, such as those in Preferences, have a newer look and more refined behavior.
Integrated with System Services
Selected text in the terminal and other data sources in the program are visible to other apps on your computer, such as those in Services submenus and Share sheets.

Go Dark

Light and Dark Terminal Formats
When a default Format is set for a Session, you can now specify a different Format if the system is in Dark Mode.
Light and Dark Interface
Toolbar icons are light on dark backgrounds and dark on light backgrounds.  The rest of the interface has had controls and colors adjusted to look good with or without Dark Mode.

Toolbar and Window Title Enhancements

Toolbars and window titles look better and they have been extended to make better use of space.

Ultra Customization
MacTerm 5.0 allows you to customize everything, even beyond standard behaviors:
  • Relocate or remove every standard window control like Close/Minimize/Zoom!
    Let’s face it, you can always use keyboard equivalents, and those colored blobs take up space that you’d rather devote to useful content.  (If you hide the toolbar, MacTerm reverts to a standard title bar with visible window controls.)
  • Relocate and set the alignment of the title!
    For example, maybe you want it left-justified starting in the top-left corner.  Furthermore, the title region automatically shrinks to display as much of the title as it possibly can, using gradient fade-out truncation when it can’t, which is great for really long strings like Unix directory paths.
  • Brand new macro button items!
    You can choose to put any number of macros from the current set (up to 12) in the toolbar, where they automatically show the macro’s name, if any.  Also, if you change the active macro set, the toolbar items automatically change.  If you combine this with other layout items such as a “flexible space” or the new anchored window title items, you can have a stable region in your toolbar where active commands are always available.  (And remember, you can always use menus and key equivalents as a fallback.)
  • Notifications item
    There is now a toolbar item with a menu for quick access to all the existing event handlers, such as “Notify on Next Activity”.
Retina Ready
Toolbar icons have been reimplemented as vector graphics with smooth lines that look beautiful on Retina displays.
“Big Sur” Ready
As mentioned above, system standard symbols are used for toolbar icons on macOS 11.

Expanded Terminal Features

Just because a feature already exists doesn’t mean it can’t be better.

Regular Expression Search
A new option in the Find interface is “Regex”, allowing the scan to be more complex than a simple literal string match.
Custom Mouse Pointer Color
It is now possible to choose the mouse pointer color: Black, White or Red, and this is associated with a Format collection so the mouse always looks as good as possible with your chosen terminal colors.
Faster Bitmap Graphics
Images constructed by SIXEL or iTerm2 sequences now render MUCH faster.

Expanded Macros

Macros are even more capable:

Substitute Clipboard Text
Macros that allow substitution can now use \. to get all the text on the Clipboard, where each line is followed by the current session’s preferred new-line sequence.  Alternately, the \: sequence can be used to first join lines together with spaces before inserting text from the Clipboard.  Note that since this works with any macro action that support substitution (such as “Find in Local Terminal with Substitution”), this is more flexible than the Paste command.
Substitute Number of Columns
Macros that allow substitution can now use \| to get the number of columns in the terminal (similar to the existing \# sequence that returns the number of lines).
Macro Toolbar Items
See “Ultra Customization” above for details.

Unicode Boost

While MacTerm 4.1 added UTF-8 parsing and significantly expanded rendering capabilities, MacTerm 5.0 is raising the bar substantially.

Proper Cell Widths
Unicode is inherently complex, with a wide variety of potential “widths” for composed sequences: while terminals originally only supported characters with the width of English letters, now double-width and arbitrary-width renderings are important too.  In MacTerm 5.0, substantial changes are going to make sure that text alignment is always appropriate for the text.
Extended Character Tables
While UTF-8 was supported in MacTerm 4.x, the renderer was still unable to handle many kinds of Unicode sequences (such that text might not appear in the terminal, even if it was possible to copy/paste or print correctly!).  In MacTerm 5.0, these problems are being fixed and virtually all Unicode sequences will be in the display itself.

New Architecture

Adopting the latest software kits and development tools from Apple, MacTerm 5.0 will improve significantly.

No longer 32-bit, MacTerm will be a completely modern macOS application that takes advantage of more recent system improvements, such as performance enhancements and extra memory capacity.
Inherently Parallel and Segregated
Although MacTerm 4.1 started to compartmentalize certain components for better stability and performance, MacTerm 5.0 does this even more.
With a new compiler, new optimizations and the latest development kits, MacTerm will be able to handle data more efficiently in some cases.

Python 3.x API

The MacTerm Python implementation now binds to the Python 3.9 interpreter, supporting modern Python development.

Just For You

For Administrators

MacTerm is easy to deploy and support for multiple users, and is a powerful tool for administrative tasks…

Default Configuration
When MacTerm first runs, it sets up all user default preferences from a file in its application bundle. You can simplify support if you customize settings prior to deployment.  For example, a university could change the “factory default” session host to a campus login server, so that students don’t have to be instructed on how to set this up themselves.
Low-Level Customizations
MacTerm makes full use of the Mac preferences model; the command-line defaults tool is able to access all settings so massive changes can be automated.  Every possible setting is documented in MacTerm Help. There is also a small and evolving Python API that provides extensive access to the internals of the program.
Files and URLs
A significant number of URL and file types can be directly handled by MacTerm, including Apple ".command" files and the "x-man-page" extension.  And if you feel like writing some Python code, you can make MacTerm handle any file type or URL that you want!
Super Terminal
MacTerm is a complete terminal for local commands or remote access, and is an excellent tool for administrators to use.  It has extremely rare features, such as dynamic search.  It even has Unix-like options for those who prefer, for instance, focus-follows-mouse and copy-on-select kinds of behaviors.  See the full terminal description on this page.
Experimental Low-Level Sandboxing Support
By setting an environment variable that is recognized by the MacTerm bundle, experimental sandboxing can be enabled.  MacTerm includes a fairly specific sandboxing profile that can be further customized by administrators if applications in sub-shells are found to not work in the sandbox.  (This is disabled by default.)

For Students and Researchers

MacTerm can run many popular Unix programs and connect to different kinds of servers…

Server Support
Connecting to campus is easy.  MacTerm provides simpler access to the Mac’s own tools for secure shell (SSH) and secure FTP.  Bonjour is supported, for finding local servers  And newer technologies such as IPv6 also work.
Application Support
MacTerm can run any Unix program on your local Mac, and also properly render what it sees from remote programs.  Whether you have to read E-mail with pine (or even print!), do text editing with vim or emacs, or browse the web with lynx, MacTerm is the only tool you need.  It can even be configured to display special characters (using Unicode UTF-8 by default).  Note that MacTerm must be configured as a VT102 terminal to allow printing.
Bitmap and Vector Graphics
MacTerm can render SIXEL bitmap graphics and TEK 4014 and TEK 4105 vector graphics (programs like gnuplot may show charts in this format, among others).  Vector displays render with very high quality, far beyond what a TEK machine would have typically produced.  Vector drawings can be printed, or copied to the Clipboard; applications that support PDF data can use the copied drawing at any size without degradation! [Screenshots]

For Gamers

Few terminals come close to MacTerm’s accuracy when it comes to playing games on a BBS (bulletin-board system)…

24-Bit Color
MacTerm is one of the few emulators in the world that allow terminal-based programs to set up to 8 bits per RGB component (for a total of 24 bits), allowing for a large number and large spectrum of colors on the screen.
CP-437 (DOS Character Set)
Games often assume they are running on DOS, and make use of colors and graphics that most terminals do not display correctly.  But if you set MacTerm’s translation type to “Latin-US (DOS)”, you will see games exactly as they were meant to be seen!  Special graphics are automatically handled by MacTerm directly, without relying on font support.  [Screenshots]
Preferences Profiles
MacTerm has a very useful preferences interface that lets you break down settings into groups.  So even though game servers do not typically have the same requirements as other things (such as Unix tools), you can still handle both with MacTerm very easily.  Gaming usually requires its own Terminal and Translation profiles, so that you can have an 80-by-25 PC display size with color, and DOS graphics.  And with a Session profile, you can have the right Terminal and Translation settings automatically chosen when you connect to your BBS server.

For Programmers

MacTerm is a very powerful tool for programmers using or developing command-line tools.  But the terminal program itself can be customized in very unique ways…

Python 3.x API
The core of MacTerm is a revolutionary scripting framework, powerful enough that key parts of MacTerm are implemented entirely as Python code!  You can customize the main entry point of MacTerm to override or add behaviors in a straightforward way; for example, you can use Python to redefine what a “word” is when you double-click.  The C++ interfaces exposed to Python are known as Quills; for more information, see the Quills page.
As mentioned elsewhere, low-level settings are completely accessible with the defaults command and they are documented in MacTerm Help.
Other Developer Resources
Please start from the Developers page.


MacTerm has a very accessible interface.

Full Keyboard Access
MacTerm natively supports full keyboard access in all user interface elements by default, and will support any future assistive technologies added by Apple.
Speech Contextual Menu Commands
When text is selected in a terminal window, you can open a contextual menu to access a command for speaking that text.  And while speech is in progress, an additional command is available to interrupt the speech.

An Even Better Terminal

Don’t be fooled by its roots — MacTerm is not just for remote access anymore!  It is a complete terminal, and a pretty remarkable one at that…  [Screenshots]

24-Bit Color
MacTerm is one of the few emulators in the world that allow terminal-based programs to set up to 8 bits per RGB component (for a total of 24 bits), allowing for a large number and large spectrum of colors on the screen.
Inline Bitmap Images
MacTerm is one of the few emulators in the world that support the “Sixel” image format from the VT340 terminal, allowing images to appear inline with text on the terminal screen. MacTerm also supports the custom file protocol that is implemented by “iTerm2” (base64-encoded data streams), allowing programs such as "imgcat" to work too.
Unicode Foundation
The terminal is capable of preserving incoming text perfectly: whether you copy it to the Clipboard, capture it to a file, print it, or drag and drop, any special characters will be present.  You can also use the floating command line window to input any kind of character.  (In 4.1.0, there are limits on which Unicode characters can actually be displayed by the terminal; these limitations are being removed in 5.0.)  Finally, Unicode is supported for file names, preference collection names, and macros.
Advanced Emulation
MacTerm supports many common XTerm modes (including 256 colors, background-color-erase and cursor positioning, among others).  It has a completely accurate VT100 and VT102 emulator and a VT220 emulator that supports most common operations. It even has a “dumb” terminal mode.  Combined with features like key palettes (see below), MacTerm can interact very well with a variety of remote machines and terminal applications.
Perfect Box-Drawing
MacTerm does not rely on fonts to correctly display a wide variety of box-drawing symbols that should adhere precisely to neighboring cells; rather, lines are drawn manually with exactly the right placement.  This produces beautiful graphics within the terminal at any size.
“Powerline” Glyph-Drawing
MacTerm does not rely on fonts to correctly display the handful of icons from the Powerline tool (for example, to display branch, line and file information in a text editor).  These include triangles, chevrons, a revision-control branch symbol, a gear icon, an “LN” symbol, and more.
Terminal Search
MacTerm has a very fast, scan-as-you-type, multi-selection Find dialog: all matches in the active terminal window (main screen and scrollback) are immediately found, and you can optionally search every open window at once! The search window remembers your recent searches and saves its state between uses.  [Screenshots]
Optional Tabbed Interface
Glue windows together if you want to, so they move at the same time.  Unlike typical tabbed interfaces, MacTerm keeps each tab in its own window.  So tabs can have different sizes, or their own custom toolbars, or even open sheets that do not block other tabs.  You can drag and drop text between tabs by hovering over them.  Finally, you can unglue any tab as the start of a new workspace of tabs.
Live Resize
While you drag to resize a window, information on the changing attribute (screen size or font size) is displayed. A user preference allows you to specify whether the screen size or font size is the default, and holding down the Control key during a resize will temporarily invert this setting.
Key Equivalents for Window Tweaks
Commands to nudge windows in any direction, and to change the font size and screen dimensions.  Without even leaving the keyboard, you can set up your window just the way you want.  Windows can even be nudged quickly between displays.
A new preference allows you to type into whichever terminal is underneath the mouse, a Unix-like behavior.
Print Screen, Print for selected text, and even terminal-initiated print (such as in pine, when you have configured a VT102 terminal), are all available.  In addition, a print preview is displayed, providing more control over the results.
Random Formats
You can choose to pick the set of colors and fonts for new windows randomly, based on whatever Format Favorites you have defined.  (This is currently a low-level property list setting.)
Use Any Font
You can make a terminal use any font that you want.  MacTerm even offers settings such as Character Width, so you can make unusual fonts look good in a terminal grid by squishing or expanding the space between letters.
In addition to the regular background, terminals can have a border whose color is set separately.
Cool Blinking
When the text or cursor is supposed to blink, a new quadratic-delay pulse effect creates a smooth and beautiful animation.  You can still change the blinking colors to anything you want, and the cursor color can be set independently from the rest of the text.
Cool Mouse Pointer
MacTerm terminals have custom artwork for mouse cursors that is larger and designed to stand out more.  This makes text selection much easier, especially on large displays.
Intelligent Paste
If the Clipboard contains more than one line (often a disastrous thing to dump into a Unix shell), using Paste will display options: for example, joining the lines together before continuing with the Paste.
Intelligent Double-Click
MacTerm double-clicks are context-aware by default, allowing double-clicked “words” to avoid things such as nearby punctuation.  The scheme is also implemented entirely in Python and it can be overridden by installing a replacement event handler; see Developers for more information.
Smart Bell
MacTerm automatically suppresses terminal bells that occur in rapid succession.  So instead of waiting for your terminal to finish beeping 100 times after a typo, you can just get back to work!
Custom Terminal Bell Sounds
You may have any sound in your library (or a system sound) played when a terminal bell event occurs.
Floating Command Line
An always-available text window that supports all standard system key equivalents and editing modes.  Command history is available via a pop-up menu or the down-arrow key.
Floating Key Palette Improvements
Utility windows with certain common keyboard layouts, supporting tabbing and displaying help tags with extra information (such as control key functions).  These make it easy to interact with remote applications that may require features not found on Mac keyboards.  (Note that Macros can also be set up to do similar things.)


Let MacTerm monitor sessions for you, automatically flagging or responding to interesting events!

Activity Notification
For windows that sit idle for long periods, you can have MacTerm tell you when new text appears.
Idle Notification
For windows that are really “noisy”, MacTerm can tell you when they seem to have finally settled down.
For sessions that may automatically terminate after long periods of inactivity, this allows you to send text to them periodically so they stay “alive”.
Support For Notification Center on the Mac
“Session active”, “Session idle”, “Session ended”, “Session failed” and “Script error” notifications are sent through the Notification Center on the Mac.


Macros are short-cuts that allow you to run complex tasks using a simple key combination.  MacTerm macros are extremely powerful…  [Screenshots]

Macros can perform many types of tasks:
  • Sending text to a session (either “verbatim” or by first substituting current values for special symbols).
  • Opening a URL in any application (like a bookmark).
  • Running a command line in a new window.
  • Selecting the next terminal window whose title matches the macro’s key phrase.
  • Initiating local text searches.
Many Keyboard Equivalents
Macros can be activated by any character key, or by one of over two dozen others, such as arrow keys, page keys, and function keys.  Plus, you can require any combination of modifier keys (command, control, option, shift).
Escape Sequences
MacTerm supports high ASCII codes with “\1nn” sequences, in addition to “\0nn” and other sequences.  Short-cuts exist for common values, such as “\e” for Escape and ”\n” for a new-line.  A number of special sequences exist, like “\s” to represent currently-selected text, among several others that are documented in MacTerm Help.
Every macro can have a custom name, to see at a glance what it does.
Macros in the Menu Bar
Each macro’s custom name and key equivalent is displayed in the Macros menu, and macros can be invoked by selecting commands from that menu.  You can also use this menu for fast switching, to activate different macro sets.
Macros in Contextual Menus
If a macro is configured to send text “with substitutions” and it makes use of one of the special symbols that depend on currently-selected text, those macros will automatically be available in terminal window contextual menus whenever text is selected.

Powerful Preferences System

MacTerm preferences are extensive and you will find a surprising number of things that you can change.  Some features only have low-level preferences available but MacTerm Help describes them all in detail.

General Settings
Customize the cursor shape, notifications, and more.  See An Even Better Terminal for more examples of what terminals can do.
Macro Favorites
See Macros for more.
Workspace Favorites
Spawn multiple windows at once!  See Session Management for more.
Session Favorites
Specify the local command or remote server to use, and related settings such as the rate of data transfers and the meaning of a new-line.
Terminal Favorites
Set screen dimensions, emulation type, and even tweak emulator features, independently from other settings.
Format Favorites
Fonts, colors and related settings are completely separate from the rest of a session profile, which is a very nice MacTerm feature!  It allows you to set the look of windows once, even if you want to reuse that look across different kinds of sessions.
Translation Favorites
Translation tables determine how sessions interpret text; the default assumption is UTF-8 (Unicode) but you might change this when interacting with game servers or other PCs.
Full Screen
Tweak full-screen mode; for example, by enabling access controls and hiding the scroll bar.
Live Collection Editing
When you select Workspaces, Sessions, Macros, Translations, Terminals or Formats, a list appears with all of your saved collections.  Just click a collection and edit it live in the Preferences window!
Mac Preferences Format
No more custom file formats!  MacTerm uses the same type of preferences database as other Mac applications, and automatically runs a converter application to import settings from older versions.  With this change, you can now use the command-line defaults program to access MacTerm settings.  All low-level settings are documented in MacTerm Help.
Some iTerm2 Import Capability
MacTerm knows how to import the ".itermcolors" file format, allowing you to take advantage of the large number of iTerm-compatible color schemes on the web.

Session Management

It is easy to have multiple windows open.

This type of preferences collection allows you to spawn multiple windows at the same time, directly from the File menu.  You can specify exactly where the windows appear, and which Session collection they use (each of which is associated with a Terminal, Translation and Format collection).  In addition, the Default workspace now determines what happens at startup time, so you can completely customize the startup sequence.  A Workspace can be told to automatically enter Full Screen when it begins.
Session Info
A single window that allows you to manage every session.  Customize completely: toolbar contents, column layout, sort order, window size, position and visibility are all remembered.  At a glance, see the running status, window title, command line, device name, and creation time for every session.  Double-click an item to activate its window.  Click on a window title to rename that window.
Session Duplication
The Duplicate Session command automatically opens a new session that uses the same command as the active session.
Session Restart
The Restart Session command is now available if you set the preference to leave windows open after they exit.  This allows you to instantly rerun the original command in the same window, saving all of your scrollback history.  There is also a command to Force Quit a session without starting it again, keeping the window open.