Previous | Contents | Index | Next

Chapter 2: What's new in JoliPuTTY

JoliPuTTY is PuTTY with a new Windows front end: everything that happens between you and the server (SSH, Telnet, Serial, the terminal emulation, all the settings) is PuTTY's, and works as the rest of this manual describes. What's different is the window around it, which is made with WinUI 3, the user interface of Windows 11, and what that window lets you do.

2.1 Installing and running JoliPuTTY

The JoliPuTTY program is called jputty.exe. It needs Windows 11 (Windows 10 may work, but isn't the target), and the Windows App Runtime, Microsoft's library for WinUI 3 applications:

JoliPuTTY keeps its saved sessions where PuTTY does, in the Windows registry, so PuTTY and JoliPuTTY see the same sessions, and you can go back and forth between them.

PuTTYtel, pterm and the other tools (PSCP, PSFTP, Plink, Pageant and PuTTYgen) are unchanged.

2.2 The main window

JoliPuTTY has a single window, with a tab for each session, in its title bar, as in Windows Terminal or Notepad.

2.2.1 The Welcome tab

When JoliPuTTY starts without being told what to connect to, it opens on a Welcome tab, which says how to start a session. It goes away by itself when you start one. JoliPuTTY doesn't ask for confirmation when you close it with only the Welcome tab open.

2.2.2 The title bar

Beside the tabs are two buttons:

The ‘+’ button
opens the configuration window on its Address page (section 2.5.3), with the cursor in the Host Name box: type where to connect to, and press Enter. Hold Shift as you click it to open the new session in a new window instead.
The arrow button
opens the pop-up of sessions (section 2.2.3). Its keyboard shortcut is Ctrl+Shift+Space. Hold Shift as you choose a session in it to open it in a new window.

Right-clicking the title bar, clicking the icon at its left, or pressing Alt+Space, shows the window's menu, which has ‘Full Screen’, ‘Help’ (this manual, on JoliPuTTY's web site, in the version for the JoliPuTTY you're running) and ‘About JoliPuTTY’, along with the usual commands to move, size and close the window.

2.2.3 The pop-up of sessions

The pop-up that the arrow button opens lists your favorite sessions, the ones you used most recently, and all your saved sessions, in their folders (section 2.5.2). Click one to connect to it in a new tab.

At its top is a box where you can type a host name to connect to straight away, without going through the configuration window: host, user@host, user@host:port, or with the kind of connection in front: ssh://host, telnet://host, or serial://COM1:115200, with the line's speed. Anything else is a connection by SSH, with the default settings.

The pop-up can extend beyond the window if it needs the room.

2.2.4 Tabs

Each tab shows the title of its session. That's the title the server has set, if it set one (most Unix shells set it to something like user@host:~); otherwise the window title from the session's settings (section 5.9.1), if any; otherwise the name of the saved session; and otherwise the host name. Hover over a tab to see its session's full name, with its folder.

Double-clicking a tab opens its settings (section 2.5.5). Right-clicking it gives you its menu:

‘New Tab’
opens the configuration window, to start a new session.
‘Rename Tab’
lets you type a title of your own for the tab, in place of the title of the session, for as long as the tab is open (it isn't saved anywhere). Clear the title to go back to the session's own.
‘Move Left’, ‘Move Right’
move the tab along the title bar. You can also drag tabs.
‘Duplicate Session’
opens another tab, connected the same way.
‘Close Pane’
(in a split tab: section 2.2.5) closes the pane that has the focus.
‘Restart Session’
connects again. If the session is still connected, JoliPuTTY asks first.
‘Change Settings...’
opens the session's settings (section 2.5.5).
‘Event Log’
shows the session's Event Log (section 4.1.3.1). Its window can be left open while you work, and you can copy lines from it.
‘Close Tab’
closes the tab (Ctrl+F4). If the session is connected, JoliPuTTY asks first, as PuTTY does when you close its window (see section 5.9.2).

Ctrl+Tab and Ctrl+Shift+Tab go to the next and the previous tab.

2.2.5 Split panes

A tab can be split into several panes, side by side or one above the other, each with a session of its own. ‘Split Right’ and ‘Split Down’, in the terminal's menu (section 2.2.6), split the pane you're in, and open the configuration window for the new pane's session. Drag the bar between two panes to share the room differently.

‘Close Pane’ closes the pane that has the focus; closing the last one closes the tab.

2.2.6 The terminal's menu

Right-clicking in the terminal (or Ctrl+right-clicking, depending on the setting in section 5.11.1) gives you the terminal's menu:

‘Copy’, ‘Paste’
copy the selected text, and paste what's in the clipboard.
‘Copy to Pool’, ‘Paste from Pool...’
keep the selected text to paste again later, and paste it (section 2.3).
‘Special Command’
sends one of the special commands of the connection, such as Telnet's Break or SSH's signals (section 4.1.3.2).
‘Find...’
finds text in the terminal and its scrollback: type it in the bar that appears, and press Enter to go to the previous match (further up, towards older output), Shift+Enter for the next one, and Escape to close the bar. The bar can match case, and take a regular expression.
‘Send File...’, ‘Receive File...’
copy a file to or from the server, by SFTP, over the SSH connection that's already open (so there's nothing more to log in to). They're available in SSH sessions whose server supports SFTP.
‘Split Right’, ‘Split Down’, ‘Close Pane’
split the tab, or close a pane of it (section 2.2.5).
‘Copy All to Clipboard’, ‘Clear Scrollback’, ‘Reset Terminal’
are PuTTY's own (section 4.1.3.5, section 4.1.3.6).

2.3 Pools of copied text

JoliPuTTY keeps what you copy, to paste again later, in three pools:

‘Paste from Pool...’ (Ctrl+Alt+V) shows them all, the newest first, with a box to find an entry by what's in it. Click an entry, or press Enter, to paste it. Right-click an entry to paste it, keep it for this session or for all of them, or remove it; and ‘Clear this tab's history’ empties the tab's history.

The session's pool and the common pool are saved in the registry, encrypted for your Windows account only (with Windows' Data Protection API). The tab's history is never saved.

