Getting Started
Building an autonomous consumer or provider? Connect an AI agent →
Pick the path that matches what you want to do today. You can use IICP without running a node: try it, send one routed task, and only provide capacity when you are ready.
Run a local browser model. No install, no account.
Install a client and ask the mesh from your terminal or app. No node required.
Run a node when you want to share a local model and earn credits.
Route one useful task before you run anything.
Install the client, ask the mesh, then inspect what happened. This is the recommended first step for developers and agent builders.
pip install iicp-client iicp-node --version iicp-node query "Explain IICP in one sentence."
- Your client contacted the public directory.
- The directory returned a short-lived route for a live node that advertises the chat intent.
- The client skipped nodes that are not privacy-ready by default.
- Your request was sent to a selected provider node, not executed by the directory.
- The AI-generated response came back through the mesh path and printed in your terminal.
iicp-node query "..." --routing-profile sensitive to fail closed instead of sending to a remote executor. For data-handling limits and beta rights requests, see the privacy notice baseline. For AI-interaction and generated-output disclosure limits, see the AI transparency baseline.Prefer to call it from your app? The same request as one chat() call:
from iicp_client import IicpClient, ChatMessage
import asyncio
async def main():
reply = await IicpClient().chat_async(
[ChatMessage(role="user", content="Hello, mesh.")])
print(reply)
asyncio.run(main())Defaults to the public directory at iicp.network — no setup on your side.
Use this after the client path, when you want to provide compute. Inspect the installer first, then run it.
# Recommended: inspect first curl -fsSL https://iicp.network/install.sh -o iicp-install.sh less iicp-install.sh sh iicp-install.sh # Fast path after you trust it curl -fsSL https://iicp.network/install.sh | sh iicp-node serve # registers + auto-detects your local model
Don't have a model yet? Install Ollama and run ollama pull qwen2.5:0.5bfirst — it runs on CPU, ~400 MB, no graphics card needed. Current clients also recover more gracefully from laptop sleep, Wi-Fi changes and temporary tunnel cooldowns when run under a supervisor.
Want the full API reference, every operator path, CIP guides, and endpoints? Switch to Expert mode using the toggle at the top of the page.
Use it from your code
Two steps: install the client for your language, then call chat(). The client finds a live node and routes your request for you — no account, no API key, and nothing to run on your side.
standard, sensitive, eu-restricted and strict-policy so deployers can fail closed before dispatch. The compliance-readiness path is intentionally separate from this quickstart: read Privacy & security and the privacy notice baseline, then review the AI transparency baseline before routing sensitive or regulated data.pip install iicp-client
from iicp_client import IicpClient, ChatMessage
import asyncio
async def main():
reply = await IicpClient().chat_async(
[ChatMessage(role="user", content="Hi")])
print(reply)
asyncio.run(main())iicp-node --version iicp-node query "Hello, mesh."
The query discovers a live node and prints the reply. You do not need to run a node for this client path.
The details (versions, API, defaults)
All three clients share the same API — discover(), submit(), chat() — with feature parity (ADR-016). They default to https://iicp.network/api as the directory; point elsewhere to use your own.
Requires Python ≥ 3.11 · Node.js ≥ 18 · Rust ≥ 1.86. Prefer zero install? Run a model in your browser →
Run a node
Install the iicp-node CLI from a public package registry, then it can auto-detect your local Ollama and register with the mesh.
# Choose one published SDK pip install iicp-client # npm install -g @iicp/client # cargo install iicp-client --features nat,iicp-tcp iicp-node serve # registers + auto-detects your model iicp-node query "What is 2+2?" # confirm it's routing
Configure with env vars (IICP_BACKEND_URL, IICP_BACKEND_MODEL); logs in ~/.iicp/logs/. Port 9484 must be reachable — port-forwarding guide (or a free Cloudflare Tunnel, no router config). Current clients prefer direct routes, pace automatic Quick Tunnel fallback, and let launchd/systemd/Docker retry temporary route failures instead of advertising unsafe endpoints.
No GPU? Step-by-step with Ollama (≤ 10 min, CPU)
- Install Ollama:
curl -fsSL https://ollama.com/install.sh | sh(or ollama.com/download on Windows). - Pull a small model:
ollama pull qwen2.5:0.5b(~400 MB, runs on CPU). - Install + serve:
cargo install iicp-client --features nat,iicp-tcptheniicp-node serve(local Ollama auto-detected). Python alt:pip install iicp-client[nat]. - Verify: your
node_idappears in /nodes within 30 s. Docker:docker compose -f docker-compose.ollama.yml up -d.
IICP is currently in Beta. The published clients are available from their package registries, and interested users and contributors can contact the community or join through the public repositories.
API endpoints
/api/v1/register— Register a new node/api/v1/heartbeat— Update node liveness (every 30s)/api/v1/discover— Discover scored, available nodes by intent/api/v1/dispatch/ticket— Request one short-lived route without sending the task payload/api/v1/registry/nodes— Browse the public node directory/api/v1/stats— Network-wide status and probe health/v1/task— Submit a task to a node (HTTP transport):9484— Native IICP binary framing/v1/relay— Relay coordinator — forward to unreachable nodes/iicp/health— Node health + load