Mantler
Machines

Configuration

Configure mantlerd via the agent.json config file or the mantler config CLI.

mantlerd reads its configuration from a JSON file at startup.

Default paths:

ContextPath
Linux (root)/etc/mantler/agent.json
Linux (non-root) / macOS~/.mantler/agent.json

Core fields

{
  "serverUrl": "https://control.mantler.ai",
  "token": "...",
  "machineId": "...",
  "interval": "30s"
}
FieldDescription
serverUrlControl-plane URL. Defaults to the Mantler hosted service.
tokenMachine-scoped bearer token. Generated when you add a machine in the web app.
machineIdStable machine identifier. Generated alongside the token.
intervalCheck-in interval. Default 30s.

Trust mode

trustMode controls which remote commands mantlerd will execute.

managed (default): all command types are permitted.

restricted: destructive commands (runtime installation, harness/orchestrator execution, agent update, shutdown, etc.) are denied unless explicitly listed in allowedCommands.

{
  "serverUrl": "https://control.mantler.ai",
  "token": "...",
  "machineId": "...",
  "trustMode": "restricted",
  "allowedCommands": ["pull_model", "start_model", "stop_model"]
}

See Security & trust model for the full list of command types.


Disabling the relay proxy

By default, mantlerd proxies inference requests from the relay to local runtime backends (Ollama on 127.0.0.1:11434, etc.). To disable this:

{
  "disableRelayProxy": true
}

LAN model sharing

When allowModelSharing is true, the daemon starts a transfer server on port 7433 that lets other machines on the same LAN pull models from this one. Each transfer request carries an HMAC-signed token distributed by the control plane.

Disabled by default. Only enable if you actually need cross-machine model sharing.

{
  "allowModelSharing": true
}

Verify whether it is active:

mantler info              # shows model-sharing status
ss -tlnp | grep 7433      # confirm whether the port is listening

Disabling the local socket

The daemon creates a Unix domain socket that the mantler CLI uses to delegate operations to the already-running daemon (useful when the daemon runs as root but you want to run the CLI as a normal user). Disable it with:

{
  "disableLocalSocket": true
}

Managing config via the CLI

mantler config show                              # print current config
mantler config path                              # print config file path
mantler config set server https://control.example.com
mantler config set interval 60s

Changes written via mantler config set take effect on the next daemon restart.

On this page