FF

fabiankuebler/fenced

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

96 stars Качество 64 Тренд 15MIT

Агентное время выполнения чата, где разметка является протоколом

Обзор

Прототип агентного времени выполнения чата, где разметка является протоколом. LLM передает текст разметки, выполняет код TypeScript блокирует серверную сторону и отображает реактивные компоненты пользовательского интерфейса на клиенте - все в пределах одного ответа. Markdown - идеальный протокол для агентных помощников ИИ. Это то, что LLM уже понимают, смешивая прозу, исполняемый код и структурированные данные в формате, который не требует нового обучения. Будущее агентов ИИ — это... Markdown Откройте http://localhost:4000 в своем браузере. Навыки работы с почтой, календарем и контактами требуют учетных данных Google OAuth. Без них установите FENCED DISABLE GOOGLE SKILLS=true в вашем .env, чтобы пропустить загрузку этих навыков. 1. Перейдите в Google Cloud Console 2. Создайте проект (или выберите существующий) 3. Включите , , и 4. Настройте (External, добавьте свою электронную почту в качестве тестового пользователя) 5. Под , добавьте эти области: - https://www.googleapis.com/auth/gmail.modify - https://www.googleapis.com/auth/calendar - https://www.googleapis.

Обзор (машинный перевод)

Прототип агентного времени выполнения чата, где разметка является протоколом. LLM передает текст разметки, выполняет код TypeScript блокирует серверную сторону и отображает реактивные компоненты пользовательского интерфейса на клиенте - все в пределах одного ответа.

** Тезис:** Markdown - идеальный протокол для агентных помощников ИИ. Это то, что LLM уже понимают, смешивая прозу, исполняемый код и структурированные данные в формате, который не требует нового обучения.

theЧитайте сопроводительную статью: Будущее агентных ИИ-ассистентов…

Быстрый старт с Docker

Откройте http://localhost:4000 в своем браузере.

Переменные среды

| Переменная | Требуемое | Описание |

| OPENAI_API_KEY | Да | Ключ OpenAI API для генерации LLM | FENCED_DISABLE_GOOGLE_SKILLS 1 Настройка 1 для отключения навыков Google (почта, контакты, календарь). Рекомендуется при работе без учетных данных Google OAuth.

Местное развитие

Предпосылки

  • Bun >= 1.0

Настройка

Навыки Google (почта, календарь, контакты)

Навыки работы с почтой, календарем и контактами требуют учетных данных Google OAuth. Без них вложите [4] в свои.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

fenced

A prototype of an agentic chat runtime where markdown is the protocol. The LLM streams markdown text, executes TypeScript code blocks server-side, and renders reactive UI components on the client—all within a single response.

Thesis: Markdown is the ideal protocol for agentic AI assistants. It’s what LLMs already understand, mixing prose, executable code, and structured data in a format that requires no new training.

📖 Read the accompanying article: The Future of Agentic AI Assistants Is… Markdown

Quick Start with Docker

# Build the image
docker build -t fenced .

# Run with required environment variables
docker run -p 4000:4000 \
  -e OPENAI_API_KEY=your-openai-api-key \
  -e FENCED_DISABLE_GOOGLE_SKILLS=true \
  fenced

Open http://localhost:4000 in your browser.

Environment Variables

Variable Required Description
OPENAI_API_KEY Yes OpenAI API key for LLM generation
FENCED_DISABLE_GOOGLE_SKILLS No Set to 1 to disable Google skills (mail, contacts, calendar). Recommended when running without Google OAuth credentials.

Local Development

Prerequisites

Setup

# Install dependencies
bun install

# Create .env file
cp .env.example .env
# Edit .env with your OPENAI_API_KEY

# Run dev servers (two terminals)
bun run dev:server   # Bun API on port 4000
bun run dev:client   # Vite dev server with HMR

# Or use tmux to run both
bun run dev

Google Skills (Mail, Calendar, Contacts)

The mail, calendar, and contacts skills need Google OAuth credentials. Without them, set FENCED_DISABLE_GOOGLE_SKILLS=true in your .env to skip loading these skills.

1. Create OAuth credentials:

  1. Go to Google Cloud Console
  2. Create a project (or select an existing one)
  3. Enable the Gmail API, Google Calendar API, and People API
  4. Configure the OAuth consent screen (External, add your email as test user)
  5. Under Credentials → Data Access, add these scopes:
    • https://www.googleapis.com/auth/gmail.modify
    • https://www.googleapis.com/auth/calendar
    • https://www.googleapis.com/auth/contacts
  6. Go to Credentials → Create Credentials → OAuth client ID
  7. Choose Desktop app as the application type
  8. Download the JSON and save it as:
    packages/skills/src/google-auth/client_secret.json
    

2. Generate access token:

bun run google:renew-token

This starts a local server on port 3000, opens your browser for OAuth consent, and saves the token to token.json.

3. Verify it works:

bun run google:test-auth

4. Done. The agent can now use gmail, calendar, and contacts globals in agent.run blocks.

Открыть полный README на GitHub

Рекомендуемые инструменты

Попробуйте другой запрос или уберите фильтр.

Установка

npx skillfish add fabiankuebler/fenced
Новичок в MCP? Начните с руководства на mcpskill.org →