Install the Nous agent with Docker

Clone the repository, put an Anthropic API key in .env and run docker compose up -d. Needs Docker Compose v2.

Read the quickstart guide

What Nous needs before you start

Docker and one Anthropic key. The other keys switch on extra tools.

  • Docker and Docker Compose v2 Required
  • Anthropic API key Required, or a subscription token
  • OpenAI API key Recommended: embeddings for semantic search. Without it, search falls back to keywords.
  • Brave Search API key Recommended: turns on web_search
  • Telegram bot token Optional: the chat bot

Nous quickstart in 3 steps

  1. 1. Clone and configure

    Clone the repository and create .env in the project root with your ANTHROPIC_API_KEY.

  2. 2. Start everything

    One command starts PostgreSQL with pgvector, the agent and the Telegram bot. Migrations run on startup.

  3. 3. Check it and say hello

    Ask for its health, then send a first message. The dashboard runs at localhost:8000/dashboard.

The containers Nous starts

The quickstart lists three. The compose file in 1.2.0 also starts nous-scorer, the job that scores background work.

  • nous-postgres pgvector/pgvector:pg17, port 5432
  • nous-agent Built from the Dockerfile, port 8000: REST and MCP
  • nous-telegram The chat bot; it exits at once without a token
  • nous-scorer Scores finished background subtasks

To skip the bot: docker compose up -d nous postgres

Three ways to talk to Nous

REST API on port 8000

Plain or streaming chat, plus routes for memory, decisions, identity, the heartbeat and DAGs.

MCP server at /mcp

Other agents and tools reach Nous over the Model Context Protocol. It is on by default.

Telegram bot, optional

Set TELEGRAM_BOT_TOKEN, and NOUS_ALLOWED_USERS to limit who can talk to it.

Nous docs and questions

The repository's docs go deeper than this page.

Can Nous run without Docker?

Yes, for development: start Postgres alone, then uv sync and uv run python -m nous.main.

Which Nous features are off by default?

Those marked opt-in in the README, such as approvals and coding jobs. Each sits behind a documented flag.

Can one database hold several agents?

Yes. Every row is scoped by agent_id; set NOUS_AGENT_ID per agent.

What should change for production?

The database password, at least. The quickstart lists a minimal production .env.