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.
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, 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.
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.
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.
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.
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.
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.
We’re continually enhancing the overall experience of developers when working with Jupyter notebooks. In this release, we’ve introduced the following features:
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:
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
AI-generated code is now logically split into multiple cells, including Markdown cells, aligning more naturally with notebook workflows.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
ParamSpec
incorrectly report missing arguments with
default values.
asdict
and
dataclass
.
AUTH_USER_MODEL
.
open("file.txt", "r")
should be inferred as
TextIOWrapper
instead of TextIO
.
admin.site.register
,
only from the decorator @admin.register
.