Skip to content
UseAgent star-knot markUseAgent
Esc
navigateopen⌘Jpreview
On this page

Getting started

What the platform is made of, and the shortest path from a clone to a running stack.

UseAgent is a multi-package repository with one product UI, one backend control plane, and shared TypeScript packages that define the cross-package contracts. Everything a user sees is a rendering of the backend’s durable event log.

The three moving parts

Frontend

A Next.js UI at port 3400. Chat, agent sessions, skills, playbooks, wiki, knowledge, memory hub, artifacts, secrets, learnings review, automations, dashboard, review, apps, and settings. Browser /api/* calls are proxied to the backend.

Backend

A Hono and Postgres control plane at port 3201. Auth, org scoping, runs, sandboxes, engines, knowledge, memory, skills, automations, artifacts, uploads, and connectors.

Shared packages

Runtime-neutral client and harness contracts, artifact renderers, and the deterministic conformance suite that guards them.

How a request travels

The command-lane round trip: Web UI, Slack, or an automation becomes a durable command, a run worker spawns a one-shot engine in a sandbox, native frames are canonicalized into the Postgres event log, and a thread-scoped SSE stream renders the session timeline.

The command-lane round trip: every entry point lands in the same durable command lane, and the UI only ever renders the canonical event log.

A command enters the lane

A prompt from the web app, Slack, or a scheduled automation becomes a durable command with an idempotency key, so retries never duplicate work.

A run executes in a sandbox

The backend claims a sandbox, spawns the engine one-shot, and streams its output into the event log as canonical steps.

The UI renders the log

The session view subscribes to a thread-scoped stream and reduces events into a timeline. Reconnects receive a fresh durable snapshot.

Read Quickstart to run it locally, then Repository map for where each piece lives. The Concepts section defines every term used above.

Was this page helpful?