Icon The Kermit Project   |   Now hosted by Panix.com
New York City USA   •   kermit@kermitproject.org
since 1981
The first new Kermit release for Windows in TWENTY YEARS...

  CKW: C-Kermit 10.0 for Microsoft Windows

     BETA TEST:
FIFTH Beta test released 3 July 2023, this page is being updated to reflect the changes.

Download   Install   Run   Export   Coexist   Documentation   Problems   Screenshots

Also see:    CKW How-To   (Ini files, SSH setup, ...)     See daily progress notes 

Frank da Cruz
fdc@kermitproject.org
ckw@kermitproject.org ← questions, problems, reports
Page created: 14 December 2022
CKW Beta date:
Last page update: Tue Jul 4 12:02:23 2023 New York time

This page assumes a degree of familiarity with Kermit software; if you need an introduction, look HERE.

The new Open Source release of the Program Formerly Known as Kermit 95 — K95 for short — and which is now called C-Kermit for Windows — CKW for short — is even closer to final release, thanks (as ever) to David Goodwin in New Zealand, who has been working on it since July. His Beta test version is available as of .

CKW Beta test numbers are different from C-Kermit's, which is (as of the same date) , so this one is called C-Kermit for Windows ; it is built using C-Kermit .

About OS/2 support, David says "OS/2 status is unchanged — it builds and runs but I've not tried to make any serial connections with it. Network support is currently disabled as I don't know how to build the TCP/IP bits with OpenWatcom yet and leaving NetBIOS enabled causes it to crash on startup for an unknown reason. Might not be too hard for someone who knows what they're doing to get it all going nicely."

It would also be appropriate to call C-Kermit for Windows "W-Kermit", which looks better than "CKW" in menus like the one at the top of this page, where "C-Kermit for Windows" is too long and "CKW" too short. Also W-Kermit follows the pattern of E-Kermit and G-Kermit, not to mention C-Kermit itself. By the same token, the OS/2 version might be called O-Kermit.

Links::

David's notes  •  What's new in  •  SSH support in  •  David's changelog  •  Previous Beta

About C-Kermit for Windows

The CKW Beta announces itself as:
C-Kermit 10.0 Beta.08/Windows-04, Dec 15 2022, for Windows
 Copyright (C) 1985, 2022,
  Trustees of Columbia University in the City of New York.
  Open Source 3-clause BSD license since 2011.
Type ? or HELP for help.
The copyright remains with Columbia U, in accordance with the separation agreement of 2011. The LICENSE command shows the new Open Source license. CKW uses the C-Kermit version number, not the old K95 one, which was different (the last K95 release was 2.1.3, which was contemporary with C-Kermit 8.0.207). CKW Beta-test numbers, however, are independent of the C-Kermit ones; for example, CKW Beta 4 is contemporary with C-Kermit 10.0 Beta.08.

Major new features in C-Kermit for Windows

CLICK HERE for a detailed list of new features in .

I hope that CKB's revived support for secure Telnet, FTP, and HTTP connections will encourage the redeployment of secure Telnet and FTP servers around the Internet, since Kermit's client implementations are vastly superior to the SSH regime in power, functionality, flexibility, features, customizability, automatability, and user-friendliness.

C-Kermit for Windows Third Beta problems fixed in

  1. CKW's SSH client now interoperates with all known SSH servers new and old.
  2. Slow file transfers on SSH connections are no longer slow.
  3. The wild cursor blink rate has been tamed.
  4. Clicking the X box on the top right (title bar) works again.
  5. The MANUAL command works again.

Known Problems with C-Kermit for Windows Beta

Send bug reports, questions, and comments to ckw@kermitproject.org.
  1. If you download a file to CKW whose name contains accented or non-Roman characters (for example "Grüße" in ISO Latin-1 or UTF-8), the file will arrive but its name will be garbled, as (for example) "GrüÃ\237e". This is only the tip of the iceberg. Ever since Day 1, K95's (and CKW's) default TRANSFER CHARACTER-SET has been TRANSPARENT, and its default FILE CHARACTER-SET is LATIN1.

    But Windows supposedly requires that all filenames be encoded as Unicode UTF-16, so any Kermit partner (such as C-Kermit for Unix or VMS) should, in theory, convert both the text-file's name and its contents to UTF-16 when constructing the packets to be sent. This is well and good, but Windows versions have differences and early 32-bit Windows versions didn't support Unicode at all. So how would the Kermit file sender know whether (and how) to encode a non-ASCII filename? (That said, it is still a deficiency of the protocol that it ignores the issue of filename encoding... not to mention length!)

    Windows can't enforce any rule about the encoding of files (or their names) because files can be imported from all different non-Windows OS's in all different encodings. Nobody has ever filed any complaints related to this issue, so I think it's best to let sleeping dogs lie because:

    • Any conceivable change would involve either dangerous assumptions or significant modifications to the Kermit protocol definition;
    • Any change could be an unwelcome surprise to people who depend on the current behavior;
    • Storing text files in Latin-1 encoding on Windows doesn't seem to bother Windows applications like Powershell, Notepad, or Wordpad, which shows them correctly (even though CMD.COM does not).
    • The best advice has always been to use only ASCII characters in filenames (and, for that matter, not put put spaces in them).
  2. Not exactly a bug: If you already had Kermit 95 installed on your computer, then after you install CKW, if you edit \v(inidir)k95custom.ini* or \v(inidir)k95site.ini, CKW will not see your edits . This turns out to be for two good reasons:
    1. Your k95custom.ini (your personal customization file) file should be in \v(appdata), not \v(inidir).
    2. \v(k95site.ini) is not for personal use, it's for the network manager on PC networks to make site-wide customizations, e.g. for all the PCs on a corporate PC LAN.
    Diagnosis: All these directories were writable by the user in early Windows versions. Beginning with (I think) Windows Vista, \v(inidir) became read-only except for Administrator. The reason the problem became evident only in CKW B2 is that it's the first version to be built with modern compilers and runtimes.

    Solution: Moving k95custom.ini to \v(appdata) — where you can edit it — fixes the problem. Example using CKW itself:

    [C:\Users\fdc\tmp\] CKW> cd \v(inidir)
    [C:\Users\fdc\Desktop\ckw-b4\] CKW>rename k95custom.ini \v(appdata)
    
  3. The terminal character-set menus (both the dropdown and the "set terminal/file/transfer character-set ?" menus) are a mishmash of official MIME character-set names and made-up pre-MIME "Kermit names" (see THIS TABLE). This is unavavoidable because (a) Kermit predates MIME, and (b) many of the character sets supported by Kermit do not have MIME names. In the menus, all names that are not MIME names for character sets that do have MIME names should also have the corresponding MIME name in the menu; for example "latin1-iso" and "iso-8859-1". Whenever a MIME name exists, it should be accepted but this is not always the case because C-Kermit has so many character-set-name tables: terminal, file, transfer, etc.
  4. Alt-n is supposed to let you enter any Plane-1 Unicode value as four hexadecimal digits, but:
    • it only accepts 3 digits;
    • when you type the fourth digit CKW disappears instantly;
    • So there's no way to enter Unicode characters that are otherwise untypeable.
    Example: lowercase dotless i: 'ı' (as in Turkish): Alt-n 0131 should work but typing the final '1' kills CKW.
  5. Sometimes when CKW switches from the terminal screen to the command screen (e.g. when you escape back, when you log out, when the connection is broken), the CKW prompt is not issued. It is still in command mode, however, and ready to accept commands. If you type the Return or Enter key, you'll get the prompt (but shouldn't have to do this).
  6. When CKW receives a file, it is stored with the current date and time, rather than the date-time it was sent with. This is a bug in CKW, it does not happen in C-Kermit for Unix (etc) and it did not happen in K95. David says: "I can reproduce the bug on my Windows 10 PC with beta 4. The vintage build (ckw-b4-vintage.zip) built with Visual C++ 6.0 works fine though so I'm guessing it is some issue in the newer version of the C Runtime - perhaps some detail about utime() has changed. In the meantime the vintage build should work on Windows 11 for the purpose migrating files." It does; this will be fixed in the next Beta.
  7. When you install a new CKW Beta version, it replaces your \v(appdata)k95custom.ini file with the sample version. This will be fixed in the next Beta. In the meantime, keep the master copy someplace else and then copy it to \v(appdata) whenever you change it.
  8. In Windows 11 the terminal beep randomly stops working. This is not a problem with CKW, it's a bug in Windows 11. See this page ("Windows 11 application alert sounds go missing after updates") at Microsoft.com. Workaround: "set terminal bell visible".
  9. Also in Windows 11... SSH key exchange works for passwordless SSH connections to hosts that have ancient SSH servers, but for some reason (only on Windows 11) a password popup appears. You don't have to enter a password, you can just hit the Enter key to make the popup go away, and then key exchange proceeds normally.
  10. In recent Windows versions, apparently half-duplex serial connections regulated by RTS/CTS flow control no longer work. Kermit does not do the flow control itself, it simply tells the serial port device driver which kind of flow control to use. RTS/CTS used to work (e.g. to make a helf-duplex connection to an IBM mainframe through a serial connection to a protocol converter such as the IBM 7171). Since none of this code has been changed in decades, the working theory is that at some point Microsoft reinterpreted RTS to be READY TO RECEIVE rather than REQUEST TO SEND, which would wreck half-duplex connections. Obvious workarounds include using CKW on an older Windows version, or C-Kermit on Unix or VMS, or MS-DOS Kermit on a DOS PC.
  11. The default action when receiving files has always been "ask", so K95/CKW pops up a window every time you download, in which you specify the directory ("folder") to put it in. This feature is annoying, interferes with scripted transfers, and allows only a restricted set of directories, so it is virtually useless. In the next Beta, the default action when the remote Kermit sends a file to CKW is to automatically enter receive mode and store the file in either (a) CKW's current directory, or (b) if you have used SET DOWNLOAD DIRECTORY, the given directory, or (c) if the sender sent a "send as" path, in that directory. If you want to restore the previous behavior, just put "set terminal autodownload ask" in your k95custom.ini file. And remember, whenever a file is downloaded to CKE (or C-Kermit in general) and you're not sure where it it was stored, just type "where" at the command prompt.
  12. Not a bug, but K95/CKW has always been a 32-bit Windows application but the next Beta will almost certainly be 64 bits; see David's changelog entries around 20 April 2023.
  13. The maximum for the SET TERMINAL WIDTH command is 256; there's no reason it can't be much larger, especially since CKW's screen can be widened to any width with the mouse, and since modern screens can be extremely wide. If the screen has been stretched to wider than 256, however, SHOW TERMINAL still says its width is 256.
  14. SET TERMINAL HEIGHT has a similar problem: although the screen height can be stretched with mouse, the maximum height for the command is supposedly 79, but SET TERMINAL HEIGHT to (e.g.) 80 or 90 seems to work.
* \v(inidir) is normally "C:\ProgramData\Kermit 95\" but might be something else on older Windows versions; "show variable inidir" to find out what it is.

What are the four dots on the left side of the status line?

They are the VT100 LEDs (lights above the 6, 7, 8, and 9 keys). Host applications can control them by sending escape sequences. To see for yourself, execute this script in C-Kermit on the host while connected to Unix or VMS from CKW:
# Run to see the LEDs; Ctrl-C to stop it.
while true { for i 0 4 1 { xecho \{27}[\m(i)q, sleep 1 } }

To clear the LEDs tell C-Kermit to:

xecho \{27}[0q

Download

C-Kermit for Windows is available as of , downloadable in various configurations from here:

https://ftp2.zx.net.nz/pub/CKW/test_builds/ckw10b8-beta4/    (URL corrected 16 December 2022)

The configurations are:

Table 1: C-Kermit 10.0 for Windows Beta 4 download options
Package link Minimum Windows version Description
ckw-b4.zip Windows XP SP 3 Full-featured version for Windows 11, 10, 8.1, 8, 7, Vista, and XP Service Pack 3. Includes all features. Visual C++ Runtime: for Windows Vista and newer , or for Windows XP SP3.
ckw-b4-vintage.zip Windows 95 Windows NT 3.5.1 Feature (and security) reduced for compatibility with vintage PCs. No SSH, SSL/TLS or PTY support. If required: Visual C++ Runtime.
ckw-b4-nt350.zip Windows NT 3.50 only. No SSH, SSL/TLS, PTY, NTLM, TAPI or GUI Toolbar.
Source code CKW C-language source code, available under the 3-clause BSD license.

If you're upgrading from beta 3, you might like to consult Whats New in Beta 4. If you're upgrading from an earlier release or upgrading from Kermit 95, the full change log and SSH Readme are probably worth a look.

Brief summary of known issues

Download procedure

  1. Make a new folder on your desktop named (you can name it whatever you want, but the following instructions refer to ).
  2. Download the desired CKW configuration package from the "Package link" column in Table 1. The appropriate choice for most people (i.e. those using Windows Vista or later) would be ckw‑b4.zip (we'll assume this in the rest of the instructions).
  3. Move (drag) the downloaded zip archive to folder.
  4. Open (double-click) the folder.
  5. Right-click on the .zip file and choose "Extract All...". This creates a subdirectory called .
  6. (optional) Delete the .zip file (right-click → delete).

Installing

There is (as yet) no "one-click" installer for CKW. Here is the procedure for the current Beta. A distinct advantage of this do-it-yourself method is that, not only can you have CKW and K95 installed at athe same time, you can also have multiple versions of CKW on your PC. Case in point: there is a host that I use on a daily basis that has an antiquated SSH server. The second Beta worked with it, but the third did not because it is built with a newer version of LibSSH, which has dropped support for old SSH servers (btw, this problem is fixed in the 4th Beta). Anway, here is the installation process for the current Beta:
  1. Open the "" folder (double-click it).
  2. The folder contains 26 files, which include:

    • k95g.exe - The executable C-Kermit 10.0 for Windows (K95) program
    • k95.exe - Ditto, but runs in "console mode" (like DOS, not recommended)
    • libcrypto-1_1.dll - Required for SSH
    • ssh.dll - Required for SSH
    • libssl-1_1.dll - Required for SSH
    • And a bunch of others that can be ignored
    The DLL's are required for Kermit to run, so don't delete them.
  3. If you already have an icon on your desktop called "k95g.exe - Shortcut" from the previous CKW test version, rename it (for example to "k95gB4.exe") so you can still have access to to Beta 3. Ditto for Beta 2, Beta 1, etc.
  4. In the " folder, Right-click on k95g.exe and choose "Create shortcut". This creates a file called "k95g.exe - Shortcut" in the same folder.
  5. Drag the "k95g.exe - Shortcut" to your Windows desktop or wherever else you want to run Kermit from. Recommend you rename it to something like CKWB4 so the name doesn't wrap around or get lost on crowded desktops.
Leave the folder as it is; don't move, rename, or delete it, or delete anything that's in it.

The new built-in SSH client is ready to use with password authentication. To set up passwordless key exchange authentication, read these instructions.

Running

Start (run) the new C-Kermit for Windows program by double-clicking the icon you just made in the previous step. The first time you start it you'll get warnings from Windows and/or your antivirus software because this is a new program and it's free and open-source. Examples of warnings:

  1. Windows protected your PC
    Microsoft Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk.
    More info click this
    App:  k95g.exe
    Publisher:  Unknown publisher
    [ Run anyway ] ← click this
    (see screenshot)
  2. Symantec Endpoint Protection Download Insight
    Our information on this file is inconclusive. We recommend not using this file unless you know it is safe.
    k95g.exe
    [ Remove this file from my computer ]
    [ Allow this file ] ← click this
    Unproven: There is not enough information about this file to recommend it. Very few users: This file has been seen by fewer than 5 Symantec users. Very new: Symantec has known abou this file approximately 2 days.

    Permission: If you press OK, an application exemption will be created for this file. You should allow only files you are sure are safe. Are you sure you want to allow this file?
    [ Cancel ]
    [ OK ] ← click this
These warnings appear only the first time you start the new CKW. But they come back when you download a new release (and then they go away again after you follow instructions above).

Coexistence with K95 2.1

If you already have Kermit 95 2.1.3 (or earlier) installed on your PC, CKW won't interfere with it and you can use both versions, and you can still use the K95 Dialer. At present CKW is installed in a folder on your desktop, whereas K95 2.1 was installed in the normal Windows way:
Table 2: K95 2.1 directories
File Filename Directory Kermit variable
Executable (GUI) k95g.exe C:\Program Files (x86)\Kermit 95 2.1\ \v(exedir)
Executable (console) k95.exe C:\Program Files (x86)\Kermit 95 2.1\ \v(exedir)
Root startup file k95.ini C:\ProgramData\Kermit 95\ \v(inidir)
Sitewide initialization file k95site.ini C:\ProgramData\Kermit 95\ \v(inidir)
Customization file k95custom.ini C:\Users\username\AppData\Roaming\Kermit 95\ \v(appdata)
Note: the actual directory names can vary according Windows version.

CKW *presently* uses the same initialization and customization files. If these files contain any commands not supported by CKW or by K95, you can protect them with:

if < \v(version) 1000000 {
    commands for K95    
}
if >= \v(version) 1000000 {
    commands for CKW
}
\v(version) is the all-numeric version number of the C-Kermit code used for the Windows build. 1000000 is C-Kermit 10.0 Beta.01 and 800207 is C-Kermit 8.0.207. Subsequent Betas have higher numbers, e.g. 1000401. When CKW is finally released it will still peacefully coexist with K95, although the exact mechanisms have yet to be worked out, but most likely all of its file names will start with "ckw" rather than "k95" (as in the table), and it will have its own separate \v(exedir), \v(inidir), and \v(appdata) directories. Or maybe not, maybe it's best to just keep the k95 prefix.

The CKW Initialization File

More about "Ini files"

In Betas 1 through 4 CKW uses K95's initialization and customization files (Table 2) if they exist. Future Betas will have their own set, e.g. ckwcustom.ini instead of k95custom.ini. The same directories as for K95 are used for the k95.ini, k95site.ini, and k95custom.ini files. These are plain-text files that contain C-Kermit/CKW commands. The k95custom.ini is where you would set up your preferences. For making connections to other computers, you can define a macro for each host includes the access details, the connection and login procedure, and the fonts, font-sizes, screen dimensions, colors, position, resize behavior, and so on, for each host you connect to. You can use different attributes (e.g. color) for each host so when you have many connections going at once, you can tell the difference by their distinct appearances. The K95 Relay page includes an example of such a script. New scripts and ini files for CKW will be posted here shortly.

Exportability of SSH client

The US Department of Commerce Bureau of Industry and Security (BIS) Export Administration Regulations (EAR) govern the export of software that includes encryption features. These rules have changed since Kermit 95 was last released in 2003, at which time certain countries were barred from obtaining such software from the USA by mail order, download, or other means. As of 2021, however, Kermit software is no longer subject to export restrictions, and C-Kermit for Windows can include a built-in SSH client based on LibSSH that is, indeed, exportable to all countries. See these references:
  1. Understanding US Export Controls with Open Source Projects, The Linux Foundation
  2. Understanding US Export Controls and Open Source Projects (2021 Update), The Linux Foundation
  3. Publicly Available - Public Domain - Open Source, MIT Office of the Vice President for Research
  4. Bureau of Industry and Security Export Administration Regulations, US Department of Commerce (2022)
  5. Bureau of Industry and Security Commerce Control List Category 5 - Telecommunications and Information Security

In brief (paraphrasing from item 5):  Publicly available ready-to-use software whose primary function is other than information security, that includes an openly available encryption component without modifications, and that is of interest to a wide range of individuals and businesses, is exempt from the BIS Export Administration Regulations. That's why LibSSH and numerous SSH clients are downloadable on the Internet by anybody at all, no matter what country they are in. CKW will be no different.

Similar considerations apply to Kermit's built-in OpenSSL and Kerberos 5 features, such as its Telnet, FTP, and HTTP clients.

Documention

Specific to C-Kermit for Windows:
A "How To" document for getting started with CKW:
https://www.kermitproject.org/ckwhowto.html

David Goodwin's notes:
http://www.ext.zx.net.nz/software/notes/kermit95/

Since C-Kermit for Windows is C-Kermit, you can refer to the C-Kermit documentation for most everything else:
https://www.kermitproject.org/ckbindex.html
https://www.kermitproject.org/ck90.html#doc
For an introduction to the Kermit scripting language (which lets you write procedures to automate common tasks), see this page:
https://www.kermitproject.org/ckscripts.html
For CKW's Windows-specific aspects, see:
  1. Chapter 6 of the Kermit 95 manual: Using the Command Screen,
  2. Chapter 7 of the Kermit 95 manual: Using the Terminal Emulator, and
  3. Chapter 8 of the Kermit 95 manual: File Transfer.

The New Open-Source Kermit Project hosted by Panix.com