Anahata ASI Studio - IntelliJ

The IntellijAsiContainer and its native IntelliJ toolkits are currently in Beta stage. Curious enthusiasts are encouraged to check out the sources, try the latest snapshot builds, and share their enthusiasm with Arslan on the Anahata Discord.

Downloads & Official Update Repositories

Choose your preferred channel: configure our Custom Plugin Repository in IntelliJ IDEA to receive 1-click automatic updates, or download standalone .zip distribution archives.

Custom Plugin Repository URL:
https://asi.anahata.uno/intellij/plugins.xml
Direct Plugin Distribution (.zip):
Download Stable Plugin (.zip) GitHub Releases
Apache Licensed IntelliJ 2026.2.x (Beta) Lead Developer: Arslan Android Studio Ready

Multi-IDE Parity with NetBeans

The anahata-asi-intellij module provides complete feature parity with NetBeans ASI Studio. Powered by IntelliJ's Program Structure Interface (PSI), Virtual File System (VFS), and OpenAPI refactoring engines, Anahata operates natively inside JetBrains IDEs without external Node.js bridges or electron overlays.

PSI-Guided Code Refinement (V4 Engine): Surgically inject methods, fields, and classes directly using IntelliJ's WriteCommandAction with 100% undo/redo fidelity and comment preservation.
Smart Mode & Indexing Safety: Automatically coordinates with IntelliJ's DumbService so background AI execution threads never throw IndexNotReadyException or return stale PSI elements.
Native Tool Window Chrome: Integrates seamlessly as a dockable IntelliJ Tool Window with live session badges on the status bar and custom Project View context decorators.
Beyond-Parity Capabilities: Includes workspace Run Configurations execution, provider-agnostic VCS status tracking, interactive terminal tabs, and 14 safe refactorings.

IntelliJ Native Architecture Highlights

Editable Side-by-Side Diff Viewer with Gutter Comments: Visualizes all file-modifying tool calls (full file updates, replacements, and line edits) using IntelliJ's native DiffRequestPanel. Features overlaid comic-style speech bubbles on the gutter and full two-way write-back so developers can tweak proposed code in PENDING state before execution.
WolfTheProblemSolver Compiler Diagnostics: Real-time background tracking of compilation errors and unresolved references, feeding diagnostic alert badges directly into the ASI's per-turn RAG context.
ShellTerminalWidget Integration: Interactively drives and manages native IntelliJ terminal tabs, typing commands and capturing scrollback perception streams.
Project View Context Badges & Actions: Badges in-context files with ● AGI markers and adds per-session context curation popup menus to the Project explorer.

How to Install the IntelliJ Plugin

You can install Anahata ASI in IntelliJ IDEA, Android Studio, or any JetBrains IDE via our Custom Repository (recommended for 1-click updates) or directly from disk:

Method A: Via Custom Plugin Repository (Recommended)

1. Open Plugins Settings: Go to Settings (or Preferences on macOS) → Plugins.
2. Manage Repositories: Click the gear icon (⚙️) at the top right and choose Manage Plugin Repositories...
3. Add Repository URL: Click + and paste the catalog URL: https://asi.anahata.uno/intellij/plugins.xml (or dev-plugins.xml for dev snapshots), then click OK.
4. Install & Auto-Update: Search for Anahata ASI in the Marketplace tab, click Install, and restart. IntelliJ will now check for updates automatically!

Method B: Manual Install from Disk (.zip)

1. Download Distribution Archive: Click the Download Plugin (.zip) button above.
2. Install from Disk: In Settings → Plugins, click ⚙️ → Install Plugin from Disk...
3. Select File & Restart: Select the downloaded .zip file, click OK, and restart the IDE. The Anahata ASI tool window will appear in your right-hand sidebar!

IntellijJava Toolkit (1 Tool)

An IntelliJ-aware JIT compilation engine that compiles and executes model-generated Java code against the project's live OrderEnumerator classpath with child-first classloader prioritization.

compileAndExecuteInProject(code, path, incDeps, incTests, opts) Prompt

Compiles and runs Java scripts against an open project's compiled module outputs and dependencies.

BatchCodeRefiner Toolkit (1 Tool)

Advanced structural Java refinement engine utilizing PSI AST-guided batch operations. Injects, updates, deletes, or moves entire class members atomically within a single undoable write command.

refine(CodeRefinementBatch batch) Prompt

Executes an atomic batch of structural member modifications on a Java source file and returns a unified diff.

CodeRefiner Toolkit (4 Tools)

AST-based maintenance operations for Java files: structural import insertion, import optimization, IDE reformatting, and member annotations.

addImports(filePath, imports, save) Prompt

Structurally adds imports by resolving FQNs against the project classpath.

optimizeImports(filePath, removeUnused, save) Prompt

