> These docs are markdown-first for agents. Each link below points to a page's raw `.md` — append `.md` to any page URL yourself, too. For every page concatenated into one file, fetch [/llms-full.txt](/llms-full.txt). # Docs - **Guide** - [Introduction](/introduction.md): OpenIslands is a local-first compiler and runtime for agent-maintained data apps — typed manifests of reusable islands bound to data you own. - [Getting Started](/getting-started.md): The path from nothing to an agent-maintained dashboard — scaffold a project, connect your agent over MCP, and drive it with prompts. - [MCP Server](/mcp.md): The MCP server is how an agent maintains a dashboard safely for months — Code Mode, where one execute tool drives a typed oi API through a read-many, write-one edit loop that validates before it writes and snapshots before it changes anything. - [Agent Setup](/agents.md): Any agent that speaks the Model Context Protocol can drive OpenIslands — this page covers wiring up Hermes, OpenClaw, Claude Code, and Codex CLI. - [CLI](/cli.md): The keyboard path — every move an agent makes over MCP you can make by hand with the openislands command, with the same validation. - [Self-hosting](/self-hosting.md): Run OpenIslands as an always-on Docker container on a server or home NAS — the dashboard and the MCP server over HTTP in one process, from the ghcr image, with a token guarding the write surface off loopback. - **Concepts** - [The Manifest](/concepts/manifest.md): An OpenIslands app is a typed manifest — a JSON declaration of reusable visual islands bound to typed data contracts built from files you own. - [Data Contracts](/concepts/data-contracts.md): An island binds to a dataset — a named, typed contract resolved through a DuckDB query core that checks every binding against your live data. - [SQL Transforms](/concepts/sql-transforms.md): A sql dataset is a saved DuckDB query over your other datasets — where the sums, joins, and filters live so islands stay declarative. - **Reading Data** - [Queries](/data/queries.md): A query is a typed, read-only read over one dataset — a declarative spec the compiler translates to a parameterized SELECT, declared in the manifest and called on demand. - **Writing Data** - [Actions](/data/actions.md): An action is a typed write into a source dataset — validated before anything touches disk, snapshotted before the write, and reversible after. - [Connectors](/data/connectors.md): A connector syncs an external provider's data into your source datasets through the same checkpointed path actions use, so a sync is as reversible as any other write. - **Islands** - [Islands](/islands/overview.md): An island is a reusable, typed visual block — declare it in the manifest, bind it to fields that exist in your data, and the runtime renders it. - [Metrics & Gauges](/islands/metrics-and-gauges.md): Six islands for at-a-glance state — a headline KPI, a multi-stat scorecard, three gauges, and a status grid of service/check tiles. - [Charts](/islands/charts.md): A family of islands for shape, comparison, distribution, and geography — lines and bars, parts of a whole, scatter and radar, heatmaps, funnels, and a world map. - [Tables & Feeds](/islands/tables-and-feeds.md): Three islands for rows you read one at a time — a table when exact values matter, a feed for things that happened in order, and a search box to find one row in many. - [Content & Layout](/islands/content-and-layout.md): The islands that aren't charts of your data — a note for prose, a source doc for a file or link, a content editor for a workspace of markdown, a form for adding rows, and a layout row. - [Custom Islands](/islands/custom.md): When no built-in island fits, register your own — a React renderer that lives in your project, gets a typed config, and is checked by the same validator. - **Reference** - [Manifest Reference](/reference/manifest.md): Every field the OpenIslands manifest schema accepts, generated from @openislands/schema. - [Value formats](/reference/value-formats.md): A format is the optional display format applied to a numeric or date value, available on every island and spec that renders a value.