Native harnesses, one considered interface: Grok Build, Kimi Code, Devin and any ACP agent CLI with execution history, inline approvals and shared sessions
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Bring Grok, Devin, Kimi Code, and other ACP agents into VS Code, Cursor, and IntelliJ IDEA. Keep their execution engines, with clear execution history, inline approvals, and follow-ups that keep work moving.
Execution history. View file reads, code changes, and command output in the conversation.
Queue and approvals. Queue messages while an agent is working, review plans, and approve actions in place.
Choose the agent. Keep the interface. Use Grok, Devin, Kimi Code, and other ACP-compatible CLIs with shared session and model controls.
Execution and to-dos
Follow-up messages
Inspect execution details and expand the to-do list.
Queue a request, send it, and read the full reply.
Captured from Acpira's interface with a scripted example session and edited camera zooms. Click an image for a larger view.
Why keep the native agents?
A harness helps determine how much of a model's capability reaches a real task. It runs the agentic loop: calling the model, executing tools, feeding results back, and managing the context for the next step. With the same model, differences in that loop can change task success, cost, and speed.
Acpira connects to agent CLIs through ACP, keeping model calls and execution in the selected agent. Kimi Code runs through kimi acp, Devin through devin acp, and Grok through grok agent stdio. Each CLI continues to own its tools and context compaction.
Acpira handles the interface around that work: code diffs, expandable execution details, to-dos, approvals, and queued follow-ups. These controls stay familiar when switching agents.
Related evaluations
The following evaluations examine model–harness combinations across different workloads. Their scores use different definitions and should be compared within each study.
With Qwen3.6-35B-A3B fixed, overall scores ranged from 56.7 to 68.3. Grading combines automated checks and model judging; the suite includes its authors' QwenPaw harness.
Research preprint; 106 offline tasks; 8 model backends × 6 configurable harnesses
Aggregate scores ranged from 52.4 to 76.2, averaged across the same model pool. Scores include completion and process quality; this is a configuration comparison, not a single-model pass-rate gap.
See evaluation notes for sources, metrics, and additional comparisons.
How it works
Acpira lives in the Activity Bar and drives official agent CLIs over ACP (JSON-RPC over stdio):
grok agent stdio
devin acp
kimi acp
any ACP-compatible command (added via the acpira.agents setting)
The extension manages the UI, sessions, permission approvals, accounts, and context budget. Model calls, agent execution, and context compaction stay in the CLIs.
Store multiple accounts per agent, paste or drop images, and attach workspace files with @. Conversations can live in the sidebar or in editor tabs.
Install
Install the extension from a .vsix (Extensions: Install from VSIX…) or from the Marketplace once it is published. For IntelliJ IDEA 2026.1 and later, install the plugin from the JetBrains Marketplace or from acpira-<version>-universal.zip (Settings → Plugins → ⚙ → Install Plugin from Disk…); the universal package carries Node.js for all supported platforms and supports remote development with different client and backend operating systems. Smaller platform-specific packages remain available on GitHub.
Install at least one agent CLI and keep it on PATH:
An agent without a CLI is greyed out in the menus; its settings page shows the vendor's install command (copy it, or run it in a terminal from there). Acpira notices a newly installed CLI on its own — no reload needed.
Click the Acpira icon in the Activity Bar (left). If it is hidden, right-click the Activity Bar and enable Acpira. The view can be dragged to the secondary sidebar. In IntelliJ IDEA, open the Acpira tool window on the right; its title bar action opens a conversation as an editor tab.
Get started
Install the agent CLI and sign in. Add or switch accounts from the agent menu; see Accounts.
Open the Acpira view from the Activity Bar, or run Acpira: Open Chat.
Choose an agent, mode, and model from the toolbar below the composer, then send a message. Follow-ups sent mid-turn are queued. The square button cancels the current turn.
Images and files
Paste or drop images (PNG, JPEG, GIF, or WebP, up to 10 MB). They are sent with the message.
Drag files from Explorer into the composer, or type @ to search the workspace. The agent reads those files itself. Image files dropped from Explorer are sent as images.
Text files dropped from the system file manager (up to 256 KB) are embedded in the message. Binary files are not supported.
Sessions, accounts, and secrets live in ~/.acpira (set ACPIRA_HOME to override). Cursor and VS Code share this directory; running both at once may overwrite the session list. After a restart, Acpira resumes the session when the agent allows it; otherwise the transcript remains available as read-only history. When context usage is high, Acpira can send /compact automatically; you can also compact from the context panel.
Accounts
Acpira can store several logins per agent and bind one account to each session. Credentials are supplied when a session starts, so picking a different account starts a new session.
The lower half of the agent menu lists saved accounts. Pick one to start a new session with it. Import CLI login reads the CLI’s existing local login (for Devin, ~/.local/share/devin/credentials.toml). Sign in in terminal runs the agent’s login command in an isolated directory and does not change your existing local login. This also works on remote servers: copy the link and paste the code.
Secrets are stored in secrets.json (file mode 600), not the OS keychain. accounts.json keeps metadata such as email and plan. Transcripts store only the account id.
Each session is bound to one account. A this session only option on the sign-in notice (for example Devin’s Sign in with browser) authenticates the current process only and is not saved.
Agents without an account list still use their own CLI login.
Roadmap
More agent integrations: Antigravity, Claude Code, OpenCode, Cursor CLI, Pi, and others through ACP or adapters.
One place to configure models and sync settings to different agents.
Shared Skills and MCP management.
Shared prompts and project instructions across harnesses.
pnpm install
pnpm build # host (esbuild) + webview (Vite)
pnpm probe grok # run initialize + session/new against a CLI directly
pnpm probe devin --import-local "Reply pong" # via the account layer: import local login → authenticate → one turn
pnpm typecheck && pnpm test
pnpm package # build a .vsix
cd idea && ./gradlew test buildPlugin verifyPlugin # IntelliJ plugin; buildMarketplacePlugin for the universal ZIP; buildPluginVariants for manual platform ZIPs
Press F5 to launch an Extension Development Host. Logs are in Output → Acpira. See AGENTS.md for the architecture map and protocol notes.
Stable GitHub Releases can publish the same VSIX to Visual Studio Marketplace and Open VSX, and the IntelliJ plugin to the JetBrains Marketplace, automatically. See Publishing Acpira for the one-time credentials and release steps.