Simple websocket chat server in Python with a single bash tool.
- One Python websocket server (
WS /ws) - One health endpoint (
GET /health) - One agent tool:
bash - OpenRouter model via
pydantic-ai - Works locally and in Docker
OPENROUTER_API_KEY(required)OPENROUTER_MODEL(optional, defaultmoonshotai/kimi-k2.5)WORKSPACE_PATH(optional, default./workspacelocally or/workspacein Docker)
python3 -m venv venv
source venv/bin/activate
pip install -r agent/requirements.txt
OPENROUTER_API_KEY="your-key" \
OPENROUTER_MODEL="moonshotai/kimi-k2.5" \
WORKSPACE_PATH="$PWD/workspace" \
bash scripts/start.shBuild image:
docker build -t autonomous-agent .Run one agent:
docker run --rm -p 8000:8000 \
-e OPENROUTER_API_KEY="your-key" \
-e OPENROUTER_MODEL="moonshotai/kimi-k2.5" \
-e WORKSPACE_PATH="/workspace" \
-v "$PWD/workspace:/workspace" \
autonomous-agentRun multiple isolated agents:
docker run --rm -p 8001:8000 -e OPENROUTER_API_KEY="your-key" -v "$PWD/ws1:/workspace" autonomous-agent
docker run --rm -p 8002:8000 -e OPENROUTER_API_KEY="your-key" -v "$PWD/ws2:/workspace" autonomous-agentEach container gets isolated filesystem via a different mounted workspace.
python3 test_client.py --ws-url ws://localhost:8000/wsCommands:
- normal text: send chat
/ping: send ping/quit: exit