A unique agentic experience for JetBrains IDE

For developers who still look at the code.

Claude Code, Codex, and Pi in a native Ghostty terminal, next to your code.

Bring your own

Bring your own terminal agent

Run Claude Code, Codex, Pi, or any CLI agent in a native Ghostty terminal inside the IDE. No adapters: your agent keeps its own settings and extensions.

Claude Code runs as is, with your settings, skills, and hooks. Its sessions come back after an IDE restart, and you can comment on text it prints.

libghosttyThe Ghostty terminal engine, embedded in the IDE
MetalGPU rendering, shown in the IDE as a shared texture
120 HzUp to 120 Hz on ProMotion displays
KittyKeyboard and graphics protocols, so agents can show images
Ergonomics

No more terminal fatigue

Keep the agent in its terminal and get the comfort of a GUI around it.

  1. Composer

    A real editor for prompts in every terminal and in Agent Chat. Add files, folders, and images, refer to them by number, and switch the model or reasoning without leaving it. Drafts stay when you switch away.

  2. Prompts in the IDE editor

    Ctrl+G opens the prompt in an IDE editor tab. Any console program that calls $EDITOR, such as git, gets the same editor.

  3. Panel or tab

    Terminals, Agent Chat, and the browser move between the tool window and editor tabs, and keep running.

  4. Terminal switcher

    Live previews of all terminals and agents, with child terminals grouped under their parents and the active ones marked.

  5. Shortcuts for everything

    Every action has a shortcut. Settings show conflicts with your keymap before they bite.

  6. Dictation

    Dictate into any Composer or comment. Your own dictionary keeps product names spelled right.

Collaboration

Annotate everything. Preview anything.

Give the agent exact context from anywhere in the IDE. Read its answers as links into the same code.

Annotate everything

Select text anywhere, add a comment, and it goes into the Composer as a numbered attachment.

Terminal
pi · checkout-serviceEach line is rounded before the sum.
1 Round once at the end instead?
Editor
Invoice.ktlines.sumOf { it.net.round() }
2 Why per line?
Diff viewer
Invoice.kt · HEAD vs working tree+ lines.sumOf { it.net }.round()
3 Keep half-up rounding here
Project View
src/billingInvoice.kt Tax.kt Rate.kt
4 Tax uses the same rule, check it too
Markdown preview
docs/billing.mdTotals are rounded per invoice line.
5 This doc is out of date
Images
screenshot · checkoutTotal $41.99 Expected $42.00
6 This is the bug
Walkthrough
recording · 0:42Talk while you select. Each selection gets the words you said.
7 Comments come from your voice

Preview anything

Agents answer with links. Point at one to preview the code or the diff, click to open it in the IDE.

pi · checkout-service

pi Each line is rounded before the sum, so the total can be off by up to 0.5¢ per line.

The sum is in , and tax reuses it in .

I rounded once at the end. See the change in .

▸ edit Invoice.kt · +2 −1  ·  ▸ run tests · 48 passed

Point at a link

Explain Code

Understand the code

Explain Code is a built-in skill for Pi, Claude Code, and Codex. The agent explains code and changes, and you read the answer in the live code.

Agree on a plan before the change

Ask the agent to explain the flow it is about to change. The report links each step to the live code, with diagrams where they help.

Read the explanation on top of your code

A report link opens the file with highlights, numbered notes, and the proposed code. The file does not change; hide the notes when you are done.

Review the change after it

A review report puts its notes on both sides of the IDE diff, and lists every change block it checked.

  • Mermaid diagrams with links to the source
  • Call trees from the IDE code model
  • HTML reports in the internal browser
JetPi

We love π

Pi is our favorite terminal agent, so it gets the deepest support. JetPi is our build of Pi for the IDE.

Pi in a terminal

› why is the total off by a cent?

$ rg -n "round\(" src

src/billing/Invoice.kt:4: fun total(): Money = lines.sumOf { it.net.round() }

src/billing/Tax.kt:12: invoice.total() * rate

read src/billing/Invoice.kt (1-40)

read src/billing/Tax.kt (1-25)

$ ./gradlew :test --tests 'InvoiceTest'

> Task :compileKotlin

> Task :test

InvoiceTest > rounds once at the end PASSED

BUILD SUCCESSFUL in 6s

pi Each line was rounded before the sum. I rounded once at the end; tests pass.

JetPi

› why is the total off by a cent?

▸ 4 tool calls · rg, read Invoice.kt, read Tax.kt, gradle test

pi Each line was rounded before the sum. I rounded once at the end; tests pass.

Copy MarkdownFork from here

Pi Chats
All chats in one list, with live activity, pins, archive, and search.
Timeline
One tick per turn. Jump to any point of a long chat.
Folds
Tool calls fold into one line. Open one when you need it.
Copy Markdown
Copy any message exactly as the agent wrote it.
Forks
Fork a chat from any message, or start child agents.
Long chats
History loads as you scroll, so long chats stay fast.
Agents

A home for your agents

Every agent gets a terminal, an inbox, and a way to drive the IDE.

Child terminals

▾ pi · checkout-service
   ├ pi · review Tax.kt      working
   └ claude · write tests   ready

An agent starts helpers in background terminals. They stay grouped under their parent, and the switcher shows which ones are working.

Agent Hub

claude → codex   review Invoice.kt
codex  ✓ received
codex → claude   2 notes, see diff

Agents send messages to each other, with receipts and linked replies. Pi, Claude Code, Codex, and Agent Chat are all members.

Automation

$ jetideai agents launch --kind pi
$ jetideai ide open src/billing/Invoice.kt --line 4
$ jetideai agents join

A local API and the jetideai CLI let any agent open files and diffs, start terminals, and launch other agents. Desktop apps such as Claude and ChatGPT can join too.

Themes

Native look and feel

Editor schemes, Pi themes, and terminal colors match your IDE, dark or light, and change with it.

fun total(): Money = lines.sumOf { it.net } .round() // once val label = "Total"
pi Rounding now happens once, in total(). ▸ edit Invoice.kt · +2 −1 ▸ run tests · 48 passed
IDE themejetIDEAI editor schemePi themeTerminal colors
Blog
Architecture · coming soon

How jetIDEAI is built

  1. Native terminal in the IDE
  2. IDE automation for any agent
  3. Agent Hub
  4. Semantic Layers
  5. Scrollback virtualization
Coming to JetBrains Marketplace

Get notified when jetIDEAI is available

Your OS (optional)

For IntelliJ IDEA, Rider, WebStorm, PyCharm, GoLand, and other JetBrains IDEs.