monkeybot agent harness — FastAPI SSE gateway, owned loop, SQLite, and MCP.
Project description
monkeybot
monkeybot is an owned agent runtime for tool-using LLMs: a FastAPI SSE gateway, pluggable storage, MCP tools, skills, and memory. Run locally with zero cloud dependencies, or ship the same container image anywhere Docker runs.
Docs and examples are GCP-first (Vertex, GCS, Cloud Run); AWS paths ship in the Pattern guides. See Cloud deployment — Positioning.
[!NOTE] Skills under
SKILLS_PATHexecute Python code — only add skills from trusted sources.
Quick start
Install uv, then:
uv tool install monkeybot-cli
monkeybot new --dest ./my-agent --provider openai --yes
cd my-agent
uv sync
cp .env.example .env # add provider keys
monkeybot doctor
monkeybot chat
Upgrade the CLI with uv tool upgrade monkeybot-cli. Full walkthrough: Getting Started.
What you get
- SSE gateway — sessions, streaming, health; wire your own UI or use the CLI
- Realtime talk — WebSocket voice/text via
monkeybot talk - MCP + skills — stdio/HTTP tools and trusted Python skill bundles
- Pluggable storage — SQLite by default; Postgres, Firestore, GCS, S3
- Multi-provider — Gemini/Vertex, OpenAI, Anthropic, Bedrock, Ollama, and more
CLI
| Command | Purpose |
|---|---|
monkeybot new |
Scaffold config, workspace, agent pyproject.toml, .env.example |
monkeybot validate |
Check monkeybot.yaml, paths, and MCP config |
monkeybot doctor |
Verify Python, extras, credentials, and port |
monkeybot run |
Start the SSE gateway in the foreground |
monkeybot chat |
Talk over SSE (spawns the gateway; --attach to join one) |
monkeybot talk |
Realtime voice/text over WebSocket (--text for typed input) |
monkeybot chat # spawn gateway + REPL
monkeybot run # terminal 1: gateway with logs
monkeybot chat --attach # terminal 2: attach to it
Provider extras live on the agent pyproject.toml (monkeybot[<provider>]), not the global CLI. See Getting Started and Features — CLI.
Agent skill
npx skills add human-plus-machine/monkeybot --skill monkeybot
Walks through install, scaffold, config, and first chat. Source: cli/skills/monkeybot/.
Documentation
| Guide | Description |
|---|---|
| Getting Started | Install, configure, sessions + SSE from the CLI |
| Features | Architecture, capabilities, CLI, task queue |
| SSE gateway and custom UI | HTTP + SSE endpoints, event types, CORS |
| Skills | Skill directory layout and SKILL.md discovery |
| Model Context Protocol | MCP config, env interpolation, OAuth2 |
| Cloud deployment | Positioning + Patterns A–D index |
| Live evals | Smoke suite, local + CI scorecard |
| Observability | OpenTelemetry tracing runbook |
Integrations matrix and roadmap: CHANGELOG · BACKLOG.
Contributing
Clone only if you are changing the harness. Setup, checks, and the release workflow are in CONTRIBUTING.md. Live eval smoke fixture: evals/smoke_agent/.
Support
Search or open an issue in the GitHub issue tracker.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file monkeybot-2.2.0.tar.gz.
File metadata
- Download URL: monkeybot-2.2.0.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e241df63c81446fcee1d61895e892bb0418a2114e0cd2b9170d1f62cc6cecda2
|
|
| MD5 |
f84a48185a6bd03dc361b78380d91fc1
|
|
| BLAKE2b-256 |
a2eeb2c5e6b79b16047ce1d1583d35e854a307abbcc1caaa9c7d9e2f53db5bbe
|
Provenance
The following attestation bundles were made for monkeybot-2.2.0.tar.gz:
Publisher:
publish-release.yml on human-plus-machine/monkeybot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monkeybot-2.2.0.tar.gz -
Subject digest:
e241df63c81446fcee1d61895e892bb0418a2114e0cd2b9170d1f62cc6cecda2 - Sigstore transparency entry: 2165316853
- Sigstore integration time:
-
Permalink:
human-plus-machine/monkeybot@1f9018d650baa06cf00506c234b21f9ac14c9295 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/human-plus-machine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-release.yml@1f9018d650baa06cf00506c234b21f9ac14c9295 -
Trigger Event:
push
-
Statement type:
File details
Details for the file monkeybot-2.2.0-py3-none-any.whl.
File metadata
- Download URL: monkeybot-2.2.0-py3-none-any.whl
- Upload date:
- Size: 372.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f0afe38aa95e084320f32ea9aa7581cf9911eef0ccda0fd30d9c76c6a977236
|
|
| MD5 |
9524a89cfd7b49e7c8991674380657c6
|
|
| BLAKE2b-256 |
1c225e75e400611110b7dd6f55290f6e827871aa2fccda78ce5eb960300ecd6c
|
Provenance
The following attestation bundles were made for monkeybot-2.2.0-py3-none-any.whl:
Publisher:
publish-release.yml on human-plus-machine/monkeybot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
monkeybot-2.2.0-py3-none-any.whl -
Subject digest:
4f0afe38aa95e084320f32ea9aa7581cf9911eef0ccda0fd30d9c76c6a977236 - Sigstore transparency entry: 2165316970
- Sigstore integration time:
-
Permalink:
human-plus-machine/monkeybot@1f9018d650baa06cf00506c234b21f9ac14c9295 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/human-plus-machine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-release.yml@1f9018d650baa06cf00506c234b21f9ac14c9295 -
Trigger Event:
push
-
Statement type: