nao logo

nao

The #1 Open-Source Analytics Agent

๐ŸŒ Website ยท ๐Ÿ“š Documentation ยท ๐Ÿ’ฌ Slack


nao Chat Interface


## What is nao? nao is a framework to build and deploy analytics agent.
Create the context of your analytics agent with nao-core cli: data, metadata, modeling, rules, etc.
Deploy a UI for anyone to chat with your agent and run analytics on your data. ## Key Features For **data teams**: - ๐Ÿงฑ **Open Context Builder** โ€” Create a file-system like context for your agent. Add anything you want in the context: data, metadata, docs, tools, MCPs. No limit. - ๐Ÿณ๏ธ **Data Stack Agnostic** โ€” Works with any data warehouse, stack, type of context, LLM. - ๐Ÿ•ต๐Ÿปโ€โ™€๏ธ **Agent Reliability Visibility** โ€” Unit test your agent performance before deploying it to users. Version the context and track the performance of your agent over time. Get users feedbacks to improve the agent and track their usage. - ๐Ÿ”’ **Self-hosted & secure** โ€” Self-host your analytics agent and use your own LLM keys to guarantee maximum security for your data. For **business users**: - ๐Ÿค– **Natural Language to Insights** โ€” Ask questions in plain English, get analytics straight away - ๐Ÿ“Š **Native Data Visualization** โ€” Create and customize visualizations directly in the chat interface - ๐ŸงŠ **Transparent Reasoning** โ€” See the agent reasoning and sources clearly - ๐Ÿ‘ **Easy Feedback** โ€” Send feedback to the data team when a answer is right or wrong ## โšก๏ธ Quickstart your agent in 1 minute - **Step 1**: Install nao-core package ```bash pip install nao-core ```
- **Step 2**: Initialize a nao project ```bash nao init ``` It will ask you: - To name your project - If you want to connect a database _(optional)_ - If you want to add a repo in agent context _(optional)_ - To add an LLM key _(optional)_ - If you want to setup a Slack connection _(optional)_ ๐Ÿ’ก You can skip any optional question and configure them later in your `nao_config.yaml` file. This will create: - A new folder with your project name - An architecture for your context files - A `nao_config.yaml` configuration file - A `RULES.md` file
- **Step 3**: Verify your setup cd to the project folder and run: ```bash nao debug ```
- **Step 4**: Synchronize your context ```bash nao sync ``` This will populate your context folder with your context files (data, metadata, repos, etc.)
- **Step 5**: Launch the chat and ask questions ```bash 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: ```bash nao test ``` View results in tests panel: ```bash nao test server ``` ## Commands ```bash nao --help Usage: nao COMMAND โ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ chat Start the nao chat UI. โ”‚ โ”‚ init Initialize a new nao project. โ”‚ โ”‚ sync Sync context from your context sources (databases, repos) โ”‚ โ”‚ test Measure agent's performance on test examples. โ”‚ โ”‚ debug Debug and troubleshoot your nao setup. โ”‚ โ”‚ --help (-h) Display this message and exit. โ”‚ โ”‚ --version Display application version. โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ ``` ## ๐Ÿณ Docker Pull the image from DockerHub: ```bash docker pull getnao/nao:latest ``` Run nao chat with Docker using the example project bundled in the image: ```bash docker run -d \ --name nao \ -p 5005:5005 \ -e BETTER_AUTH_URL=http://localhost:5005 \ getnao/nao:latest ``` Run nao chat with Docker using your local nao project: ```bash 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](https://hub.docker.com/r/getnao/nao) for more details. For end-to-end self-hosted deployment (for example on Cloud Run with PostgreSQL), see the [Deployment Guide](https://docs.getnao.io/nao-agent/self-hosting/deployment-guide). ## ๐Ÿงฉ Skills Use nao skills to create your nao project and context with your favourite agent. Install the nao skill pack: ```bash npx skills add getnao/nao ``` Docs on nao skills: https://docs.getnao.io/nao-agent/context-engineering/skills ## ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Development See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, commands, and guidelines. ## ๐Ÿ“’ Stack ### Backend - Fastify: https://fastify.dev/docs/latest/ - Drizzle: https://orm.drizzle.team/docs/get-started - tRPC router: https://trpc.io/docs/server/routers ### Frontend - tRPC client: https://trpc.io/docs/client/tanstack-react-query/usage - Tanstack Query: https://tanstack.com/query/latest/docs/framework/react/overview - Shadcn: https://ui.shadcn.com/docs/components ## โ›น๏ธโ€โ™€๏ธ Join the Community - Star the repo - Subscribe to releases (Watch โ†’ Custom โ†’ Releases) - Follow us on [LinkedIn](https://www.linkedin.com/company/getnao) - Join our [Slack](https://join.slack.com/t/naolabs/shared_invite/zt-4080jlm79-nm52x5nZhG2N1ben8zwpiQ) - Contribute to the repo! ## ๐Ÿซฐ๐Ÿป Partners nao Labs is a proud Y Combinator company! ## ๐Ÿ“„ License This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.