Skip to main content

Backend Setup

Prerequisites

  • Python 3.12+
  • Git
  • Anthropic API key
  • Voyage AI API key
  • GitHub token (for opening PRs)

Clone and install

git clone https://github.com/arpjw/nimbus.git
cd nimbus/backend
pip install -r requirements.txt

Configure environment

Copy the example env file:

cp .env.example .env

Edit .env:

# Required
ANTHROPIC_API_KEY=sk-ant-...
VOYAGE_API_KEY=pa-...
GITHUB_TOKEN=ghp-...

# Optional: change models
PLANNER_MODEL=claude-opus-4-6
IMPLEMENTER_MODEL=claude-sonnet-4-6
REVIEWER_MODEL=claude-sonnet-4-6

# Optional: storage
CHROMA_PERSIST_DIR=./.chroma
WORKSPACE_BASE_DIR=/tmp/nimbus-workspaces

# Optional: auth
REQUIRE_API_KEY=false

See Configuration Reference for all variables.

Run the backend

uvicorn main:app --host 0.0.0.0 --port 8000 --reload

The API is now available at http://localhost:8000. Interactive docs at http://localhost:8000/docs.

Database

SQLite is used by default. The database file (nimbus.db) is created automatically on first startup. No migration command is needed — tables are created at startup.

ChromaDB persistence

Vector embeddings are stored in ./.chroma/ by default. This directory persists across restarts. To use a different path:

CHROMA_PERSIST_DIR=/data/chroma uvicorn main:app ...

Production deployment

For production, use a process manager:

pip install gunicorn
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000