Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>JiRack AgentNew to Visual Studio Code? Get it now.
JiRack Agent

JiRack Agent

CMS Manhattan

| (0) | Free
Agentic coding assistant powered by a JiRack model (Ollama or OpenAI-compatible endpoint). Every change is queued for your approval.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JiRack Agent for VS Code

An agentic coding assistant inside VS Code, powered by a JiRack model served over Ollama or any OpenAI-compatible endpoint. This is a port of the JiRack Agent for Eclipse plugin.

You describe a task in plain language; the agent inspects the project, reads the files it needs and works step by step. Every edit it wants to make is queued for your approval. Nothing touches disk until you apply it.

What you get

The same layout as the Eclipse JiRack Agent perspective, out of the box: Agent Chat on the right (Secondary Side Bar, full height) and Proposed Changes + Skills in the bottom panel, under the editor. After every install, reinstall or update a Welcome to JiRack Agent page opens in the editor area, the JiRack Agent tab opens in the bottom panel and the Agent Chat opens on the right (the JiRack status-bar menu → Welcome restores all three any time); normal restarts keep your layout; Proposed Changes is revealed when the agent queues its first change of a task.

View What it does
Agent Chat Transcript (readable Text tab + verbatim JSON tab for debugging), project picker, model dropdown (the jirack.models list plus Other… to type any name), Send / Stop / Build & Fix.
Proposed Changes One row per proposed edit (modify / new / delete / rename icons). Click a row to open its side-by-side diff with an Apply / Reject / Decide later menu. Tick the checkboxes of several pending changes and use Apply Checked / Reject Checked in the view title (one confirmation for all), or Check All. Right-click for Show Diff / Apply / Reject / Revert; with several rows selected (Ctrl/Shift+click) the action applies to all of them. Apply and Reject also appear in the diff editor's title bar.
Skills Reusable rules you approved. They are added to the agent's system prompt on every task, so it stays consistent with your preferences. When a task finishes well the agent may suggest one; you decide whether it is saved.

Plus a JiRack status-bar item (Settings, License, Registration, Version, Test Connection, Open Agent Chat) and the same commands in the Command Palette under JiRack Agent.

