SERP — VS Code Extension
Developer tooling for SERP — architecture explorer, live deployment control, runtime inspector, and AI sessions scoped to every part of your system.
What is SERP?
SERP (Service · Event · Runtime · Platform) is a C++ framework for building distributed multiprocess systems on embedded and automotive platforms.
serpcore provides the runtime — typed service interfaces, properties, notifications, calls, a threading model, and IPC transports (in-process, D-Bus, gRPC).
serpgen takes a declarative spec (serp.sidl) and generates the C++ interfaces, transport wiring, process skeletons, and build system. You fill in the business logic; the framework handles the rest.
This extension is the IDE companion for SERP projects.
Getting Started
Install the SERP dev package first — it provides serpgen and the runtime libraries the extension depends on.
No project yet? The Explorer panel shows a Create from Template button — one click scaffolds a complete working project.
Explorer
 |
Browse the full workspace: deployments, services, spec files, and source files — all in one tree.
Toolbar: Refresh · Validate · Generate · Open Dashboard
Right-click a spec node to validate or regenerate individual files.
Keyboard Shortcuts
| Action |
Windows / Linux |
macOS |
| Validate specs |
Ctrl+Alt+V |
Ctrl+Option+V |
| Generate |
Ctrl+Alt+G |
Ctrl+Option+G |
| Open Architecture Dashboard |
Ctrl+Alt+D |
Ctrl+Option+D |
| Build |
Ctrl+Alt+B |
Ctrl+Option+B |
| Run |
Ctrl+Alt+R |
Ctrl+Option+R |
| Stop |
Ctrl+Alt+S |
Ctrl+Option+S |
|
Active Deployment
 |
Build, run, and stop the active deployment. Shows processes, the services they host, interfaces each service implements or uses, and direct links to impl and generated files.
Toolbar: Select Deployment · Open Diagram · Build · Clean Build · Run · Stop · Select Build Profile (dev-grpc / dev-dbus / release)
Right-click the deployment: Clean Build · Restart · Show Status · Open Diagram
Right-click a service: Open Implementation · Open Generated Files
|
Architecture Dashboard
An interactive live view of the deployment — process cards with their services, live CPU/MEM stats, and one-click access to sessions and impl files.
Open with Ctrl+Alt+D or the Dashboard button in the Explorer toolbar.
- Green dot on a card — process running; red — stopped
- Blue dot on a service chip — Claude Code session is linked
- Click a service chip — detail panel with impl file, interfaces, Open Impl / Open Session
- Click a process card — Start / Stop / Restart / Logs controls
Runtime Inspector
Click any service chip on the Dashboard to open the detail panel. The Runtime Inspector exposes the full interface of the service — call methods with typed input fields, read and watch properties, and subscribe to notifications. All directly on the running process, no client code needed.
Works over gRPC (dev-grpc profile, macOS) or D-Bus (dev-dbus, Linux).
SERP AI
Work on a SERP project is decomposed into focused AI sessions — each with its own role, context, restrictions, and workflow. This keeps every session small and purposeful: Claude knows exactly what it owns, what it can touch, and what the goal is.
When a session opens, it calls the SERP MCP server (serp.session.getContext) to load its role definition — responsibility, allowed writes, forbidden writes, and the knowledge documents relevant to that role. The MCP server also manages session state, summaries, validation, and cross-session context inheritance.
Architecture — designs service decomposition and deployment topology. Can write to specs/ only. Cannot touch src/ or gen/.
Services — one session per service implementation. Scoped to src/services/<group>/<service>/ and its tests. Cannot change specs or other services. Expand to add Sequence sub-sessions for individual interaction flows.
HMI — one session per HMI component.
 |
Debug — three sessions tied to the active deployment:
| Session |
Role |
Can write |
| Analyze |
Runtime Investigator |
nothing — read-only |
| Debug |
Runtime Investigator |
nothing — probes live runtime only |
| Fix |
Deployment Fixer |
src/services/**, tests/** |
|
Click a node → opens the linked Claude Code session. Right-click → Unlink · Old Sessions…
A context guard hook keeps Claude current between messages — before each prompt it diffs watched files against a snapshot taken at last getContext call and injects only what changed. A scope guard hook enforces write restrictions on every file edit — gen/ is always blocked, and writes outside the session's allowed paths are rejected before Claude can act on them.
Session commands (type in any message to trigger the corresponding MCP tool):
| Command |
Action |
serp.status |
Show current session role, workflow stage, and scope |
serp.sync |
Sync session state with the MCP server |
serp.update |
Pull in updated context from parent sessions |
serp.refresh |
Reload scope context and reset file snapshot |
serp.summarize |
Write a summary of completed work |
serp.validate |
Run serpgen validate against current specs |
PlantUML Diagrams
Generate an architecture or sequence diagram for any deployment straight from the spec — rendered in a VS Code webview, no external server needed.
Active Deployment toolbar → Open Diagram or right-click deployment → Open Diagram