v1.0.0

alpic-ai/skybridgev1.0.0May 18, 2026by harijoe

AI Summary

The major v1.0 release featuring API simplification, a comprehensive devtools overhaul with tunneling and auditing, and production readiness support.

Key Highlights

  • API simplification: `registerWidget` merged into `registerTool`
  • Devtools revamp with HTTP tunneling, LLM playground, and automated Audit
  • Production readiness: Cloudflare Workers support and Dockerfile added
  • Import path renamed from `skybridge/web` to `skybridge/vite`
  • Project layout changed from `server/` + `web/` to flat `src/` structure

Breaking Changes

  • `registerWidget` removed and merged into `registerTool`
  • `mountWidget` removed from public API
  • `skybridge/web` import path renamed to `skybridge/vite`
  • Project layout changed from `server/` + `web/` to flat `src/`
  • All widget terminology renamed to `view`
  • `result` removed from `CallToolResponse`

New Features

  • Unified tool registration
  • HTTP tunneling for local environment connection
  • LLM playground integration
  • Automated server compliance auditing
  • Cloudflare Workers support
  • Docker containerization support
  • Auto-mounting of views via Vite plugin

Full Release Notes

šŸ‘Øā€šŸ³ We cooked! Skybridge v1 is finally on the table:

**API simplification**: We ditched `registerWidget` for a unified `registerTool` entry point. In your tool config, simply set the type-safe `view.component` field, and Skybridge takes care of the rest. We also exposed the underlying Express instance so you can add non-MCP endpoints to your server.

**Devtools revamp**: Our beloved MCP inspector gets a radical makeover plus a bunch of new features:
- Plug your local env to ChatGPT and Claude with one-click **HTTP tunneling**
- Chat with your app on the **LLM playground**
- Run automated **Audit** to make sure your server is compliant with OpenAI and Anthropic store guidelines

**Production readiness**: We now support Cloudflare Workers, and we added a Dockerfile to make container deployment easy as can be.


## How to migrate?

1. Install [the latest version of the skill](https://docs.skybridge.tech/devtools/skills)
2. Run the prompt inside your favorite coding agent: `Migrate my app based on https://github.com/alpic-ai/skybridge/releases/tag/v1.0.0`

Having issues? Join [our Discord](https://discord.gg/2jc92tZQdn) to get help from the maintainers.


## Changelog

### registerWidget removed — merged into registerTool (PR #701)

The separate registerWidget call is gone. Widget/view config moves into registerTool as an optional view field:

```tsx
// before
server.registerTool("my-tool", schema, handler)
server.registerWidget({ component: "my-view", ... })
```

```tsx
// after
server.registerTool(
  { name: "my-tool", ...schema, view: { component: "my-view" } },
  handler
);
```

### mountWidget removed from public API (PR #701)

The Vite plugin now auto-mounts views found in the views directory. Any manual mountWidget call should be removed.

```tsx
// before
import { mountWidget } from "skybridge/web";

export default function SearchFlights() { ... }
mountWidget(<SearchFlights />)
```

```tsx
// after
export default function SearchFlights() { ... }
```

### skybridge/web import path renamed to skybridge/vite (PR #720)

The Vite plugin subpath export changed:

```tsx
// before
import { skybridge } from "skybridge/web";
```

```tsx
// after
import { skybridge } from "skybridge/vite";
```

### server/ + web/ project layout dropped (PR #701)

The old two-directory layout (src/server/, src/web/) is no longer supported. Skybridge now uses a flat src/ tree with src/views/ for view files. The views directory is configurable in the provided skybridge plugin.

```
// before
ā”œā”€ā”€ server/
│   └── src/
│       └── index.ts
└── web/
    └── src/
        └── widgets/
            └── my-widget.tsx
```

```
// after
└── src/
    ā”œā”€ā”€ server.ts
    └── views/
        └── my-view.tsx
```

### All widget terminology renamed to view (PR #720)

#### useWidgetState renamed to useViewState

```tsx
// before
import { useWidgetState } from "skybridge/web";
```

```tsx
// after
import { useViewState } from "skybridge/vite";
```

#### widgetsDevServer renamed to viewsDevServer

```tsx
// before
import { devtoolsStaticServer, widgetsDevServer } from "skybridge/server";
app.use(await widgetsDevServer());
```

```tsx
// after
import { devtoolsStaticServer, viewsDevServer } from "skybridge/server";
app.use(await viewsDevServer());
```

### Removed `result` from CallToolResponse (PR #749)

As it does not exist in either mcp apps or apps sdk.


## Contributors

Thanks to everyone who contributed to Skybridge:
@harijoe, @paulleseute, @fredericbarthelet, @qchuchu, @valentinbeggi, @thleonard, @rodincave, @Rodriguespn, @csonigo, @khandrew1, @neil-ac, @brunobuddy, @jlgrimes, @mikeborozdin, @Sambego, @yannj-fr, @TheCodingAyush, @appledr1nker, @utkarshrana35, @udaykakade25, @asim48-ctrl, @thisisharsh7, @Jean-crack, @slackerzz.[v0.36.4](https://github.com/alpic-ai/skybridge/releases/tag/untagged-40d21d5e80278f0f7a90)