Skip to content
getnaoPublic

About

๐Ÿ‘พ nao is the #1 open source agentic BI. (1) Create context with nao-core cli, (2) deploy nao chat interface for everyone

Topics

Resources

Contributing

Security policy

Stars

2.0k stars

Watchers

10 watching

Forks

Latest commit

ย 

History

1,147 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

nao logo

nao

The #1 open source agentic BI builder

Your data team builds the analytics agent and owns the context layer. Everyone in the company builds on data.

๐ŸŒ Website ยท ๐Ÿ“š Documentation ยท โ˜๏ธ nao Cloud ยท ๐Ÿ’ฌ Slack


nao chat interface


What is nao?

nao lets you build your own agentic BI: an open source analytics agent built on a context layer your data team controls and tests. Sign up on nao Cloud or self-host it.

  1. Build your data context layer: your data team syncs the warehouse, dbt, docs and rules into files the agent reads, with the nao-core CLI or your coding agent.
  2. Let your whole company analyze data: anyone can chat with your data from the nao app, Slack, Teams or Claude, and build their own live dashboards, data apps and slides as stories.
  3. Monitor that your agent always gets it right: test every context change offline with nao test, and observe real usage online.

Watch your whole company grow into analysts.

Key features

For data teams

  • ๐Ÿงฑ Build your data context layer: sync your warehouse, dbt and docs into files your agent reads.
  • ๐Ÿงช Evaluate offline: nao test runs your key questions against the SQL you expect and scores every context change before it ships.
  • ๐Ÿ”ญ Observe online: chat replay shows every conversation. Context recommendations turn errors and downvotes into fixes, opened as pull requests.
  • ๐Ÿณ๏ธ Stack agnostic: nao works with all warehouses, data stacks and LLMs. Anything missing? Contribute to build it!
  • ๐Ÿค– Set up with your agent: install the nao skills and let Claude Code, Codex or Cursor build your context.

For everyone in the company

  • ๐Ÿ’ฌ Analyze data from anywhere: ask questions in plain English from the web app, Slack, Teams or any MCP client.
  • ๐Ÿ“Š Build your own stories: turn chats into interactive, custom stories and share them with your team.
  • ๐ŸงŠ Transparent reasoning: see the SQL and the files behind every answer.
  • ๐Ÿ‘ Easy feedback: tell the data team when an answer is right or wrong.

Secure by design

  • ๐Ÿ”“ Open source: the whole core product is Apache 2.0. Self-host it, read the code, and shape the roadmap with the community.
  • ๐Ÿ  Deploy in your own infrastructure: self-host on your own cloud, or run on nao Cloud.
  • ๐Ÿ”‘ Bring your own LLM key: any provider at your own price, with budgets per user and per team.
  • ๐Ÿ›ก๏ธ Your SSO and warehouse permissions: Okta, Google, Microsoft Entra ID or any OIDC. Row-level security and identity passthrough.
  • โœ… SOC 2 Type II: audited controls. Your data is never used to train models. See our Trust Center.

โšก๏ธ Get started

Option 1: sign up on nao Cloud

Sign up on nao Cloud, connect your warehouse, add your business context and deploy agentic BI to your whole company from the nao UI. No CLI needed.

Option 2: set it up with your coding agent

nao ships skills that teach Claude Code, Codex, Cursor or any skills-compatible agent how to build a nao project end to end: scope the tables, write nao_config.yaml, sync, write RULES.md and create tests.

1. Install the nao CLI and the nao skills in the folder where you want your project:

pip install nao-core
nao skills add getnao/nao

nao skills is a thin wrapper around npx skills (Node.js 18+ required). npx skills add getnao/nao works too.

2. Ask your agent to set up nao. Open Claude Code, Codex or Cursor in that folder and paste:

Set up nao, the open source agentic BI builder, on my data: run `pip install nao-core`, then `nao skills add getnao/nao`, then use the setup-context skill to create a nao project on my warehouse. Docs: https://docs.getnao.io/nao-agent/quickstart

The agent asks you once for your warehouse, the tables in scope, extra context (dbt repo, docs) and your LLM provider, then runs nao init, nao sync, and writes your first RULES.md.

3. Launch the chat:

nao chat

The nao chat opens at http://localhost:5005. Start asking questions.

Option 3: self-host

Run the Docker image getnao/nao, or set up a project manually with the CLI:

  • Step 1: Install nao-core package

    pip install nao-core

  • Step 2: Initialize a nao project

    nao init

    It asks for a project name, then optionally a database, a repo, an LLM key and a Slack connection (you can skip them and edit nao_config.yaml later). It creates your project folder with nao_config.yaml, RULES.md and the context structure.


  • Step 3: Verify your setup

    cd to the project folder and run:

    nao debug

  • Step 4: Synchronize your context

    nao sync

    This will populate your context folder with your context files (data, metadata, repos, etc.)


  • Step 5: Launch the chat and ask questions

    nao chat

    This will start the nao chat UI. It will open the chat interface in your browser at http://localhost:5005. From there, you can start asking questions to your agent.

Evaluation framework

Unit test your agent performance before deploying it to users. First, create a folder tests/ with questions and expected SQL in yaml. Then, measure agent's performance on examples with nao test command:

