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>
On Linux (x64) and Apple Silicon Macs you can also install Conduit as a standalone binary - no NodeJS required:
curl -fsSL https://infersec.ai/conduit.sh | bash
The installer detects your platform, downloads the binary from files.infersec.ai, verifies its checksum, and runs models fit to check your hardware. Extra flags pass straight through to the command (e.g. bash -s -- --json). The binary is cached under ~/.cache/infersec/conduit/<version>/ and reused on later runs. Unsupported platforms (Intel Macs, Linux arm64) exit with an error directing you to npx @infersec/conduit instead.
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 (local-filesystem, local-mysql) to the API |
models fit |
Detect local hardware and suggest models that will run |
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 to Infersec so it can be invoked by server-side tool calling. The tool type is resolved from the server, so the same command connects either a Local Filesystem or Local MySQL tool. See Tools for the full list and what each tool exposes.
| 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 filesystem read operations. |
--url |
No | - | MySQL connection URL (Local MySQL tool). |
--host/--port/--user/--password/--database |
No | - | MySQL connection fields (Local MySQL tool). |
--allow |
No | read-only | MySQL write operations to enable (csv) or all. |
--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. |
models fit
Detects your hardware and suggests models that will run on it. This is the command behind the installer at https://infersec.ai/conduit.sh.
| Flag | Required | Default | Notes |
|---|---|---|---|
--json |
No | false |
Machine-readable output (exits after hardware detection). |
--interactive |
With --key |
false |
Guided session that can deploy suggestions as sources. |
--key |
With --interactive |
- | Infersec API key. |
--api-url |
With --interactive |
https://api.infersec.ai |
API base URL. |
--probe-model |
No | LiquidAI/LFM2.5-350M |
Small model used to calibrate the hardware probe. |
--root |
No | $HOME/.cache/infersec/iagent |
Root directory for model files and engine state. |
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). |
MYSQL_* |
No | - | Local MySQL connection and limits (see Local MySQL). |
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.