Install

Both packages, and which extras you actually need.

If you just want to try this, run these two commands and skip the rest of the page:

pip install "runspace[agentino,workspace,server]"

export AI_BASE_URL="https://api.openai.com/v1"   # any OpenAI-compatible endpoint
export AI_API_KEY="sk-..."

That gives you the whole thing — the agent framework, the workspace it runs in, and an HTTP server to reach it. Check it landed:

python -c "import runspace, agentino; print('ok')"

Then go to your first agent.

Everything below is reference: what those extras mean, and how to install less.

What you just installed

Two packages, because they are useful separately.

Agentino is the agent framework — the loop that calls a model, runs your tools and hands back the result. Runspace is the workspace around it: channels, a scheduler, storage, and the rendering layer that turns an answer into a chart instead of a paragraph describing one.

The command above installs Runspace and asks it to bring Agentino along. If you only want one of them:

pip install agentino-framework                  # the framework alone
pip install "runspace[workspace,server]"        # the workspace, no agent runtime

Runspace does not require Agentino. Agentino is one harness among several: the thing that actually executes a turn. Runspace also drives Claude Code, Codex, OpenClaw and pi, which is why the harness is an extra rather than a dependency — you pick it with one line of workspace.yml and nothing else in the workspace changes. See harnesses for the full list and how to swap between them.

The distribution is named agentino-framework because the agentino name on PyPI belongs to an unrelated project. It still imports as agentino.

Nothing else to configure

Both packages run with no other environment set. Runspace falls back to a local SQLite file for messages and a directory on disk for files, so a fresh install starts and persists without a database. Point SUPABASE_URL and SUPABASE_KEY at a project and the same code writes there instead.

One gotcha worth knowing. The two packages read different variable names, because either can be used without the other:

# Runspace
export AI_BASE_URL="https://api.openai.com/v1"
export AI_API_KEY="sk-..."

# Agentino
export AGENTINO_BASE_URL="https://api.openai.com/v1"
export AGENTINO_API_KEY="sk-..."

If you run agents through Runspace, the AI_* pair is enough. Set the AGENTINO_* pair as well only if you also call Agentino directly — otherwise it falls back to OPENAI_API_KEY, then ~/.agentino/auth.json, then its default endpoint of https://api.openai.com/v1, and will quietly use that default rather than the endpoint you configured for Runspace.

Runspace extras

The core install is deliberately small — pydantic, httpx, pyyaml and a cron parser. Everything else is opt-in:

ExtraPulls inUse it when
agentinoAgentinoYou want agents running in-process rather than shelling out to a CLI
workspaceThe gateway, registry and messagingYou want the workspace backend, not just the protocol layer
serveruvicorn, fastapiYou are serving over HTTP
documentsreportlab, openpyxl, python-docxAgents produce PDFs or Office files
redisredisSessions shared across processes
supabasesupabaseMessages and files persist to Postgres instead of SQLite
schedulercroniterScheduled routines
crawlerbeautifulsoup4The web-crawl helpers
embeddingsopenaiEMBEDDINGS_BACKEND=openai; without it that backend raises at call time
alleverything aboveYou are exploring
devthe extras the suite exercises, plus agentino, pytest and ruffWorking on runspace itself — a fresh pip install -e ".[dev]" gives a checkout where the whole suite runs

Agentino extras

Three dependencies at the core. Everything heavier is opt-in, and agentino.tools.std imports each lazily, so a tool you do not use costs nothing.

ExtraPulls inUse it when
docgenreportlab, openpyxl, python-docx, python-pptx, markdownAgents produce PDFs, spreadsheets, documents or slides
memorynumpyThe knowledge base uses dense embeddings
webfeedparser, beautifulsoup4Web search, RSS and page fetching
telegramaiogramThe Telegram transport
slackslack-bolt, aiohttpThe Slack transport, in Socket Mode
websocketaiohttpThe WebSocket transport
servefastapi, uvicorn, starlette--serve, the webhook and WhatsApp transports
stdtoolsmemory, docgen, webEvery built-in tool
transportstelegram, slack, websocket, serveEvery channel
alleverything aboveYou are exploring
devpytest, pytest-asyncio, ruffWorking on agentino itself