# anfra release notes

> The open-source framework: CLI, semantic layer, query engine, JS SDK and MCP server

By product: [All](https://anfra.ai/releases.md) · [anfra](https://anfra.ai/releases/core.md) · [anfra Cloud](https://anfra.ai/releases/cloud.md)

- [Publish with your team: anfra pull and anfra publish status](https://anfra.ai/releases/team-publishing-pull.md) (New in anfra, Nov 11, 2026): `anfra pull` merges what others published to your organization into your folder, and `anfra publish` stops before it would replace their work unseen.
- [Try anfra on a sample e-commerce project](https://anfra.ai/releases/init-sample-project.md) (New in anfra, Nov 11, 2026): `anfra init --example` adds models, a dataset, a small DuckDB file and a Data App, so you can try anfra before you connect a warehouse.
- [More relationship types, and AI context, in AML](https://anfra.ai/releases/aml-relationship-types.md) (New in anfra, Nov 9, 2026): Relationships can join on composite keys, match a row to a range, go many-to-many and filter either side, and models, datasets and fields can carry `ai_context` for agents.
- [See a Data App's runtime errors, and let your agent fix them](https://anfra.ai/releases/data-app-runtime-errors.md) (New in anfra, Nov 9, 2026): A Data App's runtime errors now reach anfra.log and the app's panel, so your coding agent can find and fix them without you copying them over.
- [Data Apps recover from failed queries](https://anfra.ai/releases/sdk-query-recovery.md) (Improved in anfra, Nov 9, 2026): A query that failed reruns the next time it executes, and a failed fetchMore keeps the pages already loaded.
- [Work in a session with anfra console](https://anfra.ai/releases/anfra-console.md) (New in anfra, Nov 5, 2026): `anfra console` opens a session at your terminal, as psql does: commands without the `anfra`, AQL typed directly, colored output and a warm server.
- [View the rows behind a chart's point](https://anfra.ai/releases/view-underlying-data.md) (New in anfra, Nov 4, 2026): Right-click a point on a chart and choose View underlying data to see the rows of the model behind it.
- [YAML or JSON from every command, with jq built in](https://anfra.ai/releases/structured-cli-output.md) (New in anfra, Nov 4, 2026): Every command answers with `--yaml` or `--json`, filters its answer with `--jq`, and describes its input and output with `--schema`.
- [anfra serve gets anfra Cloud's look](https://anfra.ai/releases/serve-new-look.md) (Improved in anfra, Nov 4, 2026): `anfra serve` now has anfra Cloud's sidebar, header, fonts and colors, and its command palette finds your apps as well as commands.
- [Data App errors say what happened and who can fix it](https://anfra.ai/releases/sdk-error-codes.md) (Improved in anfra, Nov 4, 2026): Every error a Data App gets has the API's `code` and `scope`, so an app can tell a refused query from a server that's down.
- [Set up your coding agents with anfra agent setup](https://anfra.ai/releases/agent-setup.md) (New in anfra, Oct 30, 2026): One command installs or updates the anfra skills in every coding agent on your machine, and anfra tells you when they fall behind.
- [See what's new after anfra update](https://anfra.ai/releases/release-notes-after-update.md) (Improved in anfra, Oct 30, 2026): `anfra update` prints what each release since yours brings, so you know what changed.
- [A command palette, and a menu on a Data App's content](https://anfra.ai/releases/command-palette-and-menus.md) (New in anfra, Oct 28, 2026): Press ⌘K or Ctrl+K in `anfra serve` to run any command, and right-click a block or a chart's point for the actions on it.
- [A new Inspect panel for Data Apps](https://anfra.ai/releases/inspect-panel.md) (New in anfra, Oct 28, 2026): Inspect opens on an overview of the app's health, and its tabs show every query and request, each query's latest rows, the app's declaration and its structure.
- [See where a page's numbers come from in the Lineage tab](https://anfra.ai/releases/lineage-tab.md) (New in anfra, Oct 28, 2026): The Lineage tab in the Inspect panel draws a canvas from a page's controls and blocks, through its queries and metrics, to the database tables.
- [Search LookML projects, and page through results](https://anfra.ai/releases/search-lookml.md) (Improved in anfra, Oct 28, 2026): The local catalog reads LookML projects as context sources, and `anfra search` takes `--limit` and `--offset`.
- [Copy a DuckDB file to MotherDuck as you publish](https://anfra.ai/releases/publish-duckdb-to-motherduck.md) (New in anfra, Oct 21, 2026): When your repo reads a local DuckDB file, `anfra publish` offers to copy it to MotherDuck and give your organization a data source on the copy.
- [Sign in to anfra Cloud and publish from the CLI](https://anfra.ai/releases/cli-auth-and-publish.md) (New in anfra, Oct 21, 2026): `anfra auth login` signs you in to an anfra Cloud organization from your browser, and `anfra publish` sends it your repo.
- [Data Apps run under a content policy](https://anfra.ai/releases/data-app-content-policy.md) (Improved in anfra, Oct 21, 2026): A Data App may load scripts, styles and fonts only from known CDNs and the origins you allow, and can't send its data anywhere else.
- [Data App features come from plugins](https://anfra.ai/releases/sdk-plugins.md) (Improved in anfra, Oct 19, 2026): Queries, exports, lineage and pictures each come from a plugin the host installs, and a page checks for one with `Anfra.plugins.has()`.
- [Trace a metric back to its source tables](https://anfra.ai/releases/lineage.md) (New in anfra, Oct 14, 2026): `anfra lineage` and `Anfra.lineage()` show what a metric or field is built from: the fields it uses, their models and the tables behind them.
- [Download a query's whole result as CSV](https://anfra.ai/releases/query-export-csv.md) (New in anfra, Oct 13, 2026): `query.export()` makes a CSV of every row of a query's result, with the filters on screen applied, and downloads it for the reader.
- [Save a Data App, or one part of it, as PNG or PDF](https://anfra.ai/releases/render-png-pdf.md) (New in anfra, Oct 13, 2026): `anfra serve` downloads a picture of the whole page, or of any block or container, and `Anfra.render()` lets a page offer it itself.
- [Mark a Data App's parts, and find them in Inspect](https://anfra.ai/releases/data-app-structure.md) (New in anfra, Oct 12, 2026): Mark the parts of a page with a few `data-anfra-*` attributes, and the Inspect panel in `anfra serve` shows them as a tree you can hover, locate and pick.
- [Run anfra from its Docker image](https://anfra.ai/releases/docker-image.md) (New in anfra, Oct 8, 2026): `ghcr.io/holistics/anfra` runs `anfra serve`, or any other command, without installing anything.
- [Build Data Apps with the anfra JS SDK](https://anfra.ai/releases/data-apps-js-sdk.md) (New in anfra, Oct 7, 2026): A Data App is one HTML file in `apps/` that asks for metrics by name through the JS SDK, and `anfra serve` runs it.
- [Connect your coding agent to anfra over MCP](https://anfra.ai/releases/mcp-server.md) (New in anfra, Oct 7, 2026): `anfra serve` also serves an MCP server, so Claude Code, Cursor or Codex can read your models and run queries.
- [Explore your semantic layer with anfra show and anfra search](https://anfra.ai/releases/explore-semantic-layer.md) (New in anfra, Oct 7, 2026): Look up datasets, fields and metrics from the terminal, search them in plain words, and query a data source with SQL.
- [Start a repo with anfra init, and teach your agent anfra](https://anfra.ai/releases/init-and-agent-skills.md) (New in anfra, Oct 7, 2026): `anfra init` sets up a repo's folders and data source config, and the anfra skills teach your coding agent to write models, queries and Data Apps.
- [Install anfra with one command, and update it in place](https://anfra.ai/releases/install-and-update.md) (New in anfra, Jul 22, 2026): An install script puts anfra on your machine, and `anfra update` replaces it with the latest release.
- [Validate and query your models from the terminal](https://anfra.ai/releases/cli-validate-and-query.md) (New in anfra, Jul 21, 2026): The first anfra CLI checks your AML models and runs AQL queries on your datasets, with a warm server to keep them fast.

---

## For coding agents

This is the Markdown version of https://anfra.ai/releases/core/. Every page on anfra.ai has one: replace the trailing slash with `.md` (https://anfra.ai/cloud.md for https://anfra.ai/cloud/, and https://anfra.ai/index.md for the home page), or request the page with `Accept: text/markdown`. [llms.txt](https://anfra.ai/llms.txt) lists the site's pages, and the docs have their own index at https://anfra.ai/docs/llms.txt, where every docs page is also available as Markdown by adding `.md` to its URL.

Before you build with anfra:

- Install both the CLI and its agent skills. Installing the CLI alone is not a complete installation. Install the CLI with `curl -fsSL https://anfra.ai/install.sh | bash`. Then install the skills: in Claude Code or Codex, run `anfra agent setup`. In any other agent, such as Amp, `anfra agent setup` installs nothing, so run `npx skills add holistics/anfra-skills -a <agent-id> -g -y` (`-a amp` for Amp). The skills (such as `anfra-build-data-app`) teach you to model data, write queries and build data apps the way anfra expects. See https://anfra.ai/docs/local-dev/installation.md.
- Ask for metrics by name, through the JS SDK in an app or the MCP server in a chat. Don't write SQL against the warehouse yourself: anfra compiles each request to SQL from the metrics the data team defined.
- Check commands, files and API calls against the docs (https://anfra.ai/docs/llms.txt) instead of inferring them from the examples on this page.
- Stuck, or found a mistake? Ask in GitHub Discussions (https://github.com/holistics/anfra/discussions) or open an issue (https://github.com/holistics/anfra/issues).
