explaingit

techthos/gadget

Analysis updated 2026-07-26

5TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A Go library for MCP servers that renders interactive UI components like tables and forms directly inside chat windows like Claude or ChatGPT.

Mindmap

mindmap
  root((repo))
    What it does
      Interactive chat UI
      Go MCP library
      Inline CSS and JS
    Widgets
      Table widget
      Form widget
      Menu widget
      Card and CardList
    Tech stack
      Go
      TypeScript
      MCP Protocol
    Use cases
      Chat data tables
      Chat forms
      Tool launcher grids
    Audience
      Developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build an AI assistant that replies with an interactive data table users can sort and filter.

USE CASE 2

Create a chat-based form letting users submit structured data without leaving the conversation.

USE CASE 3

Design a launcher menu of tiles that opens specific tools inside a chat window.

What is it built with?

GoTypeScriptMCP

How does it compare?

techthos/gadgetagentigris/agentfundalange/tinyclaude
Stars555
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatehardmoderate
Complexity3/55/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires familiarity with Go and MCP server setup, uses a pre-release API that may still change.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

gadget is a Go library that lets an MCP server ship interactive UI components, like data tables and forms, inside a chat window. MCP, or Model Context Protocol, is a standard that connects AI assistants to external tools and data. With gadget, a developer can build an app that responds to a user request with a full, interactive interface right in the conversation, rather than just plain text. The library provides several ready-made widgets. The Table widget handles typed columns, sorting, filtering, pagination, and row selection with bulk actions. The Form widget supports ten field types, client-side validation, and submit or cancel actions. The Menu widget acts as a launcher grid of tiles, where each tile opens a specific tool. CardList and Card widgets handle collections and single records, with features like scrolling card strips and status badges. The same widget can render in a light or dark theme depending on the host application's appearance. A key feature is that everything is self-contained. All CSS and JavaScript is inlined into the HTML output, with no external files or network requests needed. This means a developer can compile their entire application into a single Go binary, making deployment straightforward. The widgets automatically pick up the host's design tokens, so they match the look of whichever app is rendering them, such as Claude, ChatGPT, or VS Code. The project is currently marked as pre-release, which means its APIs may still change. It includes examples to help developers get started, such as a demo server for listing, editing, and deleting users, and a fake host harness for testing different widget variants in a sandboxed environment. The core runtime works with any Go MCP implementation, and there is a specific adapter for the official Go SDK. The README points to separate documentation files for widget references, theming details, and architecture notes. The project is licensed under MIT.

Copy-paste prompts

Prompt 1
Using the gadget Go library, build an MCP server tool that returns a Table widget listing users with sortable name and email columns.
Prompt 2
Create a gadget Form widget with fields for name, email, and role, including client-side validation for required fields.
Prompt 3
Set up the gadget fake host harness to test how a CardList widget renders in both light and dark themes.
Prompt 4
Build a gadget Menu widget that launches three tools: create user, list users, and delete user.

Frequently asked questions

What is gadget?

A Go library for MCP servers that renders interactive UI components like tables and forms directly inside chat windows like Claude or ChatGPT.

What language is gadget written in?

Mainly TypeScript. The stack also includes Go, TypeScript, MCP.

What license does gadget use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is gadget to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is gadget for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.