Skip to main content
The ForceAI package ships two console commands and a Python SDK:
  • forceai runs the gateway (the proxy server)
  • forceai-proxy is the client you use to manage a running gateway and route traffic through it
  • import forceai is the Python SDK for calling models in code

Install

That installs both commands and the forceai package. To run the gateway server you also need the proxy extra, which pulls in the server runtime:
The commands read their version from the package. In a release build forceai --version shows the ForceAI release (for example v1.2.2); a local checkout shows the engine version marked (dev build).

Run the gateway with forceai

forceai starts the proxy server against a config file. The config defines your model list, guardrails and settings
Common flags are --host, --port, --num_workers, --detailed_debug and --reload (dev only). Run forceai --help for the full list. On startup it prints the ForceAI banner and serves the API on the chosen port

Use the client with forceai-proxy

forceai-proxy talks to a running gateway. Point it at the server with environment variables, or pass --base-url and --api-key per command:
In a split-plane deployment, management commands (keys, users, teams, credentials) are served by the control plane, while model and chat traffic goes to the gateway. Point FORCEAI_PROXY_URL at the control plane for management and at the gateway for model calls, or at the single origin if your deployment fronts both behind one URL. The legacy LITELLM_PROXY_URL / LITELLM_PROXY_API_KEY names are still accepted as a fallback.

Everyday commands

--help works at every level, so forceai-proxy keys --help or forceai-proxy models list --help show the exact options for any command

Route coding tools through the gateway

forceai-proxy can launch a coding tool already wired to your gateway, so every call it makes is governed:
It logs in if needed, verifies your key against the proxy, exports the env the tool reads, then hands off. Arguments after the tool name are forwarded to it. For pinning models and the full Claude Code setup, see Connect Claude Code

The Python SDK

import forceai gives the model-calling SDK. It mirrors the engine surface, so forceai.completion and forceai.acompletion work the same way, and ForceAI’s own feature subpackages (forceai.guardrails, forceai.audit, and so on) are importable alongside it:
To route the SDK through a running gateway instead of calling providers directly, point it at the gateway and use a ForceAI key: