Skip to content

Roadmap & API status

The whole platform Silo is building toward — and what's real today. This page is the source of truth for what you can build on now vs. what's still being designed. As a primitive ships, its badge flips from

planned to stable.

The goal: a small, stable core, after which most new features are extensions built on these primitives — first-party and third-party alike. When the core table below is all green, we've hit that inflection point.

Legend: stable available now ·

experimental usable, may change ·planned designed, not yet implemented

Core (ctx) primitives

PrimitiveStatus
Registration (register*)stabledocs
executeCommandstabledocs
ctx.workspacesstabledocs
ctx.layoutstabledocs
ctx.process (persistent sessions)stabledocs
ctx.process.exec (one-shot subprocess)stabledocs
ctx.processes (foreground process observer)stabledocs
ctx.agents (coding-agent activity + resume hints)betaHow it works
Extension-API mechanism (getExtension)stabledocs
ctx.editors (documents)stabledocs
ctx.terminals (terminal tabs)stabledocs
Tab adornments (editors / terminals setIcon / setIndicator / setActivity / …)stabledocs · ADR 0029 · ADR 0030
Activity chrome (Activity kind + SDK ActivityGlyph)stableADR 0030 · workspace status + tab adornments
ctx.terminals.registerTabDecoration (deprecated shim)stabledocs — prefer bindIndicator / bindActivity
Side-panel tab adornments (owner handle)plannedRFC 0022
ctx.registerToolbarItemstabledocs · RFC 0021
ctx.terminals.focusstabledocs
ctx.terminals.subscribeOscstabledocs
ctx.terminals.getActive / subscribeActivestabledocs
ctx.terminals.subscribeOutputstabledocs
ctx.workspaces status / badges (set / clear / bind)stabledocs · adorn verbs; registerStatus / registerBadge deprecated shims
ctx.workspaces.registerSectionstabledocs
ctx.filesstabledocs
ctx.theme + ctx.theme.registerPresetstabledocs
ctx.dnd (drag-and-drop)stabledocs
useServiceState (reactive reads)stabledocs
useFocusGroup (keyboard nav for a group)stabledocs
Tooltip (styled hover popup)stabledocs
Design-system components (modal kit)stabledocs · RFC 0016
--silo-list-* tokens + .silo-scrollstabledocs
ctx.ui (pickers + notify w/ actions + menus)stabledocs
ctx.ui (confirm / prompt)stabledocs
ctx.ui.showModal (custom modal content)stabledocs
ctx.ui.openExternal (open a URL out)stabledocs
ctx.ui.getActiveSelectionTextstabledocs
ctx.net (server-side HTTP, bypasses CORS)stabledocs
ctx.system (OS, arch, Silo version)stabledocs
ctx.search (cross-file content search)stabledocs
ctx.search (replace-in-files)planneddesign
ctx.ui (quickPick / progress)planneddesign
ctx events (typed Event<T>)stabledocs
ctx.editors.getState / subscribestabledocs
path (cross-platform path utilities)stabledocs
per-extension settings (page + persistence)stabledocs
ctx.storage (global / workspace)stabledocs
ctx.secrets (host-mediated credentials)plannedRFC 0004
ctx.webview (cross-origin iframe bridge)stabledocs
context-menu contributions (workspace, terminal/link, editor/tab, terminal/tab)stabledocs
context-menu contributions (explorer/item)planneddesign
ctx.workspaces.registerPropertyPagestabledocs

Extension-owned features

Features that ship built-in but are implemented as extensions on the primitives above — so a third party could build the same.

FeatureStatusBuilt onPublishes
Gitstableprocess.exec + filesGitAPI
Markdown PreviewstableregisterEditor + files
Terminalstableprocess sessions + dock panel
Theme managementstabletheme + files + ui
Search (find-in-files)stablesearch + editors

Each ships as a real extension package (core.* / silo.*) that touches the app only through ctx — the same surface a third party gets. The core primitives they lean on (the terminal's process sessions, the theme domain service) still live in the host; that split is by design. The decisions behind the model are recorded as ADRs in docs/decisions/.

Extension distribution

How a third-party extension gets from a package into the running app. See Extensions (install / Browse / updates) and Publishing an extension.

CapabilityStatus
Author against @silo-code/sdk from npmstabledocs
Install from local folderstabledocs
Enable / disable / uninstall (runtime)stabledocs
First-party built-ins listed (disable-only, branded)stabledocs
Load on launch + persisted registrystabledocs
silo install / silo uninstall CLIstabledocs
npx create-silo-extension scaffoldstabledocs
Install from URL (tarball / GitHub release)stabledocs
Install from npm registrystabledocs
Update checking + applystabledocs
Extension registry — browse / search / installstabledocs · catalog
Registry website (extensions.getsilo.dev)stableextensions.getsilo.dev
Private / team registries (federated index)planneddesign
Permissions / capability modelstabledocs

Updates: "Update checking + apply" is the P1 registry feature — the app polls registry.getsilo.dev, shows a badge, and applies Update / Update all from Settings → Extensions. That is not the same as Safe update below (stage → validate → swap + rollback on a bad install), which is still planned.

Extension model & safety

The contract + lifecycle work that makes the system survivable at scale. The designed pieces are RFCs in docs/proposals/ (esp. 0005 / 0006); the rest is tracked in the table above.

CapabilityStatus
Manifest id / path validationstable
Declarative contributes + activation eventsplanned
engine compatibility enforcementplanned
Sandbox / capability gating (untrusted code)planned
Storage cleanup on uninstallplanned
Safe update (stage-validate-swap + rollback)planned
Failed-load error surfacing + collision reportingplanned

Designed surfaces (planned)

The shape of each planned surface is now designed in an RFC under docs/proposals/ (subject to change until it ships):

Planned surfaceRFC
ctx.ui slice 2 — quickPick / inputBox / progressRFC 0001
Typed ctx events (Event<T>, domain-owned, no global bus)RFC 0002
ctx.secrets — host-mediated credentials (storage global / workspace shipped)RFC 0004
Declarative contributes + activation eventsRFC 0005
Extension permissions + sandboxRFC 0006
Extension authoring toolchainRFC 0007
Package format + remote install (GitHub / npm)RFC 0008
Language intelligence (TS/JS via tsserver)RFC 0009
Context-menu contributions (explorer/item, editor/tab, terminal/tab)RFC 0013

Tooling

Not part of the extension SDK — host-side developer/test surfaces.

SurfaceStatus
silo <path> CLIstabledocs
Automation RPC (dev)experimentaldesign
Nightly release channelstabledocs

silo <path> CLI stable

A terminal entry point: silo <dir> foregrounds (or launches) Silo and opens/activates a workspace for that folder; silo <file> opens the file in the active workspace. Built on tauri-plugin-single-instance — a second launch is forwarded to the running instance rather than opening a new window. Install the command from File → Install silo Command in PATH. See the silo command.

Automation RPC experimental

A dev-only loopback HTTP RPC for driving the real running app from a test suite, CI, or an agent — works around macOS having no WKWebView automation hook. Excluded from release builds (Cargo automation feature + frontend DEV guard); in dev it's always on but every request must carry an X-Silo-Automation header and a loopback Host, so a web page you visit can't drive it. Ops include ping, exec (run a registered command), activeElement / editorsDetail (focus introspection), workspace/file test-driver ops, contextKeys, and eval. See docs/automation.md.