Shortens FQNs to simple names and cleans up unused imports.

reformat(filePath, save) Prompt

Reformats a file using the project's active IDE code-style rules.

addAnnotation(filePath, memberFqn, annotation, save) Prompt

Adds an annotation to a class, method, or field identified by its canonical FQN.

CodeModel Toolkit (16 Tools)

High-performance PSI type index exploration: type discovery, member browsing, source retrieval, Javadoc inspection, and hierarchy resolution.

findTypes(query, caseSensitive, preferOpen, start, size) Always

Index-based search across all open projects (IntelliJ Ctrl+N).

loadTypeSources(javaType) Always

Registers a type's source file as a managed resource.

loadTypeSourcesByFqn(fqn) Always

One-shot source loading for known class FQNs.

getTypeJavadocs(javaType) Always

Retrieves the Javadoc documentation for a given type.

getTypeJavadocsByFqn(fqn) Always

Javadoc retrieval for known class FQNs.

getMemberSources(member) Always

Retrieves source code for a specific Java member.

getMemberSourcesByFqn(memberFqn) Always

Source loading for known member FQNs.

getMemberJavadocs(member) Always

Retrieves Javadoc documentation for a specific member.

getMemberJavadocsByFqn(memberFqn) Always

Javadoc retrieval for known member FQNs.

getMembers(javaType, nameQuery, start, size, kinds) Always

Lists fields, constructors, methods, and inner classes.

getMembersByFqn(fqn, nameQuery, start, size, kinds) Always

Jump straight to members of a known class FQN.

findTypesInPackage(pkg, kindFilter, recursive, start, size) Always

Scans a package for types with optional recursion.

getSubtypes(javaType, depth) Always

Explores implementations and subclasses for a JavaType.

getSubtypesByFqn(fqn, depth) Always

Builds recursive implementation trees by FQN.

getSupertypes(javaType, depth) Always

Explores inheritance base classes and interfaces for a JavaType.

getSupertypesByFqn(fqn, depth) Always

Builds recursive inheritance trees by FQN.

Refactor Toolkit (14 Tools)

Transactional refactoring tools driven by IntelliJ's JavaRefactoringFactory and ReferencesSearch engines.

rename(filePath, newName) Prompt

Safe rename of a top-level class updating all workspace references.

renameMember(filePath, memberFqn, newName) Prompt

Renames a class member across all open projects.

safeDelete(filePath, searchComments) Prompt

Verifies remaining usages before deleting a class.

whereUsed(filePath, searchComments) Always

Finds all references/usages of a class in all open projects.

whereUsedMember(filePath, memberFqn, searchComments) Always

Finds all usages of a specific class member.

moveClass(filePath, targetPackage) Prompt

Moves a class to a different package, updating references.

moveMembers(filePath, memberFqns, targetClassFqn) Prompt

Moves static members to another class.

copyClass(filePath, targetPackage, newName) Prompt

Copies a class to another package, fixing package statements.

pullUpMembers(filePath, targetSuperclassFqn, memberFqns) Prompt

Pulls members up to a superclass.

pushDownMembers(filePath, memberFqns) Prompt

Pushes members down to subclasses.

inlineMethod(filePath, memberFqn) Prompt

Inlines a method, replacing call sites with its body.

changeMethodSignature(filePath, memberFqn, name, retType) Prompt

Updates name and return type, preserving parameters.

extractSuperclass(filePath, newSuperclass, memberFqns) Prompt

Extracts a new superclass from existing class.

extractInterface(filePath, newInterface, memberFqns) Prompt

Extracts a new interface with declared members.

Debugger Toolkit (13 Tools)

Platform-agnostic debugger automation built on IntelliJ's XDebuggerManager. Manages line breakpoints, drives debug sessions, steps through code, inspects frame variables, and evaluates expressions asynchronously with bounded synchronous waits.

listBreakpoints() Always

Lists all line breakpoints configured across open projects (file, line, enabled state, condition).

setLineBreakpoint(filePath, line) Prompt

Sets a line breakpoint at the specified 1-based line number for any JVM language.

removeLineBreakpoint(filePath, line) Prompt

Removes any line breakpoint at the given file and 1-based line number.

clearAllBreakpoints() Prompt

Removes all line breakpoints across all open projects in a single shot.

listDebugSessions() Always

Lists active debug sessions and their current state (running, stopped, paused at location).

debugRunConfiguration(name, timeoutSeconds) Prompt

Launches a run configuration under the debugger; optionally awaits breakpoint hit or termination.

resumeDebugSession() Prompt

Resumes execution in the current paused debug session.

stepOver() Prompt

Steps over the current line in the active debug session.

stepInto() Prompt

Steps into the call at the current line in the active debug session.

stepOut() Prompt

Steps out of the current method in the active debug session.

stopDebugSession() Prompt

