Conduit is the self-hostable agent that bridges your local hardware to the Infersec cloud. It downloads model files, manages the LLM engine lifecycle, and proxies inference requests. Conduit runs as a lightweight Node.js process or as a Docker container on your machine.
The quickest way to run Conduit is via npx:
npx @infersec/conduit inference start \
--engine <engine> \
--key <your-api-key> \
--source <source-id>
For Docker use, see Docker below. For pre-built images that bundle Conduit with vLLM, see Engine Docker Images.
Commands
Conduit exposes four top-level commands:
| Command | Description |
|---|---|
inference start |
Start the inference agent (downloads model, boots engine, connects to source) |
tool connect <toolID> |
Connect a local tool (e.g. local-filesystem) to the API |
models list |
List cached models and their disk usage |
models clear |
Remove cached models (all, or filtered by ID prefix) |
benchmark run |
Run model benchmarks from a benchmarks.json config file |
inference start
Starts the inference agent against a single Infersec source.
| Flag | Required | Default | Notes |
|---|---|---|---|
--engine |
Yes | - | Engine type, e.g. llama.cpp, vllm, sglang. |
--key |
Yes | - | Infersec API key. |
--source |
Yes | - | Inference source ID. |
--api-url |
No | https://api.infersec.ai |
API base URL (use the self-hosted URL for self-hosted deployments). |
--engine-port |
No | 9700 |
Port the LLM engine listens on. |
--port |
No | 9600 |
Port Conduit listens on (for the engine control plane). |
--root |
No | $HOME/.cache/infersec/iagent |
Root directory for model files and engine state. |
--start-mode |
No | auto |
auto boots the engine immediately; idle leaves Conduit waiting. |
tool connect <toolID>
Connects a local tool (currently local-filesystem) to Infersec so it can be invoked by server-side tool calling.
| Flag / positional | Required | Default | Notes |
|---|---|---|---|
<toolID> |
Yes | - | Tool ID to connect. |
--key |
Yes | - | Infersec API key. |
--path |
No | . (current directory) |
Filesystem base path. Access is confined within this path. |
--read-only |
No | false |
Expose only read operations. |
--api-url |
No | https://api.infersec.ai |
API base URL. |
models list / models clear
Manage cached model files on disk (the models/ directory under --root).
| Flag | Command | Default | Notes |
|---|---|---|---|
--root |
both | - | Override root directory (or ROOT_DIRECTORY env). |
--force |
models clear |
false |
Skip the interactive confirmation prompt. |
--model |
models clear |
- | Clear a specific model by ID prefix instead of all cached models. |
benchmark run
Runs benchmarks from a benchmarks.json config file. Typically used by the Infersec team to populate Recommended Models; most users do not need this.
| Flag | Required | Default | Notes |
|---|---|---|---|
--config |
Yes | - | Path to benchmarks.json. |
--api-url |
No | env | API base URL (or API_URL env). |
--api-key |
No | env | API key (or API_KEY env). |
--account-id |
No | env | Account ID (or ACCOUNT_ID env). |
--output-dir |
No | config | Override output directory. |
Environment variables
Every CLI flag has a corresponding environment variable. Flags override env vars when both are provided.
Inference
| Variable | Required | Default | Notes |
|---|---|---|---|
ENGINE |
Yes | - | Engine type (matches --engine). |
API_KEY |
Yes | - | API key (matches --key). |
SOURCE |
Yes | - | Inference source ID (matches --source). |
API_URL |
No | https://api.infersec.ai |
API base URL (matches --api-url). |
ENGINE_PORT |
No | 9700 |
Engine port (matches --engine-port). |
PORT |
No | 9600 |
Conduit listen port (matches --port). |
ROOT_DIRECTORY |
No | $HOME/.cache/infersec/iagent |
Root directory (matches --root). |
START_MODE |
No | auto |
Startup mode (matches --start-mode). |
AUTO_PORTS |
No | false |
Auto-allocate Conduit and engine ports. Conflicts with PORT/ENGINE_PORT. |
Tool connect
| Variable | Required | Default | Notes |
|---|---|---|---|
API_KEY |
Yes | - | API key (matches --key). |
TOOL_ID |
Yes | - | Tool ID (matches <toolID> positional). |
TOOL_PATH |
No | . |
Filesystem base path (matches --path). |
READ_ONLY |
No | false |
Expose only read operations (matches --read-only). |
API_URL |
No | https://api.infersec.ai |
API base URL (matches --api-url). |
Docker
When running Conduit in Docker, pass the same environment variables via -e flags (or an env file). The model cache and engine state should be mounted as a volume so they survive container restarts.
docker run -d \
--name infersec-conduit \
-p 9600:9600 \
-v ~/.cache/infersec/iagent:/data/iagent \
-e ENGINE=llama.cpp \
-e API_KEY=your-api-key \
-e SOURCE=your-source-id \
-e ROOT_DIRECTORY=/data/iagent \
node:24 \
npx @infersec/conduit inference start
The relevant env vars in a container context are:
| Variable | Notes |
|---|---|
ENGINE |
Engine type. For Docker-based engines (vllm), use a pre-built image — see Engine Docker Images. |
API_KEY |
Infersec API key. |
SOURCE |
Inference source ID. |
API_URL |
Override the API base URL (e.g. for self-hosted deployments). |
ROOT_DIRECTORY |
Path inside the container where model files are stored. Mount this as a volume. |
ENGINE_PORT |
Port the LLM engine listens on (only relevant when Conduit launches the engine itself). |
PORT |
Conduit listen port. |
START_MODE |
auto (default) boots the engine; idle waits for an external engine. |
HF_HOME |
HuggingFace cache location (set by the pre-built engine images to /data/hf-cache). |
For pre-built images that bundle Conduit with vLLM for specific hardware (AMD ROCm, NVIDIA CUDA, NVIDIA DGX Spark), see Engine Docker Images.