Repolode
cube-js

cube-js/cube

Open-source semantic layer that defines metrics and business logic once and serves them via SQL, REST and GraphQL APIs to BI tools and AI agents.

Open-source alternative to:Looker

Stars
21,039
Forks
2,165
Open issues
1,180
Last commit
8 hours ago

What is it?

Cube Core is a headless semantic layer. Developers define metrics, dimensions, joins and access rules in code, then expose them through SQL, REST and GraphQL APIs to downstream consumers such as BI tools, custom applications or AI agents. Because it ships no UI, teams build their own analytics experience on top of it.

It connects to all SQL data sources, including cloud warehouses such as Snowflake, Databricks and BigQuery, query engines such as Presto and Amazon Athena, and application databases such as Postgres. A built-in caching engine is intended to keep API latency low under concurrent requests.

The project is the open-source core of Cube, a commercial analytics platform that adds dashboards, managed deployment, RBAC and multi-tenancy. Data models are compatible between the two editions.

Key features

  • 01Defines metrics, dimensions and joins once in code and reuses them across tools.
  • 02Exposes the semantic model through SQL, REST and GraphQL APIs.
  • 03Connects to Snowflake, Databricks, BigQuery, Presto, Athena and Postgres.
  • 04Includes a built-in caching engine for low-latency API responses.
  • 05Runs headless, so it can be paired with any front end or BI tool.

Use cases

  • Serving consistent metric definitions to multiple BI tools and dashboards.
  • Building embedded analytics inside a customer-facing product.
  • Giving AI agents a governed semantic layer to query business data.

Quick start

  1. 1

    Install Docker

  2. 2

    In a new project folder, run the Cube Core Docker container

    docker run -p 4000:4000 \ -p 15432:15432 \ -v ${PWD}:/cube/conf \ -e CUBEJS_DEV_MODE=true \ cubejs/cube
  3. 3

    Open http://localhost:4000 in your browser to finish setup

Things to know

  • Development mode, used in the quick start, disables authentication on the APIs and exposes the playground, so it must never be exposed to the internet or used in production.
  • The README lists MIT and Apache 2.0 licenses for different parts, and the metadata license is unclear, so check the license for the component you plan to use.

Topics

FAQ

What is cube?
Open-source semantic layer that defines metrics and business logic once and serves them via SQL, REST and GraphQL APIs to BI tools and AI agents. Cube Core is a headless semantic layer. Developers define metrics, dimensions, joins and access rules in code, then expose them through SQL, REST and GraphQL APIs to downstream consumers such as BI tools, custom applications or AI agents. Because it ships no UI, teams build their own analytics experience on top of it.
Is cube free to use? What license does it have?
cube is open source under the Other license. Check the license terms before using it in commercial products.
Is cube still maintained?
Actively maintained. The last commit to cube was on Oct 19, 2026.
What can I use cube for?
Serving consistent metric definitions to multiple BI tools and dashboards. Building embedded analytics inside a customer-facing product. Giving AI agents a governed semantic layer to query business data.
How do I install cube?
Install Docker In a new project folder, run the Cube Core Docker container: docker run -p 4000:4000 \ -p 15432:15432 \ -v ${PWD}:/cube/conf \ -e CUBEJS_DEV_MODE=true \ cubejs/cube Open http://localhost:4000 in your browser to finish setup
Where can I get cube?
The source code and installation instructions are on GitHub: https://github.com/cube-js/cube

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects