Roadmap
Shipped, in progress, planned.
What has shipped, what is in progress, and what is planned. Nothing marked planned is on the download page.
Rendered from ROADMAP.md in the repository, so this page and that file are always the same text.
shippedin progressplanned
Sirius is an advanced, agentic code editor: a fork of Code - OSS with chat, an agent that works across your files, Tab completion and next-edit prediction on a local model, and the model of your choice, hosted or on your own machine. It has no telemetry and needs no account.
This is its plan: what has shipped, what is under way, and what is still ahead. Nothing marked planned is in a download yet. Releases are listed on GitHub.
This is a living document. Status legend: ✅ done · 🔨 in progress · ⬜ planned.
Phase 0 — Foundation (mostly done)
- Fork Code - OSS and rebrand (
product.json: Sirius IDE,sirius://, open-vsx gallery) sirius-aiextension: multi-model router (Claude, Gemini, GPT, Ollama), context engine, tool executor, chat panel, inline chat, code actionstheme-sirius-star(Sirius Star Dark)- Remove upstream Copilot; make
sirius.aithe default chat agent - Branch hygiene:
mainmirrors upstream,siriusholds the fork - Repair the build pipeline (
npm cino longer dies on the removed Copilot dir;sirius-aiis registered in the gulp compilations, installed by postinstall, and esbuild-bundled for release;npm run watchno longer fans out to Copilot; the gitignoredcopilot.disabledbackup can no longer leak into a package) - First clean build + launch verification of the branded app —
gulp vscode-linux-x64-minproduces a 720 MBVSCode-linux-x64; launching it activatessirius.sirius-aiwith no extension-host errors and registers the Sirius Star Dark theme - AUR package builds against the pinned Node toolchain instead of the system one (Arch ships Node 26 / npm 12, both rejected by
preinstall) - Sirius-owned hygiene/copyright config
- Sirius branding in resources — the app shipped Microsoft’s Visual Studio Code mark, which is their trademark. Replaced across Linux, Windows, server favicons and macOS with a Sirius mark, legible down to 16px. The packaging templates named Microsoft as vendor and maintainer, and the deb
postinstinstalled Microsoft’s apt repository and signing key onto the user’s machine; that is gone product.jsondefects fixed — four Windows AppIds contained non-hex characters and would have broken the Inno Setup installer;webviewContentExternalBaseUrlTemplatepointed at Microsoft’s CDN pinned to an upstream commit;quality/updateUrl/downloadUrl/serverDownloadUrlTemplatewere absent, so update checks returned early- CI —
.github/workflows/sirius-release.ymlbuilds Linux x64/arm64 and Windows on a tag and publishes the assets the update server expects. An unsigned Windows build cannot block a Linux release
Phase 1 — A correct, secure model layer
Before any of the editing features: the model layer has to be safe to hand a paid API key and actually speak the providers’ current APIs.
- Keys in the system keyring —
SiriusSecretStoreover VS Code SecretStorage, with automatic migration of any key left insettings.jsonby an earlier build - Correct Anthropic requests —
output_config.effort(notthinking.effort), real effort levels, no sampling parameters on models that reject them, current model ids including Opus 5 / Sonnet 5 / Fable 5 - Prompt caching on the system prompt — cheaper, and cached reads do not count toward the input-tokens-per-minute limit
- Native tool calling — real
tool_use/tool_resulton Anthropic and Ollama, driven bySiriusAgentLoop; results now go back to the model instead of firing once as a side effect. Verified end to end against a local Ollama model across multiple tool rounds - Gemini: native tool calling and model discovery —
functionDeclarations/functionResponse, and the model list now comes from Google filtered togenerateContentinstead of being guessed. Also fixedgenerationConfig.thinking(the field isthinkingConfig) and the missingincludeThoughts, which meant thought parts were never returned. Wire format verified by stub; not exercised against the live API - One
OpenAICompatibleProviderreplaces the OpenAI-only adapter and serves OpenAI, OpenRouter, Groq, DeepSeek, Mistral, xAI, LM Studio, llama.cpp/vLLM and any custom endpoint from a table — twelve providers total, with native tool calling and/v1/modelsdiscovery. Verified against a local Ollama model through its OpenAI-compatible endpoint
Phase 1b — Adopt the editor’s own chat and agent surfaces
Upstream 1.118 already ships what the original roadmap planned to build by hand:
chatEditing (multi-file edits with accept/reject/checkpoints), inlineChat,
agentSessions, MCP, and a language-model tools service. Crucially,
vscode.lm.registerLanguageModelChatProvider is stable API at this fork
point, with a matching languageModelChatProviders extension point.
Registering into that seam is how every upstream chat and agent surface starts working against Claude, Gemini, GPT and Ollama at once — and it keeps improving on each rebase instead of drifting.
LanguageModelChatProvider— Sirius registers as a language-model vendor, so every provider is selectable through the editor’s own API. Verified from outside:vscode.lm.selectChatModels({vendor:'sirius'})returns Sirius models andsendRequeststreams a real response through the bridge- Retired the bespoke chat webview — the editor’s own panel was confirmed usable (it shows “Build with Agent”, not a sign-in wall), so 1,700 lines came out: the 974-line webview, the context engine, the webview-only code actions, and the agent loop upstream now drives. The four selection commands seed the editor’s chat instead
- Sirius supplies the agent tools — removing Copilot took 39
languageModelToolswith it and the workbench registers only two of its own, so agent mode could reason but not read, edit, search or run anything. Sirius’s executor is contributed aslanguageModelToolsand registered throughvscode.lm.registerTool, with confirmation moved intoprepareInvocationso writes are approved inline in the chat - Fixed the editor disabling the Sirius extension — the extension was absent from the registry entirely, so no models, no tools, and a dead “Auto” in the model picker. Two Copilot-shaped mechanisms were disabling it: the built-in chat enablement migration, which keeps the chat extension dormant until a sign-in that Sirius does not have; and extension unification, which folds a completions extension into a chat extension and so disabled Sirius from itself. Both now check whether they apply
- Edits go through the chat-editing session —
edit_filestreamsstream.textEdit, so the editor’s diff, checkpoint and accept/reject flow applies (sincecf02d47c535; the roadmap lagged the code by a month).create_filerefuses an existing path instead of prepending to it - Then, free from upstream: multi-file edits, @-mentions, checkpoints, MCP tools
Phase 1c — What is genuinely ours to build
- Tab completion — a real fill-in-the-middle path, not a chat path: native FIM against Ollama or llama.cpp, debounced, LRU-cached and cancellable (
inline/tabCompletionProvider.ts,inline/fimClient.ts) - Next-edit prediction — predicts the next change after each edit and offers it as a Tab-able diff (
inline/nextEditPredictor.ts). Default off; needs a local FIM model - Import from VS Code / Cursor / Windsurf / VSCodium — settings, extensions and recent workspaces (
importer/editorImporter.ts), verified by the headless probetest/harness/probes/import-from-vscode.js - Wired the dead
product.jsonhooks —generateCommitMessageCommandandresolveMergeConflictsCommandwere empty strings, so the SCM commit-message sparkle and the merge-conflict action rendered and did nothing. Both live now (scm/gitAssist.ts)
Phase 2 — Codebase intelligence
- Codebase indexing — embed the workspace (local or pluggable embeddings) for semantic retrieval. (Grow
context/contextEngine.tsinto an index with a vector store.) - Retrieval-augmented chat — automatically pull the most relevant code into context.
- Rules and ambient context — project rules steer the agent per project, and the active editor’s context is supplied automatically (
chat/projectContext.ts), verified bytest/harness/probes/project-rules.js - Repo memory / knowledge base — persistent project facts the agent reuses across sessions.
Phase 3 — Autonomous agents
- Agent Manager surface — a dedicated “Mission Control” view listing autonomous agents, their current task, plan, and status. (Build on upstream
src/vs/sessions/agent-sessions layer.) - Autonomous task agents — give a goal; the agent plans, edits, runs commands/tests, and reports back, working in the background.
- Artifacts — first-class plans, task lists, walkthroughs, and screenshots the agent produces and you review.
- Browser control — upstream already ships a Playwright-backed integrated browser with a full agent tool family (
open_browser_page,navigate_page,click_element,type_in_page,read_pageaccessibility snapshot,screenshot_page,run_playwright_code, drag/hover/dialogs) behindworkbench.browser.enableChatTools. Sirius turns that on by default and offers the tools in the agent’s extended tier (since v1.118.5) — proven live bytest/harness/probes/agent-tools.js(29 → 38 tools on a fresh profile).read_pageis the primary path for text-only local models;screenshot_pagereaches vision models through the image plumbing in the LM bridge - Drive your own Chrome — over CDP, for the real logged-in profile and sessions the integrated view cannot share. Decided 2026-09-27: the integrated browser is the default; this is a later opt-in, not a replacement
- Multi-agent orchestration — run several agents in parallel on subtasks.
Phase 4 — Polish & distribution
- Telemetry-free defaults and a clear privacy posture —
PRIVACY.mdsays plainly that Sirius collects nothing, that requests go straight to the chosen provider with no Sirius relay, and that local models mean nothing leaves the machine - Packaged installers and an update channel — the
[sirius]pacman repository is published by the release itself (build/arch/,build/sirius/publish-arch-repo.sh); deb, rpm and tarball come from the release workflow and are installed and run in Debian 12, Ubuntu 22.04 and Rocky 9 containers on every run before anything is published;build/update-serverimplements the protocol the editor speaks, backed by GitHub Releases and deployable as a single worker.INSTALL.mdcovers every route - The remote server —
sirius-server-linux-{x64,arm64}.tar.gzships with every release, the assetserverDownloadUrlTemplatehad promised since v1.118.0; x64 is gated at glibc 2.28 / GLIBCXX 3.4.25 and started in the install containers (arm64 the same from v1.118.7). Connecting through a real remote extension is the remaining local proof - User-facing strings name the running product — the workbench told Sirius users to “reload Visual Studio Code” and announced “Welcome to Visual Studio Code” to screen readers
- Onboarding walkthrough content written for Sirius (the strings are correct; the walkthrough still teaches upstream’s feature tour)
- Sign the Windows installer — SmartScreen warns on first run without it
- macOS builds — packaging exists, but needs an Apple Developer certificate for notarisation
- Update server deployed —
update.siriuside.comis live and serving, backed by an R2 manifest with GitHub as fallback; downloads ridedl.siriuside.comat zero egress - Settings UI for model providers and API keys
- Docs site
Near-term next steps
Released: v1.118.8 (2026-10-08). Nine releases so far, all three platform builds from CI,
provenance-attested, mirrored to R2 and served by the production update endpoint. v1.118.8
fixes what a file-and-line pass over the extension found: pasted and attached images reach the
models that can see them; Ask, Edit and Agent each get their own tools, and the agent’s file
tools stay inside the workspace; thinking is shown; Tab completion works on llama.cpp; local
servers can take an API key; commit messages use the default model; and Sirius no longer
overrides three of the editor’s shortcuts. v1.118.7 (2026-10-01) was the first with arm64
.deb and .rpm packages and the first whose arm64 builds hold the same glibc-2.28 floor as x64 — cross-compiled through upstream’s
sysroot and installed and run on arm64 hardware before Publish. v1.118.6 (2026-09-30) was
the first to ship the REH server and to publish the Arch pacman repository itself — no
manual step is left after a tag — and the first whose .deb/.rpm were installed and run
in clean Debian 12, Ubuntu 22.04 and Rocky 9 containers before Publish; it also carries the
new icon. v1.118.5 (2026-09-27) was the first with a .deb and an .rpm, and shipped
next-edit prediction, project rules, image input to every provider, size-aware tool
tiers, the integrated browser on by default, and prompted tools for local models with no
native tool API.
A full, current audit of what is done, what is live, what is verified and what is still open lives in PROJECT-STATE.md. It is the authoritative status document; this roadmap is the feature plan.
The open items, highest value first (2026-10-01; items 1–5 shipped in v1.118.6, item 6 in v1.118.7):
- Automate the Arch repo — every stable tag builds
sirius-ide-binfrom its own tarball, installs it on Arch, and publishes it to the pacman repository with downgrade and immutability guards. First real upload on v1.118.6:sirius.dblistssirius-ide-bin-1.118.6-1. - Prove the packages install —
.debon Debian 12 and Ubuntu 22.04,.rpmon Rocky 9, in clean containers, on every run: dependencies resolve, the editor shows a window, the server answers. Publish requires it. - Build the REH server —
sirius-server-linux-{x64,arm64}.tar.gz, gated at the floor the server promises remote hosts (x64 since v1.118.6, arm64 since v1.118.7). A real remote-extension connect is the remaining local proof. - The new icon — done on
sirius(3be0dda):build/sirius/make-icons.pyregenerates every platform icon file fromresources/sirius/icon.png(2048 px master) andicon-small.png(48 px and under). Shipped in v1.118.6. - Cut the tag — v1.118.6 (2026-09-30) carries all of the above;
PublishandPublish Arch repositorywere green on their first real run (36773757646). - arm64 sysroot cross-build — shipped in v1.118.7 (2026-10-01, tag run 36803858361):
arm64 is cross-compiled on the x64 runner through
upstream’s aarch64 glibc-2.28 sysroot, so the tarball, the server and — for the first
time — the
.deb/.rpmshare x64’s floor, and all four are installed and run on arm64 hardware (Debian 12, Ubuntu 22.04, Rocky 9) before Publish. v1.118.6’s native arm64 build needed glibc 2.38 and had no packages. - A website —
siriuside.comhas no DNS record; every user-facing URL points at GitHub. - Exercise Anthropic and Gemini against live APIs, and a vision model against the image-input path — all wired and probe-proven at the wire level, none exercised live.
Pick the next item and Sirius will implement it end to end.