Ctrl K
ComunidadGuías…

what-is-frontman.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# What Frontman Is

Frontman is an open-source browser-based AI coding agent for frontend work.

It runs inside your app at `/frontman`, shows chat plus live preview, lets a user click a UI element, describe a change, then uses runtime context to edit real source files and verify hot reload.

Core idea: the agent sees the running app, not only source code.

It can inspect:

- Live DOM
- Computed CSS
- Component/source mappings
- Screenshots
- Console/server logs
- Routes
- Build errors
- Project files

## Integrations Included

- `@frontman-ai/nextjs`
- `@frontman-ai/astro`
- `@frontman-ai/vite`
- WordPress plugin: `libs/frontman-wordpress`
- Browser/client UI: `@frontman-ai/client`
- Protocol client: `@frontman-ai/frontman-client`
- Shared schemas: `@frontman-ai/frontman-protocol`
- Server: Elixir/Phoenix app in `apps/frontman_server`
- Agent runtime: `apps/swarm_ai`
- Chrome extension app in monorepo
- OpenClaw skill support
- LLM providers: Anthropic, OpenAI, OpenRouter; docs also mention Fireworks and NVIDIA model catalog support
- Auth/OAuth: Anthropic/OpenAI OAuth, WorkOS for GitHub/Google login
- Observability: OpenTelemetry for Next.js logs/spans, Sentry on server

WordPress tools include:

- Posts/pages
- Gutenberg blocks
- Elementor layouts
- Menus
- Templates/template parts
- Widgets
- Site options/settings
- Media
- Cache tools
- WooCommerce when active

## Framework Integration Model

All JS framework integrations follow same pattern: dev-server adapter wraps shared Frontman core.

They:

- Serve Frontman UI at `/frontman`
- Expose tool endpoints like `/frontman/tools` and `/frontman/tools/call`
- Allow file read/edit/search through local dev server
- Resolve selected DOM/source locations back to files
- Relay tool calls from server through browser to dev server
- Run development-only; production builds strip it out

## Next.js

Package: `@frontman-ai/nextjs`

Hooks through:

- `middleware.ts` for Next 15
- `proxy.ts` for Next 16+
- Optional `instrumentation.ts` for OpenTelemetry

Captures:

- Console logs
- Build output
- Uncaught exceptions
- Unhandled rejections
- HTTP requests
- API routes
- Render spans

Uses circular buffer on `globalThis` so logs survive Turbopack/Next isolated execution contexts.

## Astro

Package: `@frontman-ai/astro`

Hooks through Astro integration API:

- `astro:config:setup`
- `astro:server:setup`

Does:

- Registers dev toolbar app
- Injects source annotation capture script
- Uses Vite middleware
- Reads Astro source annotations like `data-astro-source-file`
- Supports static, SSR, hybrid Astro modes

## Vite

Package: `@frontman-ai/vite`

Hooks through Vite plugin:

- `configureServer`
- Connect middleware

Supports:

- React
- Vue
- Svelte/SvelteKit
- SolidJS
- Vanilla JS/TS
- Other Vite-compatible frameworks

Adapts Node `IncomingMessage`/`ServerResponse` to Web API `Request`/`Response`, including SSE stream piping.

## WordPress

Plugin runs inside WordPress.

It:

- Serves `/frontman`
- Uses WordPress cookie auth
- Loads hosted Frontman UI assets
- Handles tool calls server-side in PHP
- Exposes WordPress-native tools
- Can technically run in production, unlike JS framework integrations, but is marked experimental

## Protocols

Frontman uses several protocol layers.

## JSON-RPC 2.0

Base wire format for client/server messages.

Used over Phoenix WebSockets for:

- `acp:message`
- `mcp:message`

Malformed messages intentionally crash channels rather than silently fail.

## ACP: Agent Client Protocol

Conversation/session protocol.

Handles:

- Session creation/loading/deletion
- User prompts
- Assistant streaming
- Tool call display updates
- Plan updates
- Turn completion
- Model/config updates

Events include:

- `UserMessageChunk`
- `AssistantMessageStart`
- `ToolCallStart`
- `ToolInputChunk`
- `ToolCallEnd`
- `TurnComplete`
- `PlanEntry`

## MCP: Model Context Protocol

Tool protocol.

Frontman uses MCP concepts for:

- `initialize`
- `tools/list`
- `tools/call`
- Tool discovery
- Tool execution
- Browser-side tools
- Relay tools to dev server

Flow:

```text
Agent -> Frontman Server -> Browser MCP client -> Dev Server tool endpoint
Agent <- Frontman Server <- Browser MCP client <- Dev Server result
```

## Relay Protocol

Frontman-specific framework relay.

Used when browser forwards MCP tool call to local dev server.

Includes:

- `remoteTool`
- `toolsResponse`

Transport:

- HTTP request to dev-server endpoint
- SSE stream for tool results

## WebSocket

Browser client connects to Frontman server at `/socket`.

Used for:

- Streaming agent responses
- Tool call routing
- Tool results
- Session state
- Reconnection/history replay

## HTTP/SSE

Used between browser and local dev server framework integration.

Used for:

- Tool calls
- Streaming tool results
- Source resolution
- UI asset serving

## OpenTelemetry

Used mainly in Next.js integration.

Captures:

- Logs
- Spans
- HTTP/request/render timing

Frontman writes OTEL processors into its log buffer so agent can query server/runtime context.

## OAuth/Auth Protocols

Uses:

- OAuth for Anthropic/OpenAI account connection
- WorkOS OAuth for GitHub/Google login
- Signed JWT/socket token for cross-origin WebSocket auth
- Session cookie for same-origin auth

## Not WebMCP

Repo docs say Frontman is not WebMCP. Similar philosophy, different layer.

WebMCP exposes website actions as browser tools. Frontman exposes dev/runtime/frontend-editing tools so an agent can map live UI back to source and edit code.