skyflo

Skyflo Command Center

The Command Center is Skyflo’s operator interface. It provides real-time visibility into agent execution, inline approval controls for mutating operations, and team administration, backed by SSE streaming from the Engine. It surfaces tool-level audit history, live streaming output, and approval controls.

See docs/architecture.md for full system context.

How It Connects to the Backend

The UI communicates with the Engine in two ways:

Data Flow (Chat + Tools)

1) User submits a prompt in ChatInput. 2) ChatInterface calls ChatService.startStream() which fetches NEXT_PUBLIC_API_URL/agent/chat with Accept: text/event-stream. 3) SSE events from the Engine are parsed in sseService.ts and dispatched to ChatInterface callbacks:

Conversations, history, profile, and team admin use server-side routes under src/app/api/* that forward to API_URL with the correct cookies/headers.

Authentication

Environment Variables

Defined in .env.example:

# Server-side BFF -> Engine (used by src/app/api/* routes)
API_URL=http://localhost:8080/api/v1

# Client-side SSE -> Engine (used by ChatService in the browser)
NEXT_PUBLIC_API_URL=http://localhost:8080/api/v1

Notes:

Getting Started

cd ui
yarn install
yarn dev
# http://localhost:3000

Development Commands

Command Description
yarn dev Start development server with hot reload
yarn build Build for production
yarn start Start production server
yarn lint Run ESLint to check for code issues

Production Build

yarn build
yarn start

next.config.mjs outputs a standalone build suitable for containerization. See deployment/ui/ for Nginx and container examples.

Key Components

Server Routes (BFF)

Troubleshooting

Tech Stack

Component Technology
Framework Next.js 14
Language TypeScript 5
Styling Tailwind CSS
UI Primitives Radix UI + shadcn/ui
State Management React + Zustand
Streaming Server-Sent Events
Markdown react-markdown
Animations framer-motion

Community