Plugins, apps and mobile¶
VegaDūta runs in more places than the browser console. This page is the reference for each one:
what it does, how you get it, and where it really stands. It mirrors the public /plugins page
of the console, whose status list comes from web/app/components/plugins/surfaces.ts.
What is, and is not, in this repository
The platform side of plugins and apps is here: the public catalog API, the artifact upload and download endpoints, the console pages and the MCP server. The client builds themselves (the VS Code, JetBrains, Chrome and Edge extensions, the Eclipse plugin, the Android app and the Wear OS companion) are not part of this repository's source tree. They are built and distributed through the catalog described below, and each deployment decides what it publishes.
Where each one stands¶
| Surface | What it does | Status | How you get it |
|---|---|---|---|
| VS Code | Chat with agents, run workflows, explain/fix/refactor selected code, a coding agent that asks before every edit and command | Available | Download from the console's /plugins page and install from the file. Not on the VS Code Marketplace yet |
| JetBrains IDEs | The same chat, workflow runs and code actions in IntelliJ IDEA, PyCharm, WebStorm, GoLand and other IntelliJ-based IDEs, with inline completions | Available | Download from /plugins, install from disk. Not on the JetBrains Marketplace yet |
| Chrome | Side panel: ask about a page or selection, run a workflow, a browser agent that asks before it clicks or types | Available | Download from /plugins. Not on the Chrome Web Store yet |
| Eclipse | Chat plus explain, fix, refactor, tests, docs and review commands; no coding agent | Preview | Built, not offered for download |
| Microsoft Edge | The Chrome extension packaged for Edge | Preview | Not submitted to Edge Add-ons |
| Android app | Chat, quick tasks, workflows and approvals on a phone, with on-device AI on capable devices | Beta | Direct APK download (see Mobile). Not on Google Play |
| Wear OS watch | Approve or decline what an agent wants to do, from the wrist | Preview | Companion to the Android app. Not on Google Play |
| iPhone app | The same mobile experience for iPhone | In development | No build exists |
| Desktop agent | A command-line program that pairs your computer with your workspace and runs a local model for your workflows | Preview | Works from source; no packaged download |
| MCP server | Use your agents, workflows and knowledge base from any MCP client | Available | Part of every workspace: /mcp (Streamable HTTP), scoped API key |
"Available" means you can get it now. Everything else says plainly what is and is not ready; if
a status changes, update surfaces.ts and this table together. The VS Code, JetBrains and Chrome
rows say "Available" only when this deployment has published a build to its plugin catalog; when it
has not, the page shows them as Preview ("Built, but no build is published to the download catalog
yet.").
The VegaDūta platform itself (the Setup app for macOS, Windows and Linux, container images, the
Helm chart and the SDKs) is not on this page: the public /downloads page lists the installers of
the latest release.
The plugin catalog¶
The public marketplace page (/plugins) and the plugins' own update checks read one
unauthenticated endpoint:
GET /api/plugins/catalog
It returns the catalog version and one entry per plugin: id, displayName, description,
latestVersion, releasedAt, releaseNotes, artifact (fileName, sizeBytes, sha256) and
externalStoreUrl. Every nullable field is genuinely null until something is published: an entry
with artifact: null is shown as "coming soon", never as a dead download link. The SHA-256 is
computed by the server from the exact bytes it serves, so what the page displays is what the
download delivers; verify a download against it.
Publishing a build (operators)¶
-
Upload the file (platform admin credentials):
POST /api/platform/plugins/artifacts Content-Type: multipart/form-data pluginId=vscode&version=1.4.0&file=@vegaduta-1.4.0.vsixThe response carries the stored file name, size and SHA-256.
-
Point the catalog entry at that version by updating the platform setting
plugins.catalog(PUT /api/platform/settings/plugins.catalog) with the newlatestVersion,releasedAtandreleaseNotes. Until the setting exists the server serves a built-in default catalog with entries forvscode,jetbrainsandchromeand no artifacts. - The download is then served from
/api/plugins/artifacts/{pluginId}/{version}/{fileName}as an attachment with an exactContent-Length. - When you also publish to an official store, set
externalStoreUrlon the entry; the platform never invents one.
Mobile¶
There are two distinct things people mean by "mobile":
The Android app (beta). A direct-download APK. The console shows download panels (in
Channels → Mobile SDK and in the /try studio) only when you configure the build:
| Variable | Compose name | Meaning |
|---|---|---|
NEXT_PUBLIC_MOBILE_APK_URL |
Direct download URL. Empty hides every panel | |
NEXT_PUBLIC_MOBILE_APK_SHA256 |
Checksum shown beside the download | |
NEXT_PUBLIC_MOBILE_APK_VERSION |
Version label | |
NEXT_PUBLIC_MOBILE_APK_SIZE_MB |
Approximate size, so nobody starts a large download by surprise |
These are runtime values (window.__ENV; see web/docs/RUNTIME-CONFIG.md), read by
web/app/lib/mobileApp.ts. There is no default: a deployment that does not publish its own APK
shows no panel.
Device pairing (the platform side of the mobile SDK). The core devices module lets a phone
or other device pair with a workspace using a short-lived pairing code, then exchange commands,
notifications and usage events. Manage paired devices and generate codes in
Channels → Mobile SDK (/admin/channels?channel=mobile-sdk; the old /devices route
redirects there). Devices authenticate with their own credential, not a user session.
Editors, browsers and the MCP server in your own tooling¶
Anything that speaks MCP can use the platform without a plugin: point the client at the
workspace's /mcp endpoint with a grant key (vmcp_..., confined to the agents, workflows and
knowledge collections of its grant). An OAuth 2.1 mode exists but is off by default
(app.mcpserver.oauth.enabled). A request that carries an Origin header (a browser page) is refused
unless that origin is in app.mcpserver.origin.allowed; clients without an Origin header are
unaffected. The server speaks the handshake-based MCP revisions up to 2025-11-25, not the stateless
2026-07-28 revision. Details and open items: MCP specification alignment.
Grant keys are separate from the tenant REST API keys (vdak_...) described in
Extending. See also the MCP server entry in
Extending and the registry guide in
Registering a custom MCP server.
Related¶
- Site modes and public pages: where these surfaces are linked from.
- SDKs and dependencies: the Java and Python Agent SDKs and the REST clients, for building your own integrations instead of using the first-party ones.