What’s New in PyCharm 2025.1

One PyCharm for everyone, a free AI tier, the Junie public release, the launch of Cadence, PyCharm Jupyter enhancements, support for Hatch, and Data Wrangler implementation.

Release highlights

One PyCharm for everyone – start with Pro and continue for free

PyCharm is now one powerful, unified product! Its core functionality, including Jupyter Notebook support, will be free, and a Pro subscription will be available with additional features. Starting with the 2025.1 release, every user will get instant access to a free one-month Pro trial, so you’ll be able to access all of PyCharm’s advanced features right away. After the trial, you can choose whether to continue with a Pro subscription or keep using the core features for free. Learn more about the change in this blog post.

Junie – your personal coding agent Pro

Junie, the coding agent by JetBrains, is now available in PyCharm via JetBrains AI. Junie autonomously plans, writes, refines, and tests code to make your development experience smooth, efficient, and enjoyable. It handles tedious tasks like restructuring code, creating tests, and implementing refinements, so you can focus on bigger challenges and innovation.

PyCharm goes AI

JetBrains AI has received a major upgrade, bringing both AI Assistant and Junie under a single subscription. With this release, all JetBrains AI features are accessible for free in PyCharm Pro, with unlimited use for some, such as code completion and local model support, and limited credit-based access to others. We're also introducing a new subscription system that makes it easy to scale up as needed with the AI Pro and AI Ultimate tiers.

Cadence – effortless cloud execution for ML workflows Pro

You can now run your machine learning code on powerful cloud hardware directly from PyCharm in minutes – no complex setup or cloud expertise required. The Cadence plugin simplifies ML workflows, allowing you to focus on your code while leveraging scalable computing resources.

Learn more about Cadence.

Data Wrangler Pro

We've implemented Data Wrangler, a powerful tool that helps Python data professionals streamline data manipulation and focus on higher-level analysis. View and analyze your data, explore column statistics and visualizations, and automatically generate Python code for transformations.

Use the interactive UI to perform common dataframe transformations – such as filtering, cleaning data, handling outliers, and more – without having to write repetitive code manually. You can also track the history of changes, export data in a convenient format, and insert transformations as new cells in your notebook.

Learn more about Data Wrangler.

SQL cells in notebooks Pro

PyCharm 2025.1 introduces SQL cells. This new cell type allows you to query databases, dataframes, and attached CSV files in Jupyter notebooks and automatically save query results to pandas DataFrames.

Support for Hatch

We're introducing support for Hatch, a modern and extensible Python project manager from the Python Packaging Authority (PyPA). Hatch can automatically migrate setuptools configurations, create isolated environments, and run and publish builds, making Python package management more efficient.

PyCharm also allows you to create new projects managed by Hatch. The IDE will automatically recognize Hatch projects when they are imported from a local machine or a remote source.

Jupyter notebooks

Jupyter notebooks support improvements

We’re continually enhancing the overall experience of developers when working with Jupyter notebooks. In this release, we’ve introduced the following features:

  • The ability to launch Jupyter servers with a uv interpreter, building on existing support for uv.
  • Drag-and-drop functionality for rearranging Jupyter cells directly using the bar in the gutter.
  • The Commit without outputs option, which automatically clears cell execution results before committing and is available from the menu that appears when you click the gear icon.
  • Customizable colors for notebook backgrounds, code cells, selected lines, and cell borders.
  • A per-cell management toolbar that provides specific actions tailored to the selected cell type. Pro
  • New Crashed and Queued cell statuses in the Structure view for notebooks.
  • A floating formatting toolbar that appears when text is selected within Markdown cells, as well as a cleaner look for empty Markdown cells.
  • A Shut down Kernel button, which has been added to the main toolbar.

Jupyter server configuration improvements Pro

We’ve enhanced the simplicity and transparency of the Jupyter server configuration settings. You can now add multiple managed or remote server configurations and easily switch between them.

Additional improvements include:

  • Support for connecting to remote servers via proxy.
  • New support for AWS SageMaker remote connections.
  • Improved file system for remote Jupyter servers.
  • The ability to run notebooks on Kaggle's Jupyter servers.

