TinyGo in Zed Developer oxplot released tinygo-zed, a command-line utility that configures Zed's native Go tooling to support TinyGo embedded targets, addressing the lack of support for TinyGo's GOROOT, architecture, and build tags in gopls. The tool, installable via 'go install github.com/oxplot/tinygo-zed@latest', generates gopls settings and custom Zed tasks for building, testing, and flashing, enabling hover, completion, navigation, and diagnostics for TinyGo projects in Zed. TinyGo in Zed I’ve moved my embedded Go work to Zed https://zed.dev/ . It is super fast, pleasant and increasingly secure by default. For me it beats the shit out of messy VS Code: fewer layers, less interface debris and no feeling that my text editor is a browser wearing a tool belt. Zed is a native Rust application with a purpose-built, GPU-accelerated UI designed to render at 120 frames per second https://zed.dev/blog/videogame . Unfamiliar worktrees also open in Restricted Mode https://zed.dev/docs/worktree-trust , so project settings cannot start language or MCP servers until I explicitly trust the worktree. Speed without careless defaults. Rather nice. The TinyGo-shaped hole Zed’s native Go support uses gopls , but TinyGo targets have their own GOROOT , architecture and build tags. Without those values, gopls cannot properly understand packages such as machine or names such as machine.LED . So I wrote tinygo-zed https://github.com/oxplot/tinygo-zed to turn that procedure into one command. Install it alongside TinyGo, then run it from the project directory: go install github.com/oxplot/tinygo-zed@latest tinygo-zed init Choose a target when prompted. The utility reads its actual metadata from TinyGo, writes the corresponding gopls settings and adds custom Zed tasks for building, testing, size and allocation reports, and flashing. Open the directory in Zed, click Restricted Mode in the title bar and trust the worktree. Hover, completion, navigation and diagnostics should now understand the selected board, as in the screenshot above. If the board changes, use tinygo-zed target . After upgrading TinyGo, run tinygo-zed sync . That’s the whole trick: keep Zed’s native Go tooling and point it at the right reality.