Install
Both packages, and which extras you actually need.
Two packages. Agentino is the agent framework; Runspace is the workspace that runs agents and gives them a UI. You can use either on its own.
Agentino
pip install agentino-framework
The distribution is agentino-framework because the agentino name on PyPI
belongs to an unrelated project. It imports as agentino regardless.
Runspace
pip install "runspace[agentino,workspace,server]"
Which extras you need — Agentino
The core install is three dependencies. Everything heavier is opt-in, and
agentino.tools.std imports each lazily, so a tool you do not use costs
nothing.
| Extra | Pulls in | Use it when |
|---|---|---|
docgen | reportlab, openpyxl, python-docx, python-pptx, markdown | Agents produce PDFs, spreadsheets, documents or slides |
memory | numpy | The knowledge base uses dense embeddings |
web | feedparser, beautifulsoup4 | Web search, RSS and page fetching |
telegram | aiogram | The Telegram transport |
slack | slack-bolt, aiohttp | The Slack transport, in Socket Mode |
websocket | aiohttp | The WebSocket transport |
serve | fastapi, uvicorn, starlette | --serve, the webhook and WhatsApp transports |
stdtools | memory, docgen, web | Every built-in tool |
transports | telegram, slack, websocket, serve | Every channel |
all | everything above | You are exploring |
dev | pytest, pytest-asyncio, ruff | Working on agentino itself |
Which extras you need — Runspace
Runspace's core install is deliberately small — pydantic, httpx, pyyaml
and a cron parser. Everything else is opt-in:
| Extra | Pulls in | Use it when |
|---|---|---|
agentino | Agentino | You want agents running in-process rather than shelling out to a CLI |
workspace | The gateway, registry and messaging | You want the workspace backend, not just the protocol layer |
server | uvicorn, fastapi | You are serving over HTTP |
documents | reportlab, openpyxl, python-docx | Agents produce PDFs or Office files |
redis | redis | Sessions shared across processes |
supabase | supabase | Messages and files persist to Postgres instead of SQLite |
scheduler | croniter | Scheduled routines |
crawler | beautifulsoup4 | The web-crawl helpers |
embeddings | openai | EMBEDDINGS_BACKEND=openai; without it that backend raises at call time |
all | everything above | You are exploring |
dev | the extras the suite exercises, plus agentino, pytest and ruff | Working on runspace itself — a fresh pip install -e ".[dev]" gives a checkout where the whole suite runs |
Nothing else to configure
Both packages run with no environment set. Runspace falls back to a local
SQLite file for messages and a directory on disk for files, so a fresh clone
starts and persists without a database. Point SUPABASE_URL and
SUPABASE_KEY at a project and the same code writes there instead.
You will need one thing to get an actual answer out of an agent — a model endpoint. The two packages read different variable names, because either can be used without the other:
# Agentino
export AGENTINO_BASE_URL="https://api.openai.com/v1"
export AGENTINO_API_KEY="sk-..."
# Runspace
export AI_BASE_URL="https://api.openai.com/v1"
export AI_API_KEY="sk-..."
Set both if you are using both. Any OpenAI-compatible endpoint works.
Agentino also reads OPENAI_API_KEY as a key fallback, and
~/.agentino/auth.json after that. Its default endpoint is
https://api.openai.com/v1 — so if you set only the Runspace names and call
Agentino directly, it will quietly use that default rather than your endpoint.