An AI coding assistant that shows its working, on your own models
eLLM Code lives inside VS Code and talks only to your organisation's eLLM endpoint. Describe a change and it reads the code, proposes a plan, edits across files as reviewable diffs, runs your tests with your approval and proves the result before it says "done". Every step is logged. Nothing leaves your environment.
Ask for the outcome, review the evidence
You never paste code into a chat window. eLLM Code reads the repository itself, cites the files and lines it used, and treats "done" as something to prove rather than announce.
Ask
Type a plain-language request, or right-click a file for Explain, Find Bug, Refactor, Generate Tests or Generate Documentation.
It reads
Activity lines show each file read, search and folder listing. Answers cite path and line, and a click opens the spot in the editor.
Reviewable diffs
Each create, edit or delete arrives as a card with the diff. Apply, Copy or Reject. Rejections are reported back so it never assumes a change landed.
Runs with your OK
Tests and builds are proposed as commands with a Run button and live output. Long jobs go to the background; dangerous commands always ask.
Verified
Imports, the project's own tests, formatter and linter, and a headless browser load for web apps. Timeouts count as unresolved, never as passes.
you › Add input validation to the signup form so the email field rejects addresses without an @. read src/forms/signup.js · src/lib/validate.js · tests/signup.test.js diff src/lib/validate.js +6 −1 [Apply] [Copy] [Reject] diff tests/signup.test.js +12 [Apply] [Copy] [Reject] checkpoint 2 files snapshotted, revert available run npm test [Run] [Reject] 14 passing (1.2s) verify static check clean · tests passed · lint clean ✔ judge request met: email without @ now rejected with a message devlog entry appended to .project-ai/devlog.md
Brakes, records and a way back
An agent that edits files and runs commands needs more than a good model. These are the controls that make eLLM Code usable in a college, a council or a defence supply chain.
Append-only audit log
One JSON line per event: each request with endpoint, model, user identity and active skills; each file read; each proposal and whether you applied or rejected it; each command with its exit code. Kept under the project folder, on by default.
Checkpoints and revert
A snapshot before every request and after every applied file, held in a shadow repository separate from your git history. Revert the last request or restore any checkpoint without losing the conversation.
Stop, and self-pausing
Stop kills everything it started, foreground or background. It also pauses itself with a stated reason when it loops, rewrites the same file repeatedly, or hits the per-task command limit, so a stuck model cannot burn credits unattended.
Keys in secret storage, two hosts only
The API key lives in VS Code's operating-system-encrypted secret storage, not in a settings file that could be committed or synced. The extension contacts your configured endpoint and, only when you confirm a Report Issue, your own GitLab. Telemetry and external providers are policy flags that are always treated as off.
Security review on demand
Review Changes reads your uncommitted diff like a reviewer would. Security Review looks specifically for injection, secrets, unsafe deserialisation and similar classes of problem, across the diff or the whole project.
Support bundle, secrets redacted
One markdown file with environment, configuration and recent traces, keys removed, that you can read before sending. Report Issue files it to your own GitLab project after showing you exactly what will be posted.
Plan whole features, remember the project, hand work to specialists
The same loop scales up from a one-line fix to a feature build, with the plan and the project's standing knowledge kept in files your whole team commits.
Plan Mode
Requirements, then architecture, then an ordered task list, with clarifying questions asked as a form inside the chat. You choose the autonomy:
- Guided pauses after each planning stage for your review
- Autopilot plans and builds through to verified completion
- Assist plans only and changes no code
- A guided intake form captures language, framework, storage, auth, platform and testing choices up front
- Standalone commands produce just the requirements, the architecture plan or the task breakdown
Project memory
A small .project-ai/ folder the assistant reads with every request and keeps current: purpose and coding standards, a never-change list, decisions, the task list and a devlog.
- Commit it and every developer's assistant shares the same context
- Close VS Code mid-build and type "catch up" the next day to carry on from the first unfinished task
- Compact it when it grows; every rule and decision is kept
Specialist agents
Focused roles with their own instructions, subject to the same approvals as the main assistant.
- QA Agent writes and runs tests and reports coverage gaps
- Documentation Agent keeps README, docs, architecture and devlog current
- Bug-fixing Agent reproduces, diagnoses, fixes and verifies, and is started automatically when a build ends with unresolved errors
- Add your own agent as a markdown file; results are labelled "unverified" if anything was left unchecked
Skills
Reusable guides that teach the assistant how to do one kind of work in your house style, included with every request for the session.
- More than ninety built in, from n8n automations to Moodle plugin development
- Add team skills to the workspace or point at a shared library; workspace skills override shared, shared override built-in
- A "Skill applied" chip shows when a reply drew on one, and the audit log records which were active
Works with your models
Built for gateways that serve more than one model, and for the realities of local hardware.
- Send planning, architecture and review turns to a stronger reasoning model, or let the eLLM router decide by intent
- Native function calling with automatic fallback to the text protocol for models that reject it
- Compact prompt option for small or quantised local models
- Commands generated for your OS and shell, including Remote-SSH, WSL and dev containers
- Sizes each conversation to the routed model's context window, trimming whole turns so a tool call is never split from its result
- Sends the developer's identity and an intent label (planning, code edit, review, bug investigation) so a shared gateway can attribute usage and route by task
- A built-in benchmark suite scores a new model or gateway configuration on protocol fidelity, context recall and decode speed before you roll it out
Web apps, checked in a browser
A static front-end can pass every syntax check and still throw on load.
- The preview serves the workspace locally, loads it in headless Chromium and captures console errors
- Ask "fix the preview errors" and it proposes fixes, then previews again
- Runs automatically before a Plan Mode web build is declared complete
For students, apprentices and anyone learning a new language
Colleges asked us for an assistant that teaches rather than just types. With Teaching Mode on, eLLM Code explains as it works, in the voice of a senior developer mentoring a junior.
- Each change carries a short "Why" note on the concept or pattern behind it
- Bugs are named by their class when fixed, with how to spot the next one
- Trade-offs are spelled out and review feedback reads as mentoring, not a terse diff
- If the model forgets the explanation, it is asked to supply it, so the teaching is always delivered
- A per-installation setting, so it can be on for learning projects and off for production work
Combined with local models and the audit log, it gives a computing department an AI pair-programmer that is safe to put in front of learners and simple to supervise.
- const res = await fetch(url); + let delay = 200; + for (let attempt = 0; attempt < 4; attempt++) { + try { return await fetch(url); } + catch (e) { await sleep(delay); delay = Math.min(delay * 2, 2000); } + }
Installed and connected in a few minutes
eLLM Code ships as a VSIX from your platform team and needs VS Code 1.85 or newer. Everything else is a chat-completions URL, a model name and a key.
- Install the extension. Run
code --install-extension ellm-code-<version>.vsix, or use Install from VSIX in the Extensions view. - Open a project. An eLLM item appears in the status bar and a chat icon in the editor title bar.
- Connect it. Enter your gateway's chat-completions URL and model identifier in the settings panel. The default model name is
ellm-code. - Set the key. Paste it once; it is held in secret storage and the field stays blank afterwards.
- Ask something. "What does this project do?" confirms the connection with a streamed, cited answer.
- Switch on what you trust. Auto-apply and Auto-run are per-repository toggles, off by default on every new project.
Step-by-step guides on InfoHub
Start
- Install eLLM Code and connect it to your endpoint
- Set or clear the API key
- Ask questions about your codebase
- Use the command menu and composer toggles
Change code safely
- Make code changes with reviewable diffs
- Run commands from the chat
- Roll back with revert and checkpoints
- Review changes and run a security review
- Understand the verification gates
Plan and build
- Plan and build a feature with Plan Mode
- Generate a specification with the guided intake form
- Set up and maintain project memory
- Run a specialist agent
- Apply skills to a session
Operate and govern
- Show the audit log and debug trace
- Stop, pause and continue a run
- Configure a reasoning model and native tool calling
- Turn on Teaching Mode
- Send identity and intent headers to the gateway
Tune and test
All eLLM Code guides →See it work on your own code
We will connect eLLM Code to a demonstration endpoint and walk through a real change in one of your repositories, or talk through what a private deployment looks like.
