vega·0.7.0

guide · v0.8

Getting started.

From brew install to your first supervised process in about sixty seconds.


§0   install

Single Go binary. SQLite ships with it. The dashboard is embedded in the binary, so the only thing you need to add is an LLM key.

Install and run.

Two commands. After the second one you have a Vega runtime listening on localhost:8080 with the dashboard, REST API, and event stream live.

$ brew install everydev1618/tap/vega

$ export ANTHROPIC_API_KEY=sk-ant-...

$ vega serve

▸ orchestrator listening on :8080

▸ dashboard ready at http://localhost:8080

▸ sse stream at /api/v1/events

Open the dashboard. Talk to Iris, your chief of staff. Tell her what you need; Hera will build the agents on the fly, and Mira will curate everyone's memory into a shared wiki as you go.


§1   first call

Make your first API call.

The identity endpoint is a safe round trip. It returns the orchestrator and builder display names and confirms the runtime is alive.

const res = await fetch('http://localhost:8080/api/v1/identity')

const identity = await res.json()

// { orchestrator: ..., builder: ..., product_name: ... }

other endpoints worth poking at first

GET/api/v1/agentsAll agents in this runtime
GET/api/v1/processesRunning + recently terminated processes
GET/api/v1/channelsMulti-agent channels
GET/api/v1/inboxItems waiting for review
POST/api/v1/agents/{name}/chatDM an agent · returns the response

§2   events

SSE keeps the wire open and pushes JSON frames. No websocket handshake, no auth dance for the local case, no polling.

Subscribe to live events.

EventSource opens a persistent stream. Agents push every state change to it as they happen.

const es = new EventSource('http://localhost:8080/api/v1/events')

 

es.addEventListener('process.completed', (e) => {

  const ev = JSON.parse(e.data)

  // dispatch to your store / queries

})

event types

process.started · process.completed · process.failed
workflow.completed · workflow.failed
agent.created · agent.deleted
chat.update · chat.event
channel.message · channel.thread_reply
supervisor.restart · supervisor.give_up

Per-agent live progress (token deltas, tool calls) lives on a separate stream:GET /api/v1/agents/{name}/chat/stream. Channels have an analogous pair.


§3   type-safe

Type-safe with @vega/api-types.

Generated from the OpenAPI spec the runtime serves. Pair withopenapi-fetchfor fully type-inferred client calls.

import createClient from 'openapi-fetch'

import type { paths } from '@vega/api-types'

 

const client = createClient({

  baseUrl: 'http://localhost:8080',

})

 

const { data, error } = await client.GET('/api/v1/identity')

// data is fully typed; error too

Until @vega/api-types is published to npm, vendor or path-import.


§4   production

Local vega serve skips auth entirely. Multi-tenant deployments need it.

Going multi-tenant.

Layer JWT auth on top of vega serve. govega ships a cmd/control-plane that issues RS256 tokens with a JWKS endpoint. Your runtime validates them locally.

Clients send Authorization: Bearer <token>on fetch and ?access_token=<token>on SSE. Production-grade login plugs into WorkOS or your IdP of choice.


§5   next

What's next.