In general, my migration from Linux to OS X has been pretty trouble-free. However, I was rather surprised to be unable to find any good free serial terminal emulators available. Sure, there are text-based ones like Minicom, but none with the Aqua interface. Since this is a very useful application for my projects, I wrote my own. I use this to test communication with test equipment and microcontrollers.

QuickTerm is a basic ASCII terminal emulator. It can use any attached serial port, whether built-in or installed using an adapter such as a Keyspan USB-to-serial adapter. It allows full setting of serial port parameters, with or without handshaking. The name QuickTerm alludes to the fact that I developed it quickly, forsaking features I don't need to get a decent serial terminal emulator up and running.

Version 1.01

I've rebuilt QuickTerm as a universal binary, and fixed a minor bug in the NIB file which prevented it from being compatible with OS X v10.2. I've also added 110 baud as an option in the Port Settings dialog at a user's request on VersionTracker. No other changes were made.


QuickTerm should work on Mac OS X v10.2 or later, and is now a universal binary so it runs natively on both PowerPC and Intel Macs. I have only tested it on OS X v10.4 on PowerPC, since this is what I have. It is a Cocoa application.

QuickTerm_v1.01.dmg (144kB) v1.01

Here is the previous version, which requires OS X v10.3 or later and is PPC only:

QuickTerm_v1.0.dmg (132kB) v1.0

To install, mount the disk image and drag the QuickTerm application to the desired folder.

Supported Hardware

Any serial port supported by OS X can be used by QuickTerm. It detects available ports when entering the Port Settings panel. Note that not all port settings are necessarily valid for all hardware. For example, the built-in modem in my PowerBook doesn't like 110 or 150 baud, but my Keyspan USB-to-serial adapter does.


If necessary, connect your serial port hardware. Start QuickTerm, and detect the available ports and establish the communication settings by clicking on the Port settings... button. Once the port has been selected, establish connection by clicking on the Connect button. Serial port parameters cannot be changed while the connection is active.

Limitations and Bugs

QuickTerm does not understand any control codes, and will not emulate an ANSI or VT100 terminal. It does accept control code data as valid input, but does not display or otherwise act on unprintable characters. I looked into implementing this, but I don't think it can be done easily without replacing the NSTextView that makes up the main window with a completely new control class. NSTextView (and its ancestor NSText) seem to be too focused on document-type data to be well adapted to this screen-based application.

QuickTerm only supports a single terminal window, so only one session can be active at a time.

No file transfer protocols are supported, although you could do a text transfer by copying from and pasting to the terminal window.

Preferences are not implemented. If you look at the source code, you'll see that there is some commented-out code for adjusting the background and font colors. I didn't finish the implementation.

QuickTerm will not disconnect if a data write is pending on the serial port when hardware flow control is enabled. It will disconnect after the write is done. If it never finishes, the app will hang and have to be force quit.

Source Code

Of course, you are welcome to the source code:

QuickTerm Xcode 2.2 project (1.9MB)


This application is provided as-is, with no warranty or support. Feel free to make use of it in any way.
Last modified: March 25, 2006