Jupyter debugger improvements

  • Run to caret functionality.
  • The ability to debug Jupyter cells line by line, thanks to the fact that PyCharm now automatically places a breakpoint on the first line of Jupyter cells if no breakpoints are already set.
  • Fixes for numerous issues.
  • Debugging and Variables view support for remote Jupyter instances. Pro

Data science

Ability to reformat SQL code embedded in Python Pro

The 2025.1 version allows you to reformat SQL code embedded in Python according to your specified code style. This ensures consistency and readability when working with SQL inside Python scripts.

Quick option to open new Data View tabs Pro

You can now quickly create new tabs in the Data View tool window using the + button next to the existing tabs. Having an additional tab is useful because it offers a convenient place to evaluate NumPy arrays, pandas DataFrames, and other data types simply by entering a variable name or expression.

Ability to view NumPy arrays and tensors as images

When debugging applications that manipulate images, you can use the View as Image action to see the images in the debugger without having to add any code. This action works for NumPy arrays and the following libraries: PyTorch, TensorFlow, Matplotlib, Seaborn, OpenCV, Pillow, ImageIO, and scikit-image. To use it, simply right-click on a data variable in debug mode and select View as Image.

Database tools

Introspection by levels for MySQL and MariaDB Pro

We're continuing our work to enhance introspection performance. Starting from version 2025.1, there will be different introspection levels for MySQL and MariaDB, and the amount of metadata that gets loaded will automatically be adjusted depending on the size of your database. In other words, we won't load all the metadata if your database is large. This will significantly reduce introspection time and allow you to start working with newly connected data sources right away. To learn more about the levels and how to tailor your experience, visit this page.

SQLAlchemy object-relational mapper support

This release enhances PyCharm’s integration with SQLAlchemy, allowing it to recognize database object types automatically. This improvement enables accurate autocompletion for database columns and query results, significantly improving your experience with ORM-based projects.

Django Pro

Support for type hints in request.user

PyCharm now automatically applies the correct type hints for request.user based on AUTH_USER_MODEL if it is specified in the Django settings file, improving code completion and type checking for custom user models.

Route declaration support for the Django Ninja framework

We’ve introduced the option to declare endpoints in Django projects using the Django Ninja framework. This expands PyCharm’s endpoint detection to align with best practices and allows backend and full-stack developers to manage their endpoints directly through PyCharm’s Endpoints tool window.

AI Assistant

Expanded selection of LLMs in chat

The AI model selection in the chat has just been expanded! Now, you can take full control of your AI experience by choosing from the latest and most advanced language models, including:

  • Claude 3.7 Sonnet
  • OpenAI GPT-4.1 (сoming soon)
  • Gemini 2.0 Flash

And we’re not stopping here! JetBrains is committed to continuously integrating AI models to ensure you have access to the most up-to-date AI technologies.

Offline mode: Work with local models

AI Assistant gives you the flexibility to work with local models offline or leverage cloud-based AI processing. With the new offline mode, you can now work without an internet connection while still benefiting from AI-powered coding assistance. Use local models via Ollama or LM Studio for chat, code generation, commit messages, inline documentation, and more.

Multi-file changes in edit mode

Editing multiple files has never been easier! AI Assistant now supports multi-file edits in the chat, suggesting changes across your project while leveraging retrieval-augmented generation (RAG) to locate the most relevant files. Reduce repetitive tasks and implement modifications across multiple files with a single interaction.

AI-generated quick charts in Jupyter tables Pro

You can now generate chart previews for tables in Jupyter notebooks by clicking on AI Quick Charts. AI Assistant leverages dataframe metadata to suggest visualizations, embedding the resulting charts directly into the table’s widget to give you instant previews. Click on a generated chart to insert the corresponding code into your notebook.

Improved code generation in Jupyter notebooks Pro

AI-generated code is now logically split into multiple cells, including Markdown cells, aligning more naturally with notebook workflows.

Option to exclude files from AI Assistant’s context

You can further enhance your control over what AI Assistant sees by configuring an .aiignore file. This allows you to prevent JetBrains AI from accessing specific files or folders, ensuring that sensitive information is never processed.

Web search from chat

With the new /web command, AI Assistant can now fetch documentation, troubleshooting tips, and the latest technical resources directly from the web – right inside your chat window. No more switching tabs or searching manually!

Apply snippets from chat

Now, when the AI chat suggests a code snippet, you can use the Apply button to automatically find the optimal place to insert the newly generated code – no more manual copy-pasting. This feature significantly streamlines your workflow.

Smarter AI context awareness

AI Assistant now understands your entire project better, using advanced RAG to surface the most relevant files, methods, and classes. In addition, the context now includes recently accessed files, making interactions even more relevant to your workflow. Because you can now also add or remove attachments sent as context, you maintain full control over the AI’s context.

User experience

New terminal architecture Beta

The 2025.1 release introduces a reworked terminal architecture, which is available in Beta. The terminal now runs on a stable, standards-compliant core and uses the IDE’s editor to render the UI. This change lets us introduce new features while preserving compatibility and performance across various platforms, whether local or remote. Get more details about our plans and progress in this blog post.

Native OS file dialogs on Windows

PyCharm now defaults to using native Windows file dialogs instead of the IDE’s custom implementation. This gives you a more familiar experience when opening or saving files. If you prefer the previous behavior, you can restore it in Advanced Settings | User Interface.

New file creation in the Project tool window

Creating a new file is now more convenient. You can access the popup listing available file templates directly from the Project window toolbar via the + icon, and the search field lets you quickly filter and find the file type you need.

Automatic plugin updates

You can set PyCharm to automatically update plugins in the background. It will download available updates and apply them on the next IDE restart without additional notifications. You can enable automatic updates by clicking the Enable auto-update checkbox in the update dialog or via File | Settings | Appearance & Behavior | System Settings | Updates.

Option to export Kafka records directly to JSON, CSV, and TSV Pro

PyCharm now allows you to export Kafka records directly to JSON, CSV, and TSV files, making it easier to analyze and share streaming data. The IDE can save complete record details, including topic, timestamp, key, value, partition, and offset, in widely used formats. With this update, you can diagnose issues faster, verify data integrity, enable advanced analysis, and streamline collaboration, as exporting Kafka records helps ensure data is accessible and actionable. By reducing time to resolution and improving data transparency, this enhancement provides a more efficient and effective Kafka experience.

Enhanced user experience for generated HTTP requests Pro

The HTTP Client now opens HTTP requests generated from code in the right-hand editor split, which means you no longer need to review them in a separate tab.

Version control systems

Commit details in the diff view

You can now see commit details directly in the diff view. The diff dialog displays the commit message, author, date and time, and full commit hash, giving you a clearer view of a file’s history and helping you understand modifications faster.

Option to run tools for pre-commit checks

You can now launch any tool to perform a pre-commit check alongside inspections and formatting. Custom checks can be configured as run configurations in the Run Configuration dialog. This helps you catch potential issues early and ensures your code meets project standards before it’s committed.

Option to disable the running of Git commit hooks

A new option allows you to instruct the IDE not to run Git commit hooks. Previously, Git hooks would execute automatically during commit operations, which might not have been desirable in all situations. With this update, you can now configure the IDE to skip these hooks, giving you more control over your commit process.

Other features

PyPackage: Installation of missing packages from the console

If you try to run code without installing the required packages, the IDE will now suggest installing them directly from the Python console, the Run tool window, or the Debug tool window, ensuring a smoother workflow.

FastAPI endpoints: mount support Pro

The Endpoints tool window now supports mounted apps in FastAPI, including Django and Flask apps. Mounted routes are detected and shown in the Endpoints tool window with the proper path prefixes, making it easier to manage multi-app projects.

Bug fixes

  • [PY-54850] Package requirement is not satisfied when the package name differs from what appears in the requirements file with respect to whether dots, hyphens, or underscores are used.
  • [PY-56935] Functions modified with ParamSpec incorrectly report missing arguments with default values.
  • [PY-76059] An erroneous Incorrect Type warning is displayed with asdict and dataclass.
  • [PY-34394] An Unresolved attribute reference error occurs with AUTH_USER_MODEL.
  • [PY-73050] The return type of open("file.txt", "r") should be inferred as TextIOWrapper instead of TextIO.
  • [PY-75788] Django admin does not detect model classes through admin.site.register, only from the decorator @admin.register.
  • [PY-65326] The Django Structure tool window doesn't display models from subpackages when wildcard import is used.