Requirements

  1. A model endpoint, either:
    • Ollama (ollama serve, default http://localhost:11434) with a JiRack model pulled, e.g. ollama pull cmsmanhattan/JiRackDeltaNet_27b-q4-reasoning (q4 wants ~18–24 GB RAM; q2/q3 lighter, q6/q8 heavier and more precise), or
    • the JiRack server (OpenAI-compatible) with a license key.
  2. VS Code 1.106 or newer (needed for extensions to place views in the Secondary Side Bar), with a folder open.

Install

From a .vsix: Extensions view → … → Install from VSIX…

From source:

npm install
npm run package          # compiles and produces jirack-agent-0.11.0.vsix

or open this folder in VS Code and press F5 to launch a development host.

Using it

  1. Open a folder. The Agent Chat is in the right side bar (Ctrl+Alt+B toggles it; the JiRack status-bar item → Open Agent Chat also brings it back). Pick the project (multi-root workspaces list every folder) and model.
  2. Type a task and press Enter (Shift+Enter for a new line).
  3. Review each proposal in Proposed Changes: click it (diff + Apply / Reject), or tick several and use Apply Checked. Applied changes are saved through VS Code's normal editor save, so Local History / Timeline records the previous version, and Revert restores the snapshot taken when the agent proposed the change (it warns first if the file has changed since).
  4. Build & Fix collects the errors VS Code already knows about (the Problems panel) and, if you set jirack.buildCommand, the output of that command when it fails, and hands them to the agent to fix. A clean result costs no model call.

Settings

JiRack Agent Settings (gear button on the chat, or the JiRack status-bar menu → Settings…) is a settings page like the Eclipse preference page: change fields, then Apply or Apply and Close; Restore Defaults refills the form without saving; invalid values are flagged inline and block Apply. It edits your User settings; a value equal to its default is removed from settings.json rather than written. The same settings are also in VS Code's own Settings (Open in VS Code Settings), which saves instantly.

Every setting is a standard VS Code setting declared in package.json with its real default, so Settings shows them pre-filled and you override them in settings.json like any other extension. These are the values that used to live in the Eclipse plugin's config/jirack.properties.

Group Setting Default
Connection jirack.endpoint http://account.jirack.com:9000
jirack.apiStyle openai (/v1/chat/completions); ollama = /api/chat
jirack.model JiRackOnlineAgent
jirack.models the 17 JiRack models offered in the chat dropdown
jirack.connectTimeoutSec / jirack.responseTimeoutMin 10 / 10
Generation jirack.temperature / jirack.numCtx / jirack.maxTokens 0.2 / 8192 / 8192
Behavior jirack.alwaysConfirm true
jirack.maxIterations 24 (1–32)
jirack.buildCommand empty (Build & Fix uses the Problems panel only)
Appearance jirack.chat.fontFamily / jirack.chat.fontSize empty / 0 = follow the editor UI font
jirack.chat.agentColor #1e90ff
Account jirack.registrationUrl / jirack.billingBaseUrl https://account.jirack.com
jirack.supportEmail support@jirack.com

jirack.endpoint, jirack.apiStyle and the account URLs are User settings only (application scope) and jirack.buildCommand is machine-scoped, so an opened repository cannot redirect your code to another server or run commands. URL settings that are not http/https are ignored in favour of the default.

For a fleet-wide default (e.g. pointing every install at a shared inference box), change the defaults in package.json and rebuild, or push the values through your organisation's VS Code settings management.

The license key (a JWT) is entered via JiRack menu → License… and stored in VS Code's secret storage (OS keychain), not in settings.json. It is sent as Authorization: Bearer … on every model request; the server validates it.

Agent protocol

The model must answer every turn with exactly one JSON action:

{"action":"list_files"}
{"action":"read_file","path":"src/main.ts"}
{"action":"search_files","query":"sum(","regex":false}
{"action":"propose_edit","path":"src/main.ts","rationale":"...","content":"<full new content>"}
{"action":"propose_patch","path":"src/main.ts","rationale":"...","search":"exact fragment","replace":"new fragment"}
{"action":"propose_delete","path":"src/old.ts","rationale":"..."}
{"action":"propose_rename","path":"src/a.ts","new_path":"src/b.ts","rationale":"...","content":"optional"}
{"action":"say","text":"..."}
{"action":"done","summary":"...","skill_title":"optional","skill_body":"optional"}

list_files, read_file and search_files are answered automatically (read-only). propose_* only queues a proposal. Paths must be project-relative and stay inside the project; .. and absolute paths are refused.

Differences from the Eclipse plugin

  • Perspective → default layout. VS Code has no perspectives; the views are contributed to the Secondary Side Bar (chat) and the bottom panel (Proposed Changes, Skills), which reproduces the Eclipse layout. Users can still drag them anywhere; View: Reset View Locations restores the default.
  • config/jirack.properties → VS Code settings. All its keys are now jirack.* settings with the same values as defaults. The JIRACK_* environment-variable and -Djirack.* overrides are gone; VS Code settings (User, Remote, or managed policy) are the standard way to override.
  • Native diff. The unified-diff text preview is replaced by VS Code's diff editor.
  • Project detection uses marker files (pom.xml, package.json, tsconfig.json, …) instead of Eclipse natures.
  • Build & Fix uses the Problems panel (and the optional jirack.buildCommand) instead of an Eclipse project build.
  • Eclipse-only pieces are gone: the product/splash/branding files, the Maven/.classpath system-prompt advice, and the .product configurations.
  • Fixes to bugs in the original, found while porting: the UI stayed stuck "busy" after Stop; collapsed tool results re-appended their (elided) marker every turn; and a reply cut off at the output limit could still queue a truncated file as a proposal (it is now treated as "no action" and the model is asked for a smaller step).

Development

npm install
npm run compile      # tsc -> out/
npm test             # unit + integration tests (node:test)

Layout: src/core/ is plain TypeScript with no vscode imports (protocol, engine, streaming client, config, license, skills) and is covered by tests against a real local HTTP server that speaks both the OpenAI-SSE and Ollama-NDJSON formats. src/ (top level) and src/ui/ are the VS Code layer; src/test/extension.test.ts exercises it end to end against an in-process mock of the vscode module.

Privacy

Prompts and the project files the agent reads are sent only to the endpoint you configure. There is no telemetry.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft