PyCharm includes an embedded terminal emulator for working with your command-line shell from inside the IDE. Use it to run Git commands, set file permissions, and perform other command-line tasks without switching to a dedicated terminal application.
Enable the Terminal plugin
This functionality relies on the Terminal plugin, which is bundled and enabled in PyCharm by default. If the relevant features are not available, make sure that you did not disable the plugin.
Press CtrlAlt0S to open settings and then select Plugins.
Open the Installed tab, find the Terminal plugin, and select the checkbox next to the plugin name.
Initially, the terminal emulator runs with your default system shell, but it supports many other shells, such as Windows PowerShell, Command Prompt cmd.exe, sh, bash, zsh, csh, and so on. For more information about changing the shell, refer to Terminal settings.
Open the Terminal tool window
Go to View | Tool Windows | Terminal or press AltF12.
Right-click any file (for example, in the Project tool window Alt01 or any open editor tab) and select Open in | Terminal to open the Terminal tool window with a new session in the directory of that file.
tip
You can open the terminal as an editor tab: right-click the Terminal tool window header and select Move to Editor.
Start a new local session
To start a new session in a separate tab, click on the toolbar or press CtrlShift0T.
To run multiple sessions inside a tab, right-click the tab and select Split Right or Split Down in the context menu.
The Terminal saves tabs and sessions when you close the project or PyCharm. It preserves tab names, the current working directory, and even the shell history.
To close a tab, click on the Terminal toolbar or press CtrlF4.
Press Alt0→ and Alt0← to switch between active tabs. Alternatively, you can press Alt0↓ to see the list of all terminal tabs.
To clear the terminal screen, press Ctrl0L.
tip
Configure shortcuts for the terminal actions in the IDE settings (CtrlAlt0S), under Keymap | Plugins | Terminal.
Start a new SSH session
On the toolbar, click and select New SSH Session.
Enter the address of the host to which you want to connect, and provide authentication data.
Or, if you have configured SSH configurations, you can select one of them from the list.
To terminate the connection, click in the terminal tab.
Rename terminal tab
Right-click the tab and select Rename Session from the context menu.
tip
Just like with system terminal tabs, you can rename PyCharm Terminal tabs programmatically. For example, use title MyTitle if your interpreter is Windows Command Prompt or echo -en "\033]0;MyTitle\a" for bash and zsh. This feature is available if the Show application title checkbox is selected in Advanced Settings.
Search in terminal
To search for a certain string in a terminal session, press Ctrl0F. This searches all text in the session: the prompt, commands, and output.
By default, the search is not case-sensitive. You can click Match case in the search field to make it case-sensitive.
Configure the terminal emulator
Press CtrlAlt0S to open settings and then select Tools | Terminal.
Alternatively, click on the Terminal toolbar and select Settings.
For advanced settings, select Advanced Settings and scroll down to the Terminal group. For more information about the available settings, refer to Advanced Settings: Terminal.
Select Terminal engine
There are currently three terminal engines in PyCharm:
Classic. This is our standard terminal emulator, built on the JediTerm library, with user input (commands and keystrokes) sent directly to the underlying shell.
Experimental 2024 (deprecated). This terminal (known as New Terminal in PyCharm 2024.*) integrated advanced IDE features, such as autocompletion and AI capabilities. However, it also introduced compatibility challenges, and as a result, it has been deprecated. Selecting this terminal engine will be available only to those who enabled it in PyCharm 2024.*. You can find the documentation for it in the earlier version of PyCharm Help.
Reworked 2025 (Beta). This is currently a work in progress aimed at ensuring better performance and compatibility with classic CLI behavior.