Run & deploy
Run the API locally or deploy it separately from the terminal and public website.
Start a local API
pnpm install --frozen-lockfile
pnpm exec playwright install chromium
pnpm api
# In another shell, create a key and call /v1/capabilities
pnpm keys:create --name "Local chart bot" \
--scopes market:read,chart:read,chart:writeThe default API listens on 127.0.0.1:8789. The consumer terminal remains on port 3001. Rendering does not require a terminal tab or modify its saved drawings.
Health checks
Use GET /livez for process liveness and GET /readyz for readiness. Both also support HEAD. Readiness returns 200 when the service can accept work, or 503 when it cannot. It checks local database access, worker state and renderer configuration without calling a market-data or model provider.
curl --fail-with-body "$AGENT_CHARTING_URL/livez"
curl --fail-with-body "$AGENT_CHARTING_URL/readyz"
# Detailed diagnostics require a key with audit:read
curl "$AGENT_CHARTING_URL/v1/health" \
-H "Authorization: Bearer $AGENT_CHARTING_API_KEY"The authenticated GET /v1/health endpoint reports sanitized checks and queue counts without consuming request quota. Renderer readiness is a configuration check, not a test image render. A healthy result does not certify a provider’s availability, model quality or data license.
Deploy separately from the prelaunch website
The public landing site deliberately does not run paid agents or expose the terminal. Deploy the API service separately with its dedicated Dockerfile, key authentication, persistent storage and your provider configuration. Keep one replica until the queue is moved to shared infrastructure.
AGENT_CHARTING_AUTH_MODE=key
AGENT_CHARTING_HOST=0.0.0.0
TRADINGVIEW_FEED_PORT=8080
AGENT_CHARTING_DATABASE_PATH=/data/platform.sqlite
AGENT_CHARTING_DEVELOPER_DATABASE_PATH=/data/developer-api.sqlite
# Set only on the API service when managed inference is desired:
# OPENAI_API_KEY=... or XAI_API_KEY=...