
fabiankuebler/fenced
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Агентное время выполнения чата, где разметка является протоколом
Обзор
Прототип агентного времени выполнения чата, где разметка является протоколом. 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
- Bun >= 1.0
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:
- Go to Google Cloud Console
- Create a project (or select an existing one)
- Enable the Gmail API, Google Calendar API, and People API
- Configure the OAuth consent screen (External, add your email as test user)
- Under Credentials → Data Access, add these scopes:
https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/contacts
- Go to Credentials → Create Credentials → OAuth client ID
- Choose Desktop app as the application type
- 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.
Рекомендуемые инструменты
Попробуйте другой запрос или уберите фильтр.
Установка
npx skillfish add fabiankuebler/fenced