Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Proto Atlas — Protobuf & gRPC Schema VisualizerNew to Visual Studio Code? Get it now.
Proto Atlas — Protobuf & gRPC Schema Visualizer

Proto Atlas — Protobuf & gRPC Schema Visualizer

yeoyujie

| (0) | Free
Interactive graph of your .proto files: messages, enums, services and how they connect. Live preview, cursor sync, focus mode and export.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Proto Atlas

Protobuf & gRPC schema visualizer for VS Code. See how your .proto files connect.

Marketplace version CI License: MIT

Proto Atlas opens a live, interactive graph next to your .proto file. Messages, enums and services appear as cards, and edges run from each field or rpc to the type it uses. The graph follows your cursor as you type, and clicking any card or field takes you back to its source line.

Status: early release (0.1.x). The core experience is in place and tested; the roadmap lists what is next. Bug reports and feedback are very welcome.

Install

Requires VS Code 1.100 or later (desktop, or a browser host such as vscode.dev).

  • Marketplace: open the Extensions view, search for Proto Atlas, and select Install. Or run ext install yeoyujie.proto-atlas from the Quick Open prompt (Ctrl+P).
  • From a .vsix: run code --install-extension proto-atlas-<version>.vsix.
  • From source: see Build from source.

Features

  • Live schema graph. Message, enum and service cards with field rows, oneof groups, map fields and nested types. Edges start at the exact field row that references a type; streaming rpcs animate.
  • Two-way cursor sync. Moving the caret in the editor highlights the matching card and row and pans it into view. Clicking in the graph reveals that line in the editor.
  • Navigation that scales. ELK layered layout, arrow-key spatial navigation, double-click to focus on a node, breadcrumbs, a minimap and a zoomed-out overview mode for large schemas.
  • Whole-workspace awareness. Imports resolve across files using buf.yaml / buf.work.yaml, your workspace folders or custom import roots. Well-known google.protobuf.* types work without their sources.
  • protoc-style diagnostics. Unresolved types, missing imports, duplicate or reserved field numbers and names, proto3 enum-zero rules and more, shown on the affected cards and rows. Files with syntax errors still render whatever parsed.
  • proto2 and proto3, including groups, required fields and reserved ranges.
  • Fits your theme. Styled entirely from VS Code theme tokens, and checked in Dark Modern, Light Modern and High Contrast.
  • Works on the web. Runs in desktop VS Code and in browser hosts such as vscode.dev and github.dev.
  • Plays well with others. Syntax highlighting only applies to .proto files no other extension claims, so it won't conflict with vscode-proto3 or Buf.
  • Private. No telemetry and no network calls. Your schemas never leave your machine.

Usage

Open any .proto file, then use one of:

  • the Open Preview to the Side button in the editor title bar
  • Ctrl+K V (Cmd+K V on macOS)
  • Proto Atlas: Open Preview or Proto Atlas: Open Preview to the Side from the Command Palette

The preview follows whichever .proto editor is active and updates as you type.

Settings

Setting Default Description
protoAtlas.importPaths [] Extra import roots, like protoc's -I. Relative paths resolve against each workspace folder. buf.yaml and buf.work.yaml are detected automatically.
protoAtlas.hideWellKnownTypes false Hide google.protobuf.* types (such as Timestamp) from the graph. Fields still show the type name.

Build from source

Requires Node.js 24 (see .nvmrc) and pnpm 10.

git clone https://github.com/yeoyujie/proto-atlas.git
cd proto-atlas
pnpm install
pnpm package     # builds and writes a .vsix to apps/extension/
code --install-extension apps/extension/proto-atlas-*.vsix

Or run it without installing: open the repo in VS Code and press F5 (see Development).

Roadmap

  • Command palette for jumping to any type, focus mode, hover cards
  • Export the graph as SVG/PNG
  • Diagnostics overlay and visual regression tests
  • Open VSX release
  • Binary data inspector: decode protobuf payloads against your schema

Contributing

Issues and pull requests are welcome. For a bug report, include the VS Code version, the extension version, and, where you can share it, a minimal .proto that reproduces the problem.

Before opening a pull request, run pnpm lint, pnpm typecheck and pnpm test; CI runs the same checks plus the integration and end-to-end suites. Commit messages follow Conventional Commits (feat(core): ..., fix(webview): ...).

Development

pnpm install
pnpm build              # webview (Vite) + extension (esbuild)
pnpm test               # Vitest unit and snapshot tests across all packages
pnpm test:integration   # extension tests in a headless VS Code web host
pnpm test:e2e           # Playwright end-to-end tests against VS Code web
pnpm typecheck
pnpm lint               # Biome; `pnpm format` to fix

Press F5 in VS Code to launch the Extension Development Host (desktop and web launch configs are included). To work on the UI on its own, pnpm samples generates graph data from fixtures/ for the webview's browser dev harness.

Architecture

.proto sources ──► tree-sitter parse ──► extract (per file, cached) ──► link ──► ProtoGraph
                                                                                   │
                       webview (React Flow + ELK) ◄── typed messages ◄── GraphView projection

Only files that change are re-parsed, so a single-file edit rebuilds the graph in well under a millisecond on the bundled fixtures.

Path Purpose
packages/core Pure TypeScript: parser → binder → ProtoGraph → projections. No vscode, no React.
packages/protocol Typed, runtime-validated (Valibot) host ⇄ webview messages.
packages/webview React 19 + Tailwind v4 UI rendered inside the VS Code webview.
apps/extension The VS Code extension host, bundled for both desktop (Node) and web.
fixtures Sample proto workspaces used by tests, snapshots and the dev harness.

Acknowledgements

  • coder3101/tree-sitter-proto (MIT): the vendored parser grammar
  • googleapis/googleapis (Apache-2.0): real-world protos used as test fixtures
  • React Flow and Eclipse Layout Kernel (ELK): graph rendering and layout

License

MIT © yeoyujie

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft