Guides
- Quickstart
- Authentication and keys
- Key protection
- Models, aliases and fallbacks
- Automatic model choice (silicon/auto)
- Chat completions
- Streaming
- Structured outputs and tools
- Logprobs
- Vision
- Responses, Claude and Ollama
- Embeddings, rerank, audio, images
- Files and batches
- Documents and search
- LoRA adapters
- Project tags and costs
- Prefix caching
- Headers, rate limits and spend caps
- Errors
- Privacy and retention
- Verifiable receipts
- Data residency
- Pricing
- Billing
- Pay per request (x402)
- On-chain oracle
- Agent credit (backed compute lines)
- Status
- SDKs
- Swift SDK
- Integrations
- Run a node
- Linux agent
- Compute API
- Architecture
- Changelog
- Glossary
API reference
Operator guide
Linux agent
The node agent lets an approved operator offer a Linux GPU rig or server for work other than AI inference: rendering, training jobs, mining and, later, servers. It runs each job as a container on your machine and reports to the control plane.
Off: not accepting work
The agent is built, but the network does not accept Linux agents yet and sends them no jobs. An agent started today registers nothing and runs nothing: it logs that Linux agents are switched off and asks again every ten minutes. Payouts are off too. This page describes how it will work once it is switched on.
What it does
- It dials out to the control plane over HTTPS with your operator credential (
snop_...), the same one an engine node uses. It opens no port. - It advertises the machine: CPU, memory, GPUs with model and VRAM (through
nvidia-smiorrocm-smi), free disk, region, and the workloads and prices you chose. - It polls for jobs, runs each in a container through Podman or Docker, ships its logs, reports usage every minute, and stops a job when the network asks, when it exits or when its time limit is up.
How jobs are isolated
Every job runs with these settings, set by the agent and not by the customer:
- no privileged mode, no host network, process, IPC or user namespace, no published port, and no host path except the job's own scratch directory
- every capability dropped, no new privileges, an unprivileged user and a read-only root filesystem
- your CPU, memory, process and shared memory limits, and a hard time limit
- GPUs only when you allow them
- images pinned by digest only; environment variables passed through a private file, never on the command line
Network per workload
Rendering and training jobs get no network unless you allow outbound access. Mining gets outbound access only, on a network of its own. Servers are meant to take inbound traffic through the Silicon Network relay only; that route is not built yet, so the network does not offer servers on operators' machines yet.
You run the job, so you can see its command and environment variables. Disk use under the scratch directory is not capped: keep the agent's state directory on a volume jobs may fill.
Prices and earnings
You set your own price per workload: USD per GPU hour for training and rendering, per hour for mining and servers. The network shows a price only as the offer of a machine that is online, never as a market price. The control plane measures each job's time itself and bills the lower of its own measure and your agent's. While payouts are off, work done would only show as pending earnings.
Install
You need Linux (x86_64 or arm64), Python 3.11 or newer, and Podman 4 or Docker 24 or newer; for NVIDIA GPUs the NVIDIA Container Toolkit, for AMD GPUs ROCm. Become an operator on the dashboard's Nodes page first. The full steps, the example config and the systemd unit are in node-agent/README.md in the repository.
# as root, on the Linux machine
git clone https://github.com/ekempinski/siliconnetwork /opt/silicon-node-agent
python3 -m venv /opt/silicon-node-agent/.venv
/opt/silicon-node-agent/.venv/bin/pip install --require-hashes \
-r /opt/silicon-node-agent/node-agent/requirements.txt
# the credential, readable by root only
install -d -m 700 /etc/silicon-node-agent
sh -c 'umask 077; printf "%s\n" "snop_..." > /etc/silicon-node-agent/credential'
# the config: accepts nothing until you list workloads and prices
cp /opt/silicon-node-agent/node-agent/agent.example.toml /etc/silicon-node-agent/agent.toml
# check the config and the hardware (sends nothing)
cd /opt/silicon-node-agent/node-agent
/opt/silicon-node-agent/.venv/bin/python -m silicon_node_agent check
/opt/silicon-node-agent/.venv/bin/python -m silicon_node_agent detectYour config accepts nothing until you list workloads and set a price for each. check and detect send nothing.
To serve AI inference on a Mac, see Run a node.