Skip to main content

Quick Start

Spin up FleetLM locally, register an agent webhook, and send your first message.

1. Run the stack

Checkout the repository

git clone https://github.com/cpluss/fleetlm.git
cd fleetlm

Run the test stack using docker

docker compose up

The API and WebSocket endpoints are available at http://localhost:4000 and ws://localhost:4000/socket.

2. Register an agent

Tell FleetLM where your agent lives.

curl -X POST http://localhost:4000/api/agents \
-H "Content-Type: application/json" \
-d '{
"agent": {
"id": "demo-agent",
"name": "Demo Agent",
"origin_url": "http://localhost:3000",
"webhook_path": "/webhook",
"message_history_mode": "tail",
"message_history_limit": 10,
"timeout_ms": 30000,
"status": "enabled"
}
}'

Your webhook will receive the session id, agent id, user id, and the most recent messages. See Agent Webhooks for the exact format.

3. Create a session

Every session need to be created upfront so we know what agent to connect it to.

curl -X POST http://localhost:4000/api/sessions \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"agent_id": "demo-agent"
}'

Save the id from the response. All future REST and WebSocket calls reference it.

4. Send a message

Sending a message using the REST API is easy, and follows a flexible format that mirror many popular platforms (e.g. OpenAI) today.

curl -X POST http://localhost:4000/api/sessions/{session_id}/messages \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"kind": "text",
"content": {"text": "Hello!"}
}'

FleetLM stores the user message, invokes your agent webhook, and streams each JSONL line your agent returns into the session.

5. Read the conversation

curl http://localhost:4000/api/sessions/{session_id}/messages

You should see the user message and any responses produced by your agent. For real-time streaming or cursor management, continue with Clients.