Install
openclaw skills install openclaw-antseedConnect OpenClaw to the AntSeed P2P AI network as a buyer. Use when: user asks to connect OpenClaw to AntSeed, route OpenClaw through AntSeed, set up AntSeed...
openclaw skills install openclaw-antseedSet up AntSeed as a model provider for OpenClaw. This installs a local buyer proxy that connects to the AntSeed peer-to-peer network and routes LLM requests to available providers.
OpenClaw → http://127.0.0.1:5005 (AntSeed buyer proxy) → P2P network → Provider node → Upstream API (OpenRouter, Anthropic, etc.)
The buyer proxy runs locally, discovers providers via DHT, and exposes an API-compatible HTTP endpoint.
npm install -g @antseed/cli
antseed plugin add @antseed/router-local-proxy
Verify: antseed --version (requires Node.js 20+).
Run in a terminal or set up as a persistent service:
antseed connect --router local-proxy --port 5005
The proxy will:
http://localhost:5005To run the proxy as a background service that survives reboots:
sudo tee /etc/systemd/system/antseed-buyer.service > /dev/null <<'EOF'
[Unit]
Description=AntSeed Buyer Proxy
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=$USER
ExecStart=/usr/bin/env antseed connect --router local-proxy --port 5005
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=antseed-buyer
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now antseed-buyer
Verify: sudo systemctl is-active antseed-buyer
Ask the user which model they want to use. Available models depend on what providers are active on the network.
openclaw config set models.providers.antseed.baseUrl "http://127.0.0.1:5005"
openclaw config set models.providers.antseed.apiKey "antseed-p2p"
openclaw config set models.providers.antseed.api "anthropic-messages"
The model ID must match a model available on the network. Ask the user or suggest common options. Example for Kimi K2.5 via OpenRouter:
cat ~/.openclaw/openclaw.json | python3 -c "
import sys, json
cfg = json.load(sys.stdin)
providers = cfg.setdefault('models', {}).setdefault('providers', {})
providers['antseed'] = {
'baseUrl': 'http://127.0.0.1:5005',
'apiKey': 'antseed-p2p',
'api': 'anthropic-messages',
'models': [{
'id': 'MODEL_ID_HERE',
'name': 'MODEL_DISPLAY_NAME',
'reasoning': False,
'input': ['text'],
'contextWindow': 131072,
'maxTokens': 8192
}]
}
json.dump(cfg, sys.stdout, indent=2)
" > /tmp/oc_antseed.json && mv /tmp/oc_antseed.json ~/.openclaw/openclaw.json
Replace MODEL_ID_HERE with the actual model (e.g., moonshotai/kimi-k2.5, anthropic/claude-sonnet-4-20250514).
openclaw config set agents.defaults.model.primary "antseed/MODEL_ID_HERE"
The model reference format is antseed/<model-id> where antseed is the provider name.
# Restart the gateway to pick up the new provider
sudo systemctl restart openclaw # or kill and restart the gateway process
# Test the connection
curl -s http://127.0.0.1:5005/v1/models
If the proxy returns available models, the connection is working.
If the proxy can't find providers via DHT, add a known provider as a bootstrap node:
Edit ~/.antseed/config.json and add to the bootstrapNodes array:
{
"bootstrapNodes": [
{ "host": "PROVIDER_IP", "port": 6882 }
]
}
Then restart the buyer proxy.
anthropic-messages API format. The AntSeed proxy translates between formats as needed.apiKey value doesn't matter — set it to any non-empty string (e.g., antseed-p2p). The proxy doesn't validate it.antseed --version prints a versionantseed connect --router local-proxy --port 5005 starts without errorscurl http://127.0.0.1:5005/v1/models returns available modelsmodels.providers.antseed configuredagents.defaults.model.primary is set to antseed/<model-id>maxTokens.