{"id":44482672,"url":"https://github.com/getnao/nao","last_synced_at":"2026-05-29T17:00:30.282Z","repository":{"id":331161808,"uuid":"1125445550","full_name":"getnao/nao","owner":"getnao","description":"👾 nao is an open source analytics agent. (1) Create context with nao-core cli, (2) deploy nao chat interface for everyone","archived":false,"fork":false,"pushed_at":"2026-05-27T13:43:36.000Z","size":8675,"stargazers_count":1215,"open_issues_count":103,"forks_count":162,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-27T14:24:06.268Z","etag":null,"topics":["agentic-analytics","analytics","analytics-engineering","bigquery","business-intelligence","chat-with-your-data","context-engineering","data","data-analysis","data-analyst","data-engineering","databricks","postgresql","self-hosted","slack-bot","slackbot","snowflake","sql","text-to-sql"],"latest_commit_sha":null,"homepage":"https://docs.getnao.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getnao.png","metadata":{"files":{"readme":"README-dockerhub.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-30T18:33:25.000Z","updated_at":"2026-05-27T13:17:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/getnao/nao","commit_stats":null,"previous_names":["getnao/chat","getnao/nao"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/getnao/nao","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnao%2Fnao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnao%2Fnao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnao%2Fnao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnao%2Fnao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getnao","download_url":"https://codeload.github.com/getnao/nao/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getnao%2Fnao/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33662205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-analytics","analytics","analytics-engineering","bigquery","business-intelligence","chat-with-your-data","context-engineering","data","data-analysis","data-analyst","data-engineering","databricks","postgresql","self-hosted","slack-bot","slackbot","snowflake","sql","text-to-sql"],"created_at":"2026-02-13T00:11:31.406Z","updated_at":"2026-05-29T17:00:30.276Z","avatar_url":"https://github.com/getnao.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# nao - The #1 Open-Source Analytics Agent\n\nnao is a framework to build and deploy analytics agents. Create context for your analytics agent with the nao-core CLI, then deploy a chat UI for anyone to interact with your data.\n\n🌐 [Website](https://getnao.io) · 📚 [Documentation](https://docs.getnao.io) · 💬 [Slack](https://join.slack.com/t/naolabs/shared_invite/zt-3cgdql4up-Az9FxGkTb8Qr34z2Dxp9TQ) · 🐙 [GitHub](https://github.com/getnao/nao)\n\n## Docker\n\n### Supported Tags\n\n- `latest` - Latest stable release\n- `commit-hash` - Specific commit hash tags\n\n### Supported Architectures\n\n- `linux/amd64`\n\n### Base Image\n\n- Python 3.12 (slim) with Node.js 24 and Bun\n\n## Quick Start\n\n### Using Docker Run (SQLite database)\n\n```bash\ndocker run -d \\\n  --name nao \\\n  -p 5005:5005 \\\n  -e OPENAI_API_KEY=sk-... \\\n  -v /path/to/your/project:/app/project \\\n  getnao/nao:latest\n```\n\n## Environment Variables\n\n| Variable                   | Required | Description                                                                   |\n| -------------------------- | -------- | ----------------------------------------------------------------------------- |\n| `NAO_DEFAULT_PROJECT_PATH` | Yes      | Path to your nao project (default: `/app/example`)                            |\n| `OPENAI_API_KEY`           | No\\*     | OpenAI API key                                                                |\n| `ANTHROPIC_API_KEY`        | No\\*     | Anthropic API key                                                             |\n| `BETTER_AUTH_SECRET`       | No       | Secret key for authentication                                                 |\n| `DB_URI`                   | No       | PostgreSQL connection string (uses SQLite if not set)                         |\n| `SERVER_PORT`              | No       | Port to listen to                                                             |\n| `NAO_CONTEXT_SOURCE`       | No       | `local` (default), `git`, or `api`                                            |\n| `NAO_CONTEXT_GIT_URL`      | git only | HTTPS or SSH URL of the repo to clone                                         |\n| `NAO_CONTEXT_GIT_BRANCH`   | No       | Branch to clone (default: `main`)                                             |\n| `NAO_CONTEXT_GIT_TOKEN`    | No       | Personal access token for private HTTPS repos (injected into URL)             |\n| `NAO_CONTEXT_GIT_SSH_KEY`  | No       | Raw SSH private key contents (deploy key) — for `git@…`/`ssh://…` URLs        |\n| `NAO_CONTEXT_GIT_SUBPATH`  | No       | Subfolder of the repo to use as the project (sparse checkout, e.g. monorepos) |\n\n\\* At least one LLM API key is required to make AI queries.\n\n## Ports\n\n| Port   | Description                                                        |\n| ------ | ------------------------------------------------------------------ |\n| `5005` | Web UI and API, can be set via `$SERVER_PORT` environment variable |\n\n## Volumes\n\nMount your nao project directory to make it available to the agent:\n\n```bash\n-v /path/to/your/nao-project:/app/project\n```\n\nThen set `NAO_DEFAULT_PROJECT_PATH=/app/project`, you can also use the example project by setting `NAO_DEFAULT_PROJECT_PATH=/app/example`.\n\n## Docker run example\n\n```bash\ndocker run -d \\\n  --name nao \\\n  -p 5005:5005 \\\n  -e NAO_DEFAULT_PROJECT_PATH=/app/project \\\n  getnao/nao:latest\n```\n\nThen navigate to http://localhost:5005 to access the UI (or to any URL you configured).\n\n## Git-based context\n\nInstead of mounting a volume, you can have the container clone your nao project from a git repo on startup:\n\n```bash\ndocker run -d \\\n  --name nao \\\n  -p 5005:5005 \\\n  -e OPENAI_API_KEY=sk-... \\\n  -e NAO_CONTEXT_SOURCE=git \\\n  -e NAO_CONTEXT_GIT_URL=https://github.com/your-org/your-nao-context.git \\\n  -e NAO_CONTEXT_GIT_BRANCH=main \\\n  -e NAO_CONTEXT_GIT_TOKEN=ghp_xxx \\\n  -e NAO_DEFAULT_PROJECT_PATH=/app/context \\\n  getnao/nao:latest\n```\n\nIf your nao project lives inside a subfolder of a larger repo (e.g. a monorepo), set `NAO_CONTEXT_GIT_SUBPATH` and only that folder will be cloned via git sparse checkout:\n\n```bash\n-e NAO_CONTEXT_GIT_SUBPATH=analytics/finance\n```\n\nThe container then expects `nao_config.yaml` at `\u003cNAO_DEFAULT_PROJECT_PATH\u003e/\u003cNAO_CONTEXT_GIT_SUBPATH\u003e/nao_config.yaml`.\n\n### SSH deploy key authentication\n\nFor private repos, you can use a [GitHub deploy key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys) instead of a personal access token. Use the SSH URL (`git@github.com:org/repo.git`) and pass the private key contents via `NAO_CONTEXT_GIT_SSH_KEY`:\n\n```bash\ndocker run -d \\\n  --name nao \\\n  -p 5005:5005 \\\n  -e OPENAI_API_KEY=sk-... \\\n  -e NAO_CONTEXT_SOURCE=git \\\n  -e NAO_CONTEXT_GIT_URL=git@github.com:your-org/your-nao-context.git \\\n  -e NAO_CONTEXT_GIT_SSH_KEY=\"$(cat ~/.ssh/nao_deploy_key)\" \\\n  -e NAO_DEFAULT_PROJECT_PATH=/app/context \\\n  getnao/nao:latest\n```\n\nGitHub's host keys are pre-pinned, so SSH host verification is strict (no MITM window on first connect).\n\n## Key Features\n\n- 🧱 **Open Context Builder** — Create file-system context for your agent\n- 🏳️ **Data Stack Agnostic** — Works with any data warehouse, stack, LLM\n- 🔒 **Self-hosted \u0026 Secure** — Use your own LLM keys for maximum data security\n- 🤖 **Natural Language to Insights** — Ask questions in plain English\n- 📊 **Native Data Visualization** — Create visualizations directly in chat\n\n## License\n\nApache 2.0 - See [LICENSE](https://github.com/naolabs/chat/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetnao%2Fnao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetnao%2Fnao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetnao%2Fnao/lists"}