Terminates the active debug session.

evaluateExpression(expression, timeoutSeconds) Prompt

Evaluates an expression in the top frame of the paused debug session.

listFrameVariables(timeoutSeconds) Always

Lists visible variables (name and evaluated value) in the top frame of the paused session.

Gradle Toolkit (2 Tools)

Interacts with Gradle projects linked to IntelliJ's external-system framework. Discovers linked Gradle project structures and executes Gradle tasks with bounded latch waits and streaming output in the IDE Run window.

getGradleProjects() Always

Lists all Gradle projects linked to open IntelliJ projects.

runGradleTask(projectPath, tasks, scriptParameters, timeoutSeconds) Prompt

Runs one or more Gradle tasks (e.g. ['clean','build']) and waits synchronously for completion.

Hints Toolkit (2 Tools)

On-demand inspection and code analysis via DaemonCodeAnalyzerImpl with programmatic quick-fix application.

getFileHints(filePath, minSeverity) Always

Lists inspection/annotator highlights (errors, warnings) with line numbers.

applyHint(filePath, line, fixName) Prompt

Applies an inspection quick-fix on a given line automatically.

IntellijMaven Toolkit (5 Tools)

Deep Maven integration via MavenProjectsManager, MavenRunner, and native MavenDomProjectModel. Features atomic XML dependency manipulation, synchronous goal execution with EventSpy telemetry, and unified repository index searches.

getDependencies(projectPath) Always

Lists resolved dependencies grouped by scope representing the actual runtime classpath.

getDeclaredDependencies(projectPath) Always

Ultra-compact list of dependencies directly declared in pom.xml grouped by scope and groupId.

runGoals(projectPath, goals, profiles, properties, options, skipTests, vmOptions, timeoutSeconds) Prompt

Executes Maven goals synchronously, streaming stdout/stderr to tool logs and saving full log to disk.

addDependency(projectPath, groupId, artifactId, version, scope, classifier, type, beforeDependency, afterDependency, comment) Prompt

The definitive super-tool for adding dependencies with relative positioning and dependencyManagement support.

searchMaven(query, groupId, artifactId, includeAllVersions, stableOnly, startIndex, pageSize) Always

Unified Maven repository index search supporting exact coordinate lookup, groupId navigation, and keyword matching.

IntellijProjects Toolkit (10 Tools)

Workspace and lifecycle management for IntelliJ projects. Provides open/close controls, synchronous project compilation via CompilerManager, and comprehensive Project SDK detection and configuration.

getOpenProjects() Always

Returns absolute paths of all currently open projects in the IDE.

openProject(projectPath) Prompt

Opens a project directory programmatically in the IntelliJ IDE.

closeProjects(projectPaths) Prompt

Closes specified open projects in the IDE.

buildProject(projectPath, rebuild) Prompt

Compiles (make) or rebuilds a project synchronously and returns error/warning diagnostics.

saveAllDocuments() Always

Saves all unsaved editor documents across the IDE to disk.

getProjectSdk(projectPath) Always

Returns the currently configured Project SDK name, version, and home path.

listAvailableSdks() Always

Lists all configured SDKs in IntelliJ and available system JDK home paths.

setProjectSdk(projectPath, sdkNameOrHomePath) Prompt

Configures the project SDK by registered name or by JDK home directory path.

autoConfigureProjectSdk(projectPath) Prompt

Automatically detects and configures the best available JDK for the project.

setProjectProviderEnabled(projectPath, enabled) Always

Enables or disables the project context provider in the prompt.

RunConfigurations Toolkit (2 Tools)

Discovers and launches IntelliJ run, debug, and test configurations directly. When executed with a timeout, captures structured test results (passed/failed/ignored) via the platform test-event bus.

listRunConfigurations() Always

Lists all configured run/debug/test configurations across open projects.

runConfiguration(name, timeoutSeconds) Prompt

Launches a run/test configuration by name with optional synchronous execution wait.

IntellijVCS Toolkit (22 Tools)

Universal Version Control and Local History automation suite powered by IntelliJ's Git4Idea and ChangeListManager. Full repository lifecycle management from status inspection and diffing to branching, stashing, and commit dialog activation.

gitStatus(path) Always

Gets fine-grained Git status (branch, tracking, modified/untracked files) for a repository or file.

getVcsStatus() Always

Provider-agnostic VCS status reporting all local changes grouped by change list.

getDiff(filePath, revision) Always

Generates a unified diff for a file against repository base or a specific revision.

gitDiff(repoPath, baseRevision, targetRevision, filePath, summaryOnly) Always

Generates a Git diff between two branches or revisions, optionally comparing against working copy.

gitLog(repoPath, branchOrRevision, maxEntries, filePath, author, noMerges, grep) Always

Retrieves the commit history log for a Git repository, branch, or revision.

