Vantage UI

Features

A native console built from config you own — declarative YAML for structure, Rhai for logic, written by your AI agent.

Two languages, one config

Config in Vantage is two first-class languages, not one with an escape hatch. YAML declares the shape; Rhai carries the logic. Both live in the same git folder — and your agent writes both.

YAML — structure
# table/clients.yaml
title: Clients
source: main_db
columns: [name, email, balance]
has_many:
  - orders
context_menu:
  - title: View orders
    open_page: orders
    model: model.get_ref("orders", row.id)
Rhai — logic
// a computed label for each row
let label = row.name;
if row.balance < 0 {
    label += "  •  owes " + row.balance;
}
label

// drill two hops, in one expression
model.get_ref("clients", row.id)
     .get_ref("orders", client_id)

Queries, drill-downs, actions, computed fields and visibility are all real, diffable code.

Connect anything

One sidebar over every system you run. Reading and listing rows is baseline — every source does it. Beyond that, each driver advertises an honest capability contract, and the UI renders only the controls a backend really supports. Pick one to see what it can do.

SurrealDB

Read / write CBOR

The most complete driver — full querying, aggregation, pagination and dataset-level traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) check_circle

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

SQLite

Read / write Native (sqlx)

Full SQL driver via sqlx — sort, search, aggregation, offset pagination and subquery traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) check_circle

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

PostgreSQL

Read / write Native (sqlx)

CRUD, aggregation and dataset traversal via the SQL query builder; interactive sort/search push-down is being wired up.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) check_circle

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

MySQL

Read / write Native (sqlx)

CRUD, aggregation and dataset traversal via the SQL query builder; interactive sort/search push-down is being wired up.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) check_circle

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

MongoDB

Read / write BSON

Native aggregation pipeline with sort, search and pagination; record-level traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort check_circle
Quick search check_circle
Count check_circle
Aggregate — sum / avg / min / max check_circle
Custom page size check_circle
Random-access pages check_circle
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) remove

Editing data

Add records check_circle
Update records check_circle
Delete records check_circle

DynamoDB

Read-focused JSON

Key and scan-filter queries with cursor pagination. Often paired as a read source with writes routed elsewhere.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size check_circle
Random-access pages remove
Progressive (cursor) load check_circle
Drill to related record check_circle
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

GraphQL

Read-only JSON

Generic and Hasura dialects. Read rows, filter, and drill into related records.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

REST APIs

Read-only JSON

Paginated REST endpoints as tables, with filtering and record-level drill-down.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

AWS

Read-only JSON

Infrastructure (CloudWatch, IAM, S3 and more) browsed as tables, with equality filters pushed down to the API.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

CLI tools

Read-only JSON

Wrap a command (aws, kubectl, gh…) and read the JSON it prints as rows.

Retrieving data

Filter by conditions remove
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

CSV files

Read-only Typed text

Local files as tables, with in-memory filtering and record-level traversal.

Retrieving data

Filter by conditions check_circle
Server-side sort remove
Quick search remove
Count check_circle
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record check_circle
Drill across a dataset (subquery) remove

Editing data

Add records remove
Update records remove
Delete records remove

Append logs

Append-only JSONL

Append-only JSONL log files — write structured entries that the log viewer reads back live.

Retrieving data

Filter by conditions remove
Server-side sort remove
Quick search remove
Count remove
Aggregate — sum / avg / min / max remove
Custom page size remove
Random-access pages remove
Progressive (cursor) load remove
Drill to related record remove
Drill across a dataset (subquery) remove

Editing data

Add records check_circle
Update records remove
Delete records remove

Create / update / delete also depend on whether the source is writable — a query-sourced (Rhai) table is read-only by design. You can also read from one backend and write through another.

Build a real console — not just a grid

Everything you'd expect from an operational tool, described in config and rendered natively.

Data grids

Data grids

  • arrow_rightVirtualized — stays smooth past a million rows.
  • arrow_rightPersistent sort, quick search and column resize, per project.
  • arrow_rightBackground refresh with no flicker, on change or a schedule.
Tabs & drill-downs

Tabs & drill-downs

  • arrow_rightOpen related records in child tabs; pin the ones you keep.
  • arrow_rightChain multi-hop drill-downs from a row's context menu.
Forms, dialogs & actions

Forms, dialogs & actions

  • arrow_rightAdd and edit records in form dialogs; confirm destructive steps.
  • arrow_rightRight-click actions run operations or call your own services.
  • arrow_rightStatus workflows offer only the valid next transitions.
Detail sheet

Detail sheet

  • arrow_rightInspect a single row in a side sheet — every field, scrollable.
  • arrow_rightNo widening columns or scrolling sideways to read a record.
Charts & dashboards

Charts & dashboards

  • arrow_rightBar, line and pie charts arranged on a dashboard grid.
  • arrow_rightDropdown controls re-filter the whole dashboard reactively.
Log viewer

Log viewer

  • arrow_rightBrowse structured logs in-app, newest first, filtered by level.
  • arrow_rightAuto-refreshes as new entries arrive — no tailing a terminal.
  • arrow_rightReads AWS CloudWatch and other log sources as a live table.
  • arrow_rightAttach logs to one-click feedback straight from the view.

Your agent does the typing

Vantage UI embeds a local MCP server, so the coding agent you already use — Claude Code, Cursor, any MCP client — builds your console without leaving the editor.

chatDescribe the tool
arrow_forward
travel_exploreAgent introspects over MCP
arrow_forward
data_objectWrites YAML + Rhai
arrow_forward
boltApp hot-reloads

Read-only tools the agent gets

list_data_sources introspect_schema sample_records current_project_layout get_json_schema validate_config list_logs

The agent writes config to disk via plain file I/O; the tools only read and validate. You review and commit — it's early and gets better every release.

Bundled skills

Vantage ships agentskills.io-style skills (vantage-ui-builder) that teach any agent how to author pages, charts, Rhai expressions and drill-downs — no extra subscription, kept in sync with the app.

speed

Native & GPU-accelerated

Built on GPUI, not a web view.

sync

Reactive, no refresh

Edit YAML or data — the UI updates in place.

lock

Local & private

Your app, data and config never leave the box.

code

Config-as-code

YAML + Rhai you version, diff and hand off.

On the roadmap

Where Vantage is heading. Tap the deck to flip through.

Roadmap conversion_path

Wizards

Multi-step flows for guided data entry and operations — collect input across screens, then commit in one go.

Roadmap api

Server-side facade APIs

Turn the same config — data sources plus Rhai logic — into real backend APIs your own frontend or mobile app can call. Start in the console; graduate to code.

Roadmap deployed_code

Export to real code

No lock-in: export your console to a code repository or container image you own and run anywhere. Start in low-code, leave with real code.

Roadmap sensors

Live tables

Connect change-data-capture and live database events so tables update in real time, not just on refresh.

touch_app Click to deal the next card

download Download for Mac — free apps See example apps