AutoDS-Tools/
├── apps/
│ ├── cli/ # autods CLI entry point
│ ├── frontend/ # Next.js UI
│ └── server/ # FastAPI backend
├── packages/
│ ├── autods/ # core agent library
│ └── pygrad/ # publishable GRAD package
├── docker/ # local compose assets
├── pyproject.toml # uv workspace root
└── justfile
The main workflow:
- Analyst explores the task and data.
- Researcher studies relevant libraries through GRAD.
- Planner creates an execution strategy.
- Coder implements and debugs the solution.
- Presenter audits and summarizes the result.
- Python 3.12+
uv- Node.js 18+ and
npmfor the frontend - Docker
just installThat runs uv sync --all-packages and installs all Python workspace members into the shared workspace environment.
cd apps/frontend
npm installAutoDS reads its model runtime configuration from environment variables.
Minimal .env example:
AUTODS_MODEL=gpt-5
AUTODS_API_KEY=sk-your-key
AUTODS_BASE_URL=https://api.openai.com/v1Optional advanced request settings:
AUTODS_MAX_RETRIES=3
AUTODS_MODEL_KWARGS_JSON={"temperature":0.2}
AUTODS_EXTRA_BODY_JSON={"reasoning":{"effort":"medium"}}
AUTODS_DEFAULT_HEADERS_JSON={"X-Title":"AutoDS"}The runtime supports OpenAI-compatible request/response schema only. To switch backends, point AUTODS_BASE_URL at a compatible gateway such as OpenAI, OpenRouter, LiteLLM, vLLM, or an OpenAI-compatible Ollama endpoint.
uv run autods-web
# or
uv run autods serverThe API listens on http://localhost:8000 by default.
just frontend-devThe UI runs on http://localhost:3000.
The frontend uses NEXT_PUBLIC_API_URL when it is set.
Without that variable:
- local browser development on
localhost/127.0.0.1falls back tohttp://<host>:8000 - non-local browser hosts fall back to the current origin for same-origin proxy deployments
Set apps/frontend/.env.local if you want an explicit local override, for example:
NEXT_PUBLIC_API_URL=http://localhost:8000uv run autods --help
uv run autods chat
uv run autods exec "Solve this classification task using LightAutoML"
uv run autods resume <session-id>
uv run autods serverCLI behavior:
- if
--server-urlorAUTODS_SERVER_URLis set, the CLI talks to that hosted server - otherwise,
chat,exec, andresumeauto-start a local server on127.0.0.1:8000if needed - the CLI stores a persistent principal token in
~/.autods/cli_principal_token - browser and CLI can share the same hosted session namespace if they use the same principal identity
Examples:
# Run locally with environment-based model config
AUTODS_MODEL=gpt-5 \
AUTODS_API_KEY=sk-your-key \
AUTODS_BASE_URL=https://api.openai.com/v1 \
uv run autods exec "Train a baseline model"
# Start an explicit local server
uv run autods server
# Run against a remote server
AUTODS_SERVER_URL=http://my-host:8000 uv run autods exec "Train a baseline model"
# Override server URL per command
uv run autods exec --server-url http://my-host:8000 "Analyze this dataset"GRAD is the documentation and graph-retrieval layer used by the agent when it needs to understand external libraries.
Package sources and docs live under packages/pygrad.
See LICENSE.