nao test

View results in tests panel:

nao test server

๐Ÿš€ Deploy

  • nao Cloud: sign up and set everything up from the nao UI. To push context from a local project instead, create an organization API key in Settings โ†’ Organization โ†’ Organization API keys, then push your context:

    nao deploy https://app.getnao.io --api-key "$NAO_API_KEY"
  • Self-hosted: run the Docker image below, or follow the deployment guide (for example on Cloud Run with PostgreSQL, or with the Helm chart).

  • Continuous deployment: the deploy-context skill sets up a GitHub Action that runs nao deploy on every push to main.

๐Ÿณ Docker

Pull the image from DockerHub:

docker pull getnao/nao:latest

Run nao chat with the example project bundled in the image:

docker run -d \
  --name nao \
  -p 5005:5005 \
  -e BETTER_AUTH_URL=http://localhost:5005 \
  getnao/nao:latest

Run nao chat with your local nao project:

docker run -d \
  --name nao \
  -p 5005:5005 \
  -e BETTER_AUTH_URL=http://localhost:5005 \
  -v /path/to/your/nao-project:/app/project \
  -e NAO_DEFAULT_PROJECT_PATH=/app/project \
  getnao/nao:latest

Access the UI at http://localhost:5005 (or at any URL you configured). See the DockerHub page for more details.

๐Ÿข Open source vs Enterprise

The core of nao is open source under Apache 2.0. The Enterprise license adds the controls large companies need, on the same self-hosted deployment. nao Cloud includes the equivalent features.

Capability Open source Enterprise
Open source agent, chat UI and every LLM provider โœ… โœ…
Slack, Teams, WhatsApp, Telegram and Mattermost bots โœ… โœ…
Self-hosting on your infrastructure โœ… โœ…
Google, GitHub and GitLab login โœ… โœ…
User groups Up to 3 Unlimited
Multiple projects (separate data, context and access) โœ…
Microsoft Entra ID and OIDC SSO โœ…
Row-level security โœ…
Warehouse identity passthrough โœ…
LLM budgets per member and per group โœ…
White-label branding โœ…
Priority support and roadmap input โœ…

Yearly license per company. The license is verified offline at startup against a signed key. Online licenses also send a periodic heartbeat to licenses.getnao.io; for air-gapped deployments, ask for an offline license, which never phones home. The nao team also helps with implementation, context engineering advisory and training. Talk to us.

Commands

nao --help
Usage: nao COMMAND

โ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ chat            Start the nao chat UI.                                       โ”‚
โ”‚ debug           Test connectivity to configured databases and LLMs.          โ”‚
โ”‚ deploy          Deploy project context to a remote nao instance.             โ”‚
โ”‚ docs            Open nao official documentation in your browser              โ”‚
โ”‚ init            Initialize a new nao project.                                โ”‚
โ”‚ login           Log in to nao from your browser.                             โ”‚
โ”‚ logout          Log out of nao and revoke the stored session.                โ”‚
โ”‚ migrate         Migrate dashboards from Metabase or Tableau.                 โ”‚
โ”‚ reset-password  Reset a local nao user's password.                           โ”‚
โ”‚ skills          Install and manage agent skills via npx skills.              โ”‚
โ”‚ sync            Sync resources using configured providers.                   โ”‚
โ”‚ test            Run and explore nao tests.                                   โ”‚
โ”‚ upgrade         Upgrade nao-core to the latest version.                      โ”‚
โ”‚ --help (-h)     Display this message and exit.                               โ”‚
โ”‚ --version       Display application version.                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Development

See CONTRIBUTING.md for development setup, commands, and guidelines.

Start nao locally

Prerequisites:

  • nvm
  • bun
  • uv

Run the following commands:

npm run npm:pin
npm install
npm run db:migrate -w apps/backend

Create a .env file at the root of the repository and input environment variables

Minimum variables necessary are:

BETTER_AUTH_SECRET=#run `openssl rand -base64 32` to generate
# Public URL of your app (used for authentication, trusted origins, and Slack redirects)
BETTER_AUTH_URL=http://localhost:3000

# LLM providers
OPENAI_API_KEY=12345678

NAO_DEFAULT_PROJECT_PATH=#path to example folder

Run the following command:

npm run dev

Go to http://localhost:3000 on your browser

๐Ÿ“’ Stack

Backend

Frontend

โ›น๏ธโ€โ™€๏ธ Join the Community

  • Star the repo
  • Subscribe to releases (Watch โ†’ Custom โ†’ Releases)
  • Follow us on LinkedIn
  • Join our Slack
  • Contribute to the repo!

๐Ÿซฐ๐Ÿป Partners

nao Labs is a proud Y Combinator company!

๐Ÿ“„ License

nao is licensed under the Apache 2.0 License (see LICENSE), except for files marked with /* @license Enterprise */, which are subject to the nao Labs Commercial License in LICENSE-ENTERPRISE.

About

๐Ÿ‘พ nao is the #1 open source agentic BI. (1) Create context with nao-core cli, (2) deploy nao chat interface for everyone

Topics

Resources

Contributing

Security policy

Stars

2.0k stars

Watchers

10 watching

Forks

Releases

Contributors

Languages