Deployment: Local
Running SLIM as a local binary is the simplest way to deploy a SLIM node on a single machine. This is well suited for running local agents — such as coding agents, automation tools, or any application services that need to communicate on a single host. No Kubernetes or Docker required.
Prerequisites
slimctlinstalled — see SLIM CLI Installation- Or the
slimbinary built from source — see Data Plane Installation
Option 1: Quick Start with slimctl
The fastest path: slimctl slim start launches a SLIM node on 0.0.0.0:46357 with sensible defaults.
slimctl slim start
The node is ready immediately. Connect SDK applications to http://127.0.0.1:46357.
To stop the node, just kill the running process.
Option 2: Run with a Config File
For more control, create a configuration file and run the slim binary directly.
Minimal config (config.yaml):
tracing:
log_level: info
display_thread_names: true
display_thread_ids: true
runtime:
n_cores: 0
thread_name: "slim-data-plane"
drain_timeout: 10s
services:
slim/0:
node_id: slim-local
dataplane:
servers:
- endpoint: "0.0.0.0:46357"
tls:
insecure: true
clients: []
Run the node:
./slim --config config.yaml
Same with slimctl:
slimctl slim start --config config.yaml
Or with Cargo after building from source:
cargo run -p agntcy-slim -- --config config.yaml
Running Multiple Local Nodes
To test multi-node routing locally, run two SLIM instances on different ports and connect them as peers.
Node A (node-a.yaml):
services:
slim/0:
node_id: node-a
dataplane:
servers:
- endpoint: "0.0.0.0:46357"
tls:
insecure: true
clients:
- endpoint: "http://127.0.0.1:46358"
tls:
insecure: true
Node B (node-b.yaml):
services:
slim/0:
node_id: node-b
dataplane:
servers:
- endpoint: "0.0.0.0:46358"
tls:
insecure: true
clients: []
Start both:
./slim --config node-a.yaml &
./slim --config node-b.yaml &
Or:
slimctl slim start --config node-a.yaml &
slimctl slim start --config node-b.yaml &
Applications connected to either node can now route messages to each other.
Running the Channel Manager Locally
To use operator-managed group channels locally, run the Channel Manager alongside the SLIM node. See Channel Manager Installation for build instructions.
# Start the SLIM node first
./slim --config config.yaml &
# Then start the Channel Manager
./channel-manager --config-file channel-manager.yaml
Minimal Channel Manager config pointing at the local node:
channel-manager:
slim-connection:
endpoint: "http://127.0.0.1:46357"
tls:
insecure: true
api-server:
endpoint: "127.0.0.1:10356"
tls:
insecure: true
local-name: "agntcy/local/channel-manager"
auth:
type: shared_secret
secret: "change-me-before-going-to-production"
Next Steps
- SDK Tutorials — Connect your application to the running node
- Data Plane Configuration Reference — All available config options
- Docker Deployment — Run SLIM in containers