C-Kermit 7.0 Communications Software for UNIX, VMS, VOS, AOS/VS, QNX, Plan 9, BeOS, OS-9, Amiga, . . .

Version: 7.0.197
Date: 8 February 2000

This page last updated: 15 April 2000

NEW! Now on CDROM.

C-Kermit is a combined serial and network communication software package offering a consistent, medium-independent, cross-platform approach to connection establishment, terminal sessions, file transfer, character-set translation, numeric and alphanumeric paging, and automation of communication tasks. C-Kermit includes:

And lots more. C-Kermit is:

C-Kermit 7.0 runs on:

In UNIX, C-Kermit can be thought of as a user-friendly and powerful alternative to cu, tip, uucp, ftp, ftpd, telnet, ktelnet, rlogin, expect, wget, sendpage, bc, maybe even your shell and/or Perl; a single package for both network and serial communications, offering automation, helpfulness, and language features not found in most of the other packages, and with most of the same features available on all its non-UNIX platforms, as well as in Kermit 95 on Windows 9x/NT/2000 and OS/2.



C-Kermit 7.0 has a new license, CLICK HERE to read it. Summary:

  1. Personal or Internal Use: C-Kermit is freely downloadable by individuals for their own use and by organizations (companies, universities, government agencies, hospitals, etc) for internal use. In this case, we ask (but do not require) you to also purchase the user manual to (a) let you get the most out of the software; (b) reduce the load on our help desk; and (c) contribute some revenue to the nonprofit and entirely self-supporting Kermit Project.

  2. Free Unix Distributions: C-Kermit may be included in "free Unix" distributions such as GNU/Linux, FreeBSD, NetBSD, and OpenBSD. See the license for details.

  3. Redistribution: Redistribution of C-Kermit except as in (2) must be licensed. CLICK HERE for terms and conditions.



The user manual for C-Kermit 7.0 is the book Using C-Kermit, Second Edition, which is current with C-Kermit 6.0. Features new to version 7.0 are documented in the online Supplement to Using C-Kermit, Second Edition, which should serve as a supplement to the book until the Third Edition is ready later in 2000.

If you don't have the manual, please order it. It explains how to use C-Kermit, how to make connections, how to troubleshoot connection and file-transfer problems, how to handle character-set translation, how to write script programs, and lots more. It lets you get the most out of your software, it reduces the load on our help desk, and sales of the manual are the primary source of funding for continuted C-Kermit development and support.

Other resources:



There are several ways to get C-Kermit 7.0:

  1. You can download it from the Kermit website in source-code and/or binary form. Install packages are also available for selected platforms. CLICK HERE to go to the download section.

  2. It comes with certain operating systems, such as FreeBSD 4.0 (on first CD) and Red Hat Linux 6.2 (on Power Tools CD) as an optional install package. It will also be included with forthcoming releases of some of the popular Linux distributions such as Slackware, Caldera, SuSE, TurboLinux, and Mandrake. C-Kermit 6.0 is preinstalled on HP-UX 10.00 and later.

  3. You can order it on CDROM. The C-Kermit 7.0 CDROM includes all C-Kermit 7.0 and G-Kermit 1.00 sources and binaries, the C-Kermit 7.0 Update Notes and other auxilliary documentation (everything listed on this web page that was available as of mid-March 2000). The CDROM is in ISO 9660 (DOS) format, and should be readable on any computer that has a CDROM drive. CLICK HERE for the C-Kermit 7.0 CDROM order form.

  4. The C-Kermit 7.0 CDROM (previous item) is included with Kermit 95 1.1.20 and later, in the retail shrinkwrapped package.

  5. If you wish to redistribute C-Kermit to customers or clients or bundle it with a product, CLICK HERE for terms and conditions.

If you already have the software but need the manual, CLICK HERE to order it.

C-Kermit is supported as described in the Kermit Project Technical Support page. For companies that require a more formal commitment, a support contract is available; CLICK HERE for details.



Case studies and tutorials are posted from time to time to the newsgroup news:comp.protocols.kermit.misc to showcase some of the new features of C-Kermit 7.0, with each posting also available on the website. Here's the index:

  1. Cleaning Out Beta-Test Binaries (file management)
  2. Kerbang Scripts (script construction and argument passing)
  3. Autodownload (file transfer)
  4. Automatic Text/Binary Mode Switching (file transfer)
  5. Directory Recursion (file transfer and management)
  6. Streaming (file transfer)
  7. Internet Kermit Service (file transfer and management)
  8. Unicode (character sets)
  9. Printing (file transfer and management)
  10. Atomic File Movement (file transfer and management)
  11. C-Kermit Meets SSH (networking and security)
  12. C-Kermit's Telnet Client (networking)
  13. PPP Dialing (networking)
  14. Character Sets (file transfer)
  15. File Selection (file transfer and management)
  16. Bootstrapping (installation)
  17. Fun with Dates and Times (script programming)
  18. File Timestamps and Permissions (file transfer)
  19. An Easy Way to Get Files from IKSD (file transfer)
  20. (Check back later for more as we add new ones)



Version 7.0.197 of 8 February 2000 is a minor update to version 7.0.196 of 1 January 2000 to make C-Kermit 7.0 build successfully on certain platforms where version 7.0.196 did not. There are no functional changes whatsoever. C-Kermit 7.0.197 programs are functionally identical with 7.0.196.

Features that show up as links are described in greater detail below. The others (and many more) are described in the text file, ckermit2.txt, also available on the Web as ckermit2.html.


  • Command modifiers (switches).
  • Patterns for filename and string matching.
  • Command-line personalities (e.g. acts like telnet if called telnet).
  • Autoup/download at the command prompt
  • New built-in DIRECTORY command with numerous options.
  • New SET OPTIONS command to customize directory-listing preferences.
  • New PURGE command to remove (excess or all) backup files (UNIX).
  • Consistent file-selection switches for SEND, DIR, DELETE, PURGE, etc.
  • New notation for relative dates (+3days, -6months, yesterday, tomorrow) now accepted in any command where a date can be given, e.g. "delete /before:-5days *.txt" (or SEND, or DIR, etc).
  • Editor and web browser interfaces.
  • Base-64 file conversion
  • New MANUAL command to access online man page, help topic, or manual.
  • Updated installation instructions, hints & tips, etc, for each platform.
  • Improved 'install' target in UNIX makefile.

Making and Using Connections
  • External communication program interface
  • PPP dialing in UNIX
  • Now you can give more than one number to the DIAL command
  • Support for IBM AIXLink/X.25
  • New support for 8 data bits + parity on serial connections (*).
  • New ability to select number of stop bits on serial connections (*).
  • Test dial procedures without actually dialing.
  • Dialing improvements (10-digit dialing, blind dialing, PBXs, etc)
  • SET DIAL MACRO for last-minute phone number manipulations (sample script)
  • New all-purpose "generic-high-speed" modem type.
  • SET DIAL METHOD AUTO defaults tone or pulse by country code.
  • Better support for dialing without flow control.
  • Automatic redial no longer unnecessarily re-initializes the modem.
  • SET CLOSE-ON-DISCONNECT { ON, OFF } for serial connections.
  • Transparent (host-controlled) printing in CONNECT mode.
  • Improved reaction to carrier loss in VMS and UNIX.
  • Higher serial speeds in VMS, IRIX, SCO, BSDI, Linux, . . .
  • Hardware flow control for IRIX
  • Streamlining and increased bulletproofing of Kermit/Modem dialog.
  • Major improvements in UNIX UUCP lockfile handling for Linux, SCO, AIX, *BSD, . . .
    (*) K95 and POSIX or SVR4-based UNIX versions only.

