Diaphora for VS Code
Bring Diaphora into your editor: author FML plans with full
language support, chat with the plan-authoring assistant, reach every MCP / APICP
tool configured on your Diaphora account, and run plans — all backed by the
account you sign in with.
Status: early development (0.0.1). Points at a local Diaphora stack by
default; the language server default targets the hosted endpoint.
Features
- FML language support — diagnostics, completions, hover, and go-to-definition
for
.fml files, driven by the remote frags language server (over
ws:///wss:///tcp://). No local binary to install.
- Diaphora account integration — OAuth2 sign-in (Hydra); tokens live in VS Code
SecretStorage, never in the webview.
- Chat assistant — a Secondary Side Bar chat for authoring Diaphora plans,
with editor-aware tools (read/validate the active
.fml, fold in LSP
diagnostics).
- MCP / APICP tools — the assistant can list and call the MCP servers and API
control-planes configured under your account's tool profile.
- Run plans from the editor — execute a
.fml plan through your Diaphora
account via the ephemeral run endpoint, with a live timeline and JSON result,
from the palette or the editor Diaphora context menu.
Getting started
- Install the extension and reload VS Code.
- Open a
.fml file, or run Diaphora: Open Chat from the Command Palette.
- Sign in when prompted — the chat splash walks you through creating an OAuth
client and authenticating against your Diaphora account.
- Point the settings below at your Diaphora environment if you are not using the
hosted defaults.
Commands
All commands are available from the Command Palette (prefixed Diaphora:).
| Command |
ID |
What it does |
| Diaphora: Open Chat |
diaphora.openChat |
Reveal the Diaphora Chat side bar (also an editor title-bar button). |
| Diaphora: Run Plan |
diaphora.chat.runPlan |
Run the active/selected .fml plan via your account. In the palette only when a .fml is active; also in the editor/tab/explorer Diaphora submenu. |
| Diaphora: Configure Tools (MCP / API) |
diaphora.chat.configureTools |
Open the web UI to edit your tool profile (MCP servers / API CPs). |
| Diaphora: Restart Language Server |
diaphora.restartServer |
Reconnect the FML language client (useful after changing the server URL). |
| Diaphora: Clear Auth Token |
diaphora.chat.clearTokens |
Sign out — clears the stored access token. |
| Diaphora: Clear OAuth Client Credentials |
diaphora.chat.clearClient |
Forget the per-user OAuth client credentials. |
| Diaphora: Clear All Auth (Token + Client) |
diaphora.chat.clearAll |
Clear both the token and the client credentials. |
Settings
All settings live under the diaphora.* namespace.
| Setting |
Default |
Description |
diaphora.server.url |
wss://api.diaphora.io/public/lsp |
Remote FML language server URL. Supports ws://, wss://, tcp://. |
diaphora.trace.server |
off |
LSP trace level (off, messages, verbose). |
diaphora.chat.webappBase |
http://localhost.me:5173 |
Diaphora web app base — opens the OAuth-client creation and tool-config pages. |
diaphora.chat.uiApiBase |
http://api.localhost.me |
API gateway (Oathkeeper) base — chat requests POST to {…}/ui/chat/gemini. |
diaphora.chat.oauthBase |
http://mcp.localhost.me |
OAuth2 issuer (Hydra) base — used for discovery/authorize/token. |
diaphora.chat.serverContextId |
plan-authoring |
Server-side chat context id (system-prompt selector). |
diaphora.chat.toolId |
_default |
Tool profile id used by the MCP tools. |
Changing diaphora.server.url reconnects the language client automatically.
Development
npm install
npm run compile # typecheck + build webview (vite) + bundle (esbuild)
npm run watch # esbuild watch mode
Press F5 to launch an Extension Development Host. The bundled test-workspace/
opens automatically with dev-time settings (see
test-workspace/.vscode/settings.json).
Design notes live under .blueprints/.
Packaging & publishing
npm run vsix # produce a .vsix you can sideload
npm run publish # vsce publish to the Marketplace (requires a PAT)
See the vsce and Open VSX documentation for publishing prerequisites.
License
MIT — see LICENSE.