gitShow(repoPath, branchOrRevision, filePath) Always

Reads and returns the content of a file from a specific Git revision without switching branches.

gitBlame(filePath, startLine, endLine, revision) Always

Retrieves line-by-line authorship and commit history (Git Blame) for a file.

getInfo(path) Always

Gets the Version Control metadata and repository root for a file or directory.

getHistory(filePath, maxEntries) Always

Queries unified chronological history combining VCS commits and IntelliJ Local History.

gitBranches(repoPath, includeRemote) Always

Lists local and remote tracking branches in a Git repository.

gitInit(directoryPath) Prompt

Initializes a new Git repository in the specified directory.

gitAdd(filePaths) Prompt

Stages one or more files into the Git index.

gitCommit(repoPath, filePaths, message, authorName, authorEmail) Prompt

Commits changes headlessly in a single shot (auto-stages files if specified).

gitOpenCommitDialog(repoPath, filePaths, message, authorName, authorEmail) Prompt

Opens the native IntelliJ Commit tool window with pre-filled message and selected files.

gitPush(repoPath, remote, branch, force) Prompt

Pushes committed revisions to a remote Git repository.

gitFetch(repoPath, remote) Prompt

Fetches updates from a remote repository into local tracking branches without modifying working files.

gitPull(repoPath, remote) Prompt

Pulls changes from a remote repository into the active branch (fetch and merge).

gitCheckout(repoPath, branchOrRevision, createIfMissing) Prompt

Checks out a Git branch or revision, optionally creating the branch if missing.

gitCreateBranch(repoPath, branchName, startRevision) Prompt

Creates a new Git branch at a specified revision or current HEAD.

gitDeleteBranch(repoPath, branchName, force) Prompt

Deletes a local Git branch.

gitMerge(repoPath, branchOrRevision, fastForwardPolicy) Prompt

Merges a branch or revision into the current active branch.

revert(filePath) Prompt

Discards unstaged modifications in a file, reverting to the pristine base revision.

Terminals Toolkit (3 Tools)

Integrated terminal management via TerminalToolWindowManager.

openLocalTerminal(title, workingDir) Prompt

Opens a local terminal tab and returns its tracking ID.

typeCommand(terminalId, command) Prompt

Types and executes a command sequence in a terminal tab.

closeTerminal(terminalId) Prompt

Closes a tracked terminal tab by ID.

Editor & IDE Toolkits (6 Tools)

Direct editor navigation, log monitoring, and tool window queries.

Editor.openFile(filePath, scrollToLine) Always

Opens a file in the editor and optionally scrolls to line.

Editor.getOpenFiles() Always

Lists all open editor tabs and their modification state.

Editor.closeAllFiles() Prompt

Closes all files currently open in the editor.

IDE.monitorLogs(grepPattern, tailLines) Always

Tails the idea.log stream with optional grep filtering.

IDE.selectIn(path, target) Always

Reveals and selects a file/folder in the Project view, Structure view, or OS file manager.

IDE.getToolWindowsMarkdown() Always

Returns a Markdown report of all registered tool windows.

Shared Core & Platform Toolkits

Every IntelliJ AGI session inherits the full suite of foundation toolkits from anahata-asi-core and anahata-asi-swing:

AsiContainer

Manages sub-AGI sessions, active model registries, and executes single-shot multimodal media generation (images, audio, video).

Resources

URI-centric resource management, surgical text replacements with byte-level checksums, and optimistic locking validation.

Session

Maintains the active session task dashboard/summary, toggles toolkits dynamically, and manages context provider prompt inclusion.

History

Controls the revolutionary Context Window Garbage Collector (CwGC), bulk-pins critical code blocks, and prunes stale turns.

Shell

Cross-platform headless process execution across Bash, PowerShell, and CMD with separate stdout and stderr streaming.

Screens

High-resolution screen captures and live rectangular region sharing streamed directly to multimodal model turns.

Audio

Audio recording from selected host input devices and audio playback across local output lines.

Host

OS-level process management, active PID inspection, and process termination controls.

Context Providers

The sensory array of the ASI in IntelliJ. These providers feed the RAG prompt with high-salience workspace metadata on every turn:

Project Overview

Injects authoritative project metadata, Maven packaging, and automatically synchronizes project-specific behavioral instructions from anahata.md.

Project Structure

Source-root-aware map built from IntelliJ's ProjectRootManager and ProjectFileIndex, distinguishing production vs test packages.

Project Alerts

Real-time compiler diagnostics via WolfTheProblemSolver, alerting the model to unresolved symbols and compilation errors.

Open Editors & Snippets

Renders a live table of open files, the focused editor's caret line, active text selections, and currently visible viewport lines.

Tool Windows

Real-time snapshot of every registered tool window across all open projects, reporting on visibility and active focus.