New Built-In Modem Types
  • "Generic High-Speed" modem with AT command set
  • AT&T Keepintouch Card Modem.
  • AT&T Secure Data STU III 1900 and 1910
  • Atlas Newcom ixfC 33.6
  • Best Data Fax Modem
  • Compaq Data+Fax Modem
  • Diamond SupraSonic 288V+
  • Fujitsu Fax/Modem Adapter
  • ITU-T (CCITT) V.250 (V.25ter) Command Set
  • Megahertz AT&T V.34
  • Megahertz X-Jack
  • Multitech MT5634ZPX
  • MicroLink 14.4, 28.8, 33.6, 56K
  • MicroLink V.250
  • Motorola Codex 326X Series
  • Motorola Montana
  • QuickComm Spirit II
  • Rockwell V.90
  • Rolm data phone with AT command set
  • Supra Express V.90

File Transfer and Management

  • New keepalive during long-running REMOTE HOST commands prevents timeouts.
  • Longer REMOTE commands allowed.
  • Server CD messages a`la FTP, local too.
  • Additional GET options and combinations.
  • R-command shortcuts for REMOTE commands (e.g. RCD for REMOTE CD).
  • Numerous new file management commands and features

Character Sets
  • Automatic transfer/file character-set matching in file transfer.
  • Unicode / ISO-10646 Universal Character Set
  • Full conversion between Japanese character sets and Unicode
  • KOI8-R (Russian) and KOI8-U (Ukrainian) character sets
  • ISO 8859-7 Latin/Greek Alphabet (= ELOT 928)
  • CP869 Greek code page (8 bit)
  • ELOT 927 Greek (7 bit)
  • ISO 8859-15 Latin Alphabet 9 (includes Euro and OE)
  • Bulgaria-PC (code page)
  • Mazovia (Polish PC code page)
  • CP855 (Cyrillic PC code page)
  • CP858 (West European PC code page, includes Euro)
  • CP1250, 1251, 1252 (Windows code pages, include Euro)

  • New syslogging option for UNIX
  • New connection log
  • New brief transaction-log format option
  • New FTPD-like transaction-log format option
  • Time-critical debugging with millisecond timestamps.
  • Unbuffered transaction log (e.g. for UNIX "tail -f")

Script Programming
  • A new general-purpose file i/o package added supporting multiple files open at once; character, line, and block i/o; sequential and random access; read, write, update, and append modes; absolute and relative seeks by line or byte, etc. (CLICK HERE for a sample script)
  • Floating-point numbers and arithmetic (CLICK HERE for a sample script)
  • Associative arrays (CLICK HERE for a sample script)
  • Ability pass arguments to command files as well as macros
  • Pattern matching in the [M]INPUT command
  • Ability to pass more than ten arguments to a macro or command file
  • Expanded command buffer length to allow bigger macros, variables, etc.
  • Maximum number of macros increased.
  • New support for compound Boolean expressions.
  • "kerbang" scripts now take arguments from the command line.
  • New built-in Array operations: COPY, RESIZE, CLEAR, SET, SORT, . . .
  • SEND an array as if it were a file
  • IF and XIF merged (so ugly XIF is no longer needed).
  • Loading of arrays from DIRECTORY command file lists.
  • New functions to load arrays with file or directory lists.
  • New SCREEN command for screen clearing & cursor positioning.
  • Date conversion functions (Julian dates, etc)
  • New and improved built-in variables and functions
  • Built-in help for functions
  • Function and variable diagnostics
  • Timed ASK commands
  • New IF conditions
  • Autodownload during INPUT command execution
  • New OUTPUT command options
  • Automatic arrays
  • Array initializers
  • Assignment operators
  • New TRACE and SHOW STACK commands for debugging scripts.
  • Visit the C-Kermit script library for samples

Bug fixes
  • Assorted problems with serial ports in UNIX and VMS
  • Batch log echoing in VMS
  • Problems with UNIX (UUCP) lockfiles, especially in HP-UX and AIX
  • Broken CD command in VMS 6.2 and later on Alpha
  • Failure to return proper exit status code under some conditions
  • Failure to report exit status of external programs or commands
  • Incorrect transfer of various oddball file formats in VMS
  • Assorted problems with fullscreen file-transfer display
  • Macro parameter substitution by empty values did not work
  • Overzealous exit warnings
  • Lots more

New platforms
  • IRIX 6.2, 6.3, 6.4, and 6.5
  • AIX 4.2, 4.3 (including X.25 support)
  • BeOS 4.5
  • DG/UX 5.4R4.11
  • Solaris 2.6 (including X.25 support)
  • Solaris 7 and 8
  • SCO OpenServer R5.0.0 through 5.0.5
  • SCO Unixware 7
  • HP-UX 10.01, 10.10, 10.20, 10.30, 11.00
  • Trusted HP-UX
  • Mac OS/X
  • OPENSTEP 4.2
  • Red Hat Linux 5.1 through 6.1
  • Slackware Linux 3.5 through 7.0
  • SuSE Linux 6.0
  • MkLinux
  • LinuxPPC
  • Linux/390 on IBM mainframes
  • New OpenBSD/NetBSD/FreeBSD versions
  • Siemens Nixdorf Reliant UNIX 5.43 and 5.44
  • Sequent DYNIX/ptx 4.4
  • Stratus VOS with TCP/IP and X.25 support
  • VMS 7.2

This is just a brief list; the complete story runs to more than 200 printed pages, and can be found in the ckermit2.txt file, which is a supplement to Using C-Kermit, 2nd Edition. Also available on the Web as ckermit2.html.

For even more detail, you can read the day-by-day edit history in the ckc197.txt file, as well as all the Alpha and Beta test announcements in the ck61*.txt and ck70*.txt files in the kermit/f/ directory.

The following sections present an overview of several of C-Kermit 7.0's new features. After these come links to the software itself.



In UNIX and Windows 9x/NT, C-Kermit 7.0 can be set up as an Internet service under inetd, similar to an FTP server, using a TCP port and Telnet options assigned for this purpose by the Internet Assigned Number Authority (IANA) and described in Internet Drafts currently under review:


The Internet Kermit Service Daemon (IKSD) can be accessed in client/server mode from any Kermit client (similar to how FTP works), but can also be accessed directly at its prompt, which opens up a whole new world of automation possibilities. Other advantages over FTP include:

(*) Some FTP servers also support this. Kerberos and SRP available only in the USA and Canada.

Note that timestamps, permissions, text/binary mode switching, and directory tree transfer are not restricted to UNIX-to-UNIX connections, but also work with Kermit clients on other platforms including Windows 95/98/NT, OS/2, and VMS (as appropriate -- e.g. permissions don't apply to Windows).

The Kermit Project's IKSD is available for public access at:

  kermit.columbia.edu 1649

Anonymous logins are welcome: give a user ID of "anonymous" or "ftp", and supply your email address as the password. You may log in interactively on a Telnet connection:

  telnet kermit.columbia.edu 1649
  Username: anonymous
  Password: abc@xyz.com

Or you can make a client/server connection as follows:

  set host kermit.columbia.edu 1649
  remote login anonymous abc@xyz.com

When you use C-Kermit 7.0 itself as the client, you will have a new "tight coupling" between client and server, in which each partner tracks the "mode" of the other (prompt, connect, server, etc). When you make an anonymous connection to this server, you will find yourself in the /pub/ftp tree, and can access any directories or files you could access with anonymous FTP to same server.




The UNIX version of C-Kermit 7.0 can now be used through any other communications program whose user interface goes through standard input and standard output. In addition, most of the UNIX versions can also control external programs via pseudoterminals, like 'expect' can.

This allows you (for example) to use all the scripting and file transfer features of C-Kermit through clients of various services that C-Kermit might not support directly like ftp, an ssh client, tn3270 (for connecting to IBM mainframes), tn5250 (for AS/400 connections), various SOCKS Telnet clients, a cu or tip program that has access to a dialout device that Kermit does not, rlogin connections without being root. The commands are PIPE (for standard i/o redirection) and PTY (for pseudoterminals). Examples:

  pipe cu -l tty04
  pipe rlogin xyzcorp.com
  pipe srp-telnet xenon.stanford.edu
  pty ssh abccorp.com
  pty tn3270 cics.bigiron.com
  pty ftp hq.mycompany.com

PIPE is more portable but won't work with applications that don't use standard i/o, and it bypasses the terminal driver, which can result in CR/LF/CRLF confusion, inappropriate keyboard handing or echoing, etc. PTY is less widely available, but it allows you to control any text-mode application at all, and it does so through the terminal driver, thus bypassing the problems with PIPE.

In fact, the PTY interface lets you script interactions with any local text-mode program: ftp, your shell, lpc, Lynx, IRC, various text editors, and so on. This feature is available in FreeBSD, NetBSD, OpenBSD, BSDI, Mac OS X, AIX 4.1 and later, DG/UX 5.4R4.11, Digital UNIX 3.2 and 4.0, HP-UX 9.00 and later, IRIX 6.0 and later, Linux, NeXTSTEP 3.x, QNX 4.25, SCO OSR5.0.5, SCO Unixware 7, SINIX 5.42, Solaris 2.x and 7, and SunOS 4.1.3.

[ Top ] [ Case Study ] [ Download ]


UNIX C-Kermit 7.0 can be built with support for MIT's Kerberos IV or Kerberos V, Stanford University's Secure Remote Password (SRP) protocol, or SSL/TLS security. These protocols allow for mutually authenticated Telnet connections without sending passwords over the network, and optionally also for fully encrypted sessions.

A secure client needs a secure server on the other end. For a survey of secure Telnet servers for UNIX, CLICK HERE.

The encryption modules are not part of the regular C-Kermit package due to USA export law. If you are in the USA or Canada and you would like to download the secure version of C-Kermit (source code only) CLICK HERE or send us e-mail.

SSL/TLS is the IETF-approved form of public-key security, an alternative to SSH that is free of patent restrictions and that addresses the key-management and revocation issues that SSH presents. C-Kermit 7.0 supports the OpenSSL implementation of SSL/TLS, which allows pure SSL or TLS based connections with Tim Hudson's Telnet AUTH SSL and the IETF's Telnet START_TLS protocols, including verification of certificate chains for both client and server, and support for certificate revocation lists. A Unix telnet server that supports Telnet START_TLS is available from:


SSL/TLS connections may also be used to connect to Secure Web Servers for use with the new HTTP commands:

  SET HOST host https /SSL
  SET HOST host https /TLS

or between two C-Kermits to establish a private connection:

  SET HOST * port /SSL             <--- Server
  SET HOST host port /SSL          <--- Client

Why not SSH?

There are two incompatible SSH protocols, v1 and v2. We don't support SSH version 1.x for a combination of legal and security reasons:

SSH version 2.x is not supported because:

BUT... just because C-Kermit does not support SSH intrinsically doesn't mean you can't use C-Kermit to make SSH connections. With C-Kermit 7.0's new PTY (pseudoterminal) interface (previous section), it can use your SSH client as its communication engine and still afford you its scripting, file-transfer, and character-set translation features on the SSH connection.

[Top][Download][Documentation of security features]


A new suite of HTTP commands lets you manage Web servers with C-Kermit using HTTP 1.0 protocol. You can get and put files, obtain information about them, and so on, even when you could not ordinarily do so with FTP or Kermit (for example, because no FTP or IKSD server is installed on the Web server), and when you have the SSL/TLS option installed, you can do so securely.



C-Kermit 7.0 includes a new Telnet protocol engine incorporating:


[ Top ] [ Case Study ] [ Download ]


The new EXEC command (Unix only) lets Kermit overlay itself in memory with an external program, starting this program with command-line options of your choice. EXEC /REDIRECT takes this one step further, redirecting the external program's standard i/o to Kermit's communications connection. You can use this feature to turn Kermit into your PPP dialer, which gives you all the advantages of C-Kermit's knowledge of modems, phone numbers, area and country codes, etc, and its dialing-directory and redialing capabilities. Example:

  ask \%u { User: }
  askq \%p { Password: }
  set modem type usr          ; Specify the kind of modem you have
  set line /dev/ttyS1         ; Specify the device it's connected to
  set speed 57600             ; and the speed
  set flow rts/cts            ; and flow control.
  set dial retries 100        ; Try the dial sequence up to 100 times.
  dial {{9-212-555-1212}{9-212-555-1213}{9-212-555-1214}{9-212-555-1215}}
  if fail exit 1
  for \%i 1 16 1 {            ; Try up to 16 times to get login prompt
      input 10 Login:         ; Wait 10 sec for it to appear
      if success break        ; Got it - proceed...
      output \13              ; Send a carriage return and try again
  if ( > \%i 16 ) stop 1 NO LOGIN PROMPT
  lineout \%u                 ; Send user ID
  input 30 assword:           ; Wait for Password prompt
  if fail stop 1 NO PASSWORD PROMPT
  lineout \%p                 ; Send the password.
  exec /redirect pppd         ; Replace ourselves with pppd.
Notice the advantages over the well-known PPP "chat script":

[ Top ] [ Case Study ] [ Download ]


C-Kermit 7.0 allows for optional command modifiers called switches.

A switch is a keyword beginning with a slash (/). Some switches accept values as operands. Switches affect only the command with which they are included; thus their affect is local, not global like SET commands. Here are some examples:

  send oofa.txt                              ; No switches
  send /binary oofa.zip                      ; A switch without a value
  send /protocol:zmodem oofa.zip             ; A switch with a value
  send /text /delete /as-name:x.x oofa.txt   ; Several switches
Switches bring a new level of flexibility to Kermit's command language. For example, they can be used for file selection in file-transfer commands:
  send /after:8-Feb-1998_10:28:01 /larger-than:10000 /except:*.log *.*
or for disposition of the source file after transfer:
  send /binary /delete *.zip
or for mailing or printing:
  send /mail /subject:{Here is the recipe you wanted} lasagna.txt
  send /print:{-PLaserWriter2 -#3} lasagna.ps
or whether to pass the file through a filter, or to descend directories recursively, or to recover an interrupted transfer from the point of failure, and so on, in any sensible combination.

Switches have been added not only to the SEND command, but also to most other file-transfer commands, as well as to the CONNECT, SET LINE, SET HOST, DIRECTORY, DELETE, PURGE, TYPE, RENAME, COPY, STATISTICS, and others. Certain commands including DIRECTORY, DELETE, PURGE, and TYPE let you set default switches to match your preferences so you don't have to type them each time.



A pattern is a string that includes special notation for matching classes or sequences of characters. C-Kermit 7.0 / K95 1.1.18 supports patterns in several places:

Patterns are also called wildcards, especially when used for filename matching, as they are in the UNIX version and in K-95 1.1.18. C-Kermit 7.0 supports the following notation:

Matches any sequence of zero or more characters. For example: "ck*.c" matches all files whose names start with "ck" and end with ".c", including "ck.c".

Matches any single character. For example, "ck?.c" matches all files whose names are exactly 5 characters long and start with "ck" and end with ".c". When typing commands at the prompt, you must precede any question mark to be used for matching by a backslash (\) to override the normal function of question mark, which is providing menus and file lists.

Square brackets enclosing a list of characters matches any single character in the list. Example: ckuusr.[ch] matches ckuusr.c and ckuusr.h.

Square brackets enclosing a range of characters; the hyphen separates the low and high elements of the range. For example, [a-z] matches any character from a to z.

Braces enclose a list of strings to be matched. For example: ck{ufio,vcon,cmai}.c matches ckufio.c, ckvcon.c, or ckcmai.c. The strings may themselves contain metacharacters, bracket lists, or indeed, other lists of strings.



C-Kermit 7.0 and its derivatives (including Kermit 95 1.1.18 and later) go to extraordinary lengths to transfer every file in the most appropriate mode, text or binary, automatically. Only in a few rare cases will the automatic methods fail to determine the appropriate mode for a particular file. When they do, however, it is almost always better to use binary mode, since this leaves the file intact and unchanged, rather than changing its characters or record format, allows for recovery in case of broken transmissions, and in any case is more appropriate now that the majority of files being transferred are compressed tar archives, graphics images, and so forth. For this reason, the default file type (that is, the one that is used in the absence of any other information or instructions) in C-Kermit 7.0 has been changed from text to binary.

Of course you can change the default back to text simply by giving a SET FILE TYPE TEXT command (or putting it in your C-Kermit customization file) and you can also override the default and/or the automatic methods on a per-transfer basis (by using the new /BINARY and /TEXT switches on the SEND and GET commands) or even a per-file basis (by creating a SEND-LIST).

Also with this change comes the new SET FILE INCOMPLETE AUTO command, also the new default, which causes incompletely received files to be kept for binary-mode transfers and discarded for text-mode ones, since the main reason to keep incompletely received files is to allow recovery, which is possible only for binary-mode transfers.



C-Kermit 7.0 (and Kermit 95 1.1.16 and later) automatically choose the appropriate transfer mode, text or binary, for each file they send by following a rather complex procedure, which includes end-to-end "like system" recognition, whether character-set translation has been requested, and other factors. When the two ends recognize each other as "alike" (e.g. both are some form of UNIX) and character-set translation has not been requested, all files are transferred in binary mode. This improves performance, removes any possibility of "corruption" by inappropriate character-set or record-format conversions, and allows for recovery of interrupted transfers.

When the two systems do not recognize each other as alike, or character-set translation has been requested, the file sender chooses text and binary mode on a per-file basis by matching each file's name with a list of patterns. For example, if a file's name matches the pattern "*.txt" it is sent in text mode, whereas if it matches "*.zip" it is sent in binary mode. A comprehensive list of patterns is preconfigured, and commands are provided for you to edit the list, as well as to disable or re-enable this feature.

Filename pattern matching allows a file group to be sent between unlike systems (e.g. from UNIX to VMS) without having to separate the text and binary files, with full record-format and character-set conversion performed on text files, and binary files transferred without conversion, automatically. (NOTE: The filename pattern-matching feature is not used by VMS C-Kermit, which has a different method of accomplishing the same thing.)

[ Top ] [ Case Study ] [ Download ]


The UNIX and VMS versions of C-Kermit 7.0 now include each file's permissions (protection code) among the transmitted file attributes. This is useful mainly in UNIX to avoid loss of "execute" permission for programs or shell scripts during transfer. However, the mechanism also works across platforms so, for example, a UNIX file with execute permission will also have execute permission after being transferred to VMS (and vice-versa).

[Top][Case Study][Download]


C-Kermit 7.0, when used in conjunction with Kermit 95 1.1.16 or later, MS-DOS Kermit 3.16 or later, or C-Kermit 7.0 itself, can perform "recursive" file transfers, in which all the (selected) files in the given directory are sent, plus all the files in all the subdirectories of the given directory, and all the files in their subdirectories, and so on.

Such transfers can take place not only between computers with similar file systems (such as Solaris and AIX), but also between dissimilar systems (like Windows 95 and HP-UX or VMS). Directories are created as needed during the transfer process.

Furthermore, any mixture of text and binary files can be accommodated via filename-pattern matching, as described above. This allows, for the first time anywhere (as far as we know) transfer of entire directory trees (entire file systems if you start at the root) between dissimilar computers in a single operation without the use of intermediate archives such as tar or ZIP.

[ Top ] [ Case Study ] [ Download ]


In some versions of C-Kermit 7.0 (notably the UNIX version) it is now possible to pass outbound or incoming files through a "filter" as part of the transfer process. Similarly, it is now possible to send the output of an arbitrary command or program, or to receive into the standard input of a command or program. For example, you may now tell C-Kermit to send the output of a pipeline composed of tar and gzip, and another C-Kermit on the other end to receive to a pipeline composed of gunzip and tar. Or in case you have a text file written in a character set that C-Kermit doesn't know about, you can pass it through a translation filter. You can even use this feature to accomplish encrypted file transfers on connections that are not already encrypted otherwise.



File-transfer performance has been improved in several ways:

Streaming protocol may be used in conjunction with Kermit 95 1.1.16, MS-DOS Kermit 3.16, or C-Kermit 7.0 itself.

When full unprefixing and streaming are used with a large packet length, C-Kermit's file-transfer throughput is comparable with FTP; here are some typical text and binary file transfers between two UNIX workstations with the new C-Kermit over a local 10Mbps Ethernet (note the new brief file-transfer display option, the automatic switching between binary and text mode, and the new more-accurate statistics):

 SENDING wart     (binary)   (23985 bytes): OK (0.040 sec, 599625 cps)
 SENDING wermit   (binary) (1323517 bytes): OK (4.490 sec, 294769 cps)
 SENDING ckcnet.c (text)    (269168 bytes): OK (0.790 sec, 340718 cps)
 SENDING ckwart.o (binary)   (25332 bytes): OK (0.040 sec, 633299 cps)
 SENDING ckufio.c (text)    (112341 bytes): OK (0.290 sec, 387382 cps)
 SENDING ckuusr.o (binary)  (132340 bytes): OK (0.180 sec, 735222 cps)
 SENDING ckuus2.o (binary)  (183168 bytes): OK (0.300 sec, 610559 cps)
 SENDING ckuus3.o (binary)  (154492 bytes): OK (0.200 sec, 772459 cps)
 SENDING ckuus6.o (binary)  (133128 bytes): OK (0.180 sec, 739599 cps)

C-Kermit 7.0 also responds much more quickly to connection loss and external interruptions during file transfer.



C-Kermit has included performance features like long packets for more over a decade, with others (sliding windows, control-character unprefixing, and now streaming) added over the years. Nevertheless, the popular perception is still that "Kermit is slow". This is due in part to the many third-party implementations that, indeed, are slow, as well to the persistence of fifteen-year-old Kermit programs from the Kermit project itself.

Of course modern Kermit protocol and software (since about 1990) can go as fast as you care to make it go, but its default tuning has always been for robustness rather than speed. It turns out, unfortunately, that first impressions matter most. If it's slow out of the box, few will make the effort to learn how to make it go fast, or to understand why it is delivered with slow tuning.

Therefore C-Kermit 7.0 is delivered with fast tuning:

Let's hope the new default tuning helps to get the word out.



Kermit software, a pioneer in international text transfer since the 1980s, now adds Unicode (ISO 10646) -- the Universal Character Set (UCS) -- to its already large repertoire of character sets. Unlike traditional character sets, the UCS encodes all of the world's major scripts, and therefore allows true multilingual text.

Kermit protocol and software has included character-set translation capabilities for more than a decade, allowing conversion of text among the many "traditional" standard and proprietary character sets like the ISO 8859 Latin Alphabets, PC code pages, IBM mainframe EBCDIC code pages, ISO 646 national character sets, JIS, DEC, HP, DG, Macintosh, NeXT, etc.

With growing acceptance of Unicode, there is increasing need for importation of text in "traditional" encodings into Unicode platforms and applications, and also for export of Unicode text to non-Unicode environments. C-Kermit now offers these services over a wide range of platforms and communication methods.

Obviously when translating from Unicode to a smaller set, Unicode characters that are not in the smaller set are lost.

[ Top] [ Case Study ]


You can download C-Kermit source and/or binaries in tar, zip, or other archive format or as separate files. Install packages for selected platforms are also available. You can also get everything at once on CDROM; CLICK HERE to order.


For maximum convenience, install packages are available for the following platforms (C-Kermit 7.0 except where noted):