The setting ‘Copies to keep’ on the Terminal page says how many entries the tab's history and the session's pool keep (20 by default; 0 to keep none, if what you copy in a session should never be kept). Very long copies (over 16384 characters), and what ‘Copy All to Clipboard’ copies, aren't kept.

2.4 Keyboard shortcuts

Ctrl+Shift+Space
opens the pop-up of sessions (section 2.2.3).
Ctrl+comma
opens the settings of the session you're in (section 2.5.5).
Ctrl+Tab, Ctrl+Shift+Tab
go to the next or the previous tab.
Ctrl+Alt+1 to Ctrl+Alt+8
go to the first to the eighth tab; Ctrl+Alt+9 goes to the last one.
Alt+arrow keys
move to the pane to the left, the right, above or below, in a split tab.
Alt+Shift+plus, Alt+Shift+minus
split the pane to the right, or down.
Ctrl+Shift+W
closes the pane that has the focus.
Ctrl+Alt+V
pastes from the pools (section 2.3).
Ctrl+F4
closes the tab.

These shortcuts use the left Alt key only, so that the right one (AltGr on many keyboards) still types what it usually does.

If a program you run on the server needs some of these keys, tick ‘Send them to the server instead’, under ‘JoliPuTTY's keyboard shortcuts’ on the Terminal page of the session's settings: JoliPuTTY then leaves all of them to the server, except Ctrl+Tab and Ctrl+F4.

2.5 The configuration window

JoliPuTTY's configuration window has PuTTY's settings, and PuTTY's pages, listed on its left, but works differently. The ‘?’ button at the end of its title bar opens this section of the manual.

2.5.1 The Sessions page

The configuration window opens on its Sessions page, which shows your saved sessions in three sections: Favorites, Recent, the ones you used last, and All sessions, in their folders. Each shows what it connects to, under its name. Click a section's title to fold it away.

At the top is a box where you can type a host name to connect to, as in the pop-up of sessions (section 2.2.3).

Double-click a session to edit it (section 2.5.4). Its ‘...’ button has the rest of what you can do with it: connect to it (in this window or in a new one), edit it, add it to your favorites or remove it from them, rename it, duplicate it, export it, copy the command line that would start it, or delete it. The ‘...’ button of a folder lets you start a new session or a new folder in it, rename it or delete it.

The ‘...’ button at the top of the page lets you start a new session or a new folder, change the defaults for new sessions, and export all your sessions to a .reg file, or import sessions from one.

2.5.2 Folders

Sessions can be put in folders, and folders in folders. JoliPuTTY does it the way PuTTY-ng does, so the two see the same folders: a session's folders are part of its name, separated by ‘#’. So the session called Clients#ACME#web is the session web, in the folder ACME, in the folder Clients. JoliPuTTY shows it with ‘/’ between the folders: Clients/ACME/web. PuTTY itself shows such a session under its full name.

That's why a session's or a folder's name can't contain ‘#’, ‘/’ or ‘\’: JoliPuTTY doesn't let you type them.

A folder with nothing in it yet is remembered too, as it is by PuTTY-ng. Renaming or deleting a folder renames or deletes everything in it, after asking.

2.5.3 The Address page

The Address page is where you say where to connect to: the host name and port, and the kind of connection, as on PuTTY's Session page (section 5.1.1). With the rest of the settings at their defaults, that's all a new session needs: press Connect.

2.5.4 Editing a saved session

When you edit a saved session (or the defaults for new sessions), its name is in the title bar of the window, with a dot and ‘Changes not saved’ as soon as you change anything. The pages you've changed something on are marked, and so are the settings you've changed, each with a button to put it back as it was.

Saving a session under a new name (‘Save as...’) asks for its name, and for the folder to put it in, in a tree of your folders, where you can also make a new one. Renaming or duplicating a session only changes its name: it stays in its folder.

2.5.5 Changing the settings of a running session

Double-clicking a tab, ‘Change Settings...’ in its menu, or Ctrl+comma, opens the settings of its session. As in PuTTY (section 4.1.3.4), some settings can't be changed while the session's running: the destination (host name, port, kind of connection) is then shown, but greyed out. It can be changed once the session's over, to restart it somewhere else.

The Session page also lets you rename the saved session, and the Connection page shows the SSH key and certificate the session logs in with (section 5.22.1).

2.5.6 Automate logon

On the Connection > Data page, after the auto-login user name, ‘Automate logon’ lets you list steps to carry out when you connect, by SSH or Telnet: wait for some text to arrive from the server (its ‘Expected’ text), then send a command, followed by Enter. With no expected text, the command is sent as soon as the server has sent anything. Each step can be switched off, and its command hidden, which keeps it in the Windows Credential Manager rather than with the rest of the session's settings.

2.5.7 Where PuTTY's settings are

JoliPuTTY has all of PuTTY's settings, but some of them are somewhere else than the rest of this manual says:

The file, font and colour choosers, the Host CA dialog box, the Event Log, and the messages and questions are JoliPuTTY's own, in the style of Windows 11, and follow its light or dark theme:

2.6 What servers see

JoliPuTTY identifies itself to SSH servers as JoliPuTTY_0.1, so that they can tell it from PuTTY (in their logs, for instance). It behaves as the version of PuTTY it's based on, 0.85.


JoliPuTTY is an independent project, based on PuTTY, and not affiliated with the PuTTY project. To report a problem with JoliPuTTY, or with this manual, see its issues page.

[JoliPuTTY 0.1, based on PuTTY 0.85]