Developer-facing visual frontend for the Stello agent SDK runtime.
It provides a graph view, chat view, memory inspector, lifecycle timeline, and tool log for a running Stello engine. The frontend keeps its own stable API shape under /api/engine/* and can work in two modes:
- external engine mode: proxy requests to a separate Stello backend
- local fallback mode: use the built-in mock runtime for UI development
Implemented:
- session graph page
- chat page with turn submission
- memory inspector
- lifecycle timeline
- tool call log
- proxy-compatible backend routes under
/api/engine/* - fallback mock runtime backed by
@stello-ai/core
Not implemented yet:
- WebSocket or SSE live sync
- split confirm dialog
- command palette and keyboard shortcuts
- production auth / multi-user concerns
Install dependencies:
pnpm installStart development:
pnpm devOpen:
http://localhost:3000
Create .env.local:
STELLO_ENGINE_URL=http://127.0.0.1:3001
STELLO_ENGINE_PREFIX=/api/engineMeaning:
STELLO_ENGINE_URL: origin of your external Stello backendSTELLO_ENGINE_PREFIX: path prefix on that backend, default/api/engine
When STELLO_ENGINE_URL is set, this app proxies its own API routes to the external backend. The frontend itself still talks only to these local routes:
GET /api/engine/sessionsGET /api/engine/sessions/:idGET /api/engine/memory/:idGET /api/engine/lifecycle/:idGET /api/engine/toolsPOST /api/engine/chat
If STELLO_ENGINE_URL is not set, the app falls back to the local mock runtime in src/lib/stello-runtime.ts.
More detailed contract notes are in INTEGRATION.md.
{
"sessions": [],
"currentSessionId": "session-id"
}{
"core": {},
"summary": "markdown",
"records": [],
"scope": "markdown",
"index": "markdown"
}{
"history": []
}{
"calls": []
}Request:
{
"sessionId": "session-id",
"message": "hello"
}Response:
{
"sessionId": "session-id",
"currentSessionId": "session-id",
"userMessage": {},
"assistantMessage": {},
"toolCalls": [],
"lifecycleTurn": {}
}/graph: session topology/chat: send a turn and inspect inline tool calls/memory: inspectcore.json,memory.md,records.jsonl/lifecycle: inspect turn steps and step payloads/tools: inspect aggregated tool history
Validated locally with:
pnpm lint
pnpm exec tsc --noEmit
pnpm exec next build --webpack