Runspace gives them channels, threads, a schedule and a UI that answers in charts — from one YAML file. Bring any runtime.
A tool is an async function with a decorator. The runtime reads its signature, offers it to the model, and handles the round-trip, retries and dispatch.
Write your first agent →Declare the agents once. They arrive in shared channels you reach by @mention, with history, uploads and a scheduler already wired.
Serve a workspace →Agents emit fenced blocks that render as charts, tables, KPI cards and callouts — so a number arrives as a number, not a paragraph about one.
See the blocks →The same agents answer in Telegram, Slack and WhatsApp. Pairing and group mention routing are handled; replies land back in the thread they came from.
Wire a gateway →A routine is a cron line and a prompt in routines.yml. The morning summary posts to its channel before anyone asks for it.
Schedule a routine →One line of config picks who answers: Agentino in-process, or the Codex, Claude Code, Pi or OpenClaw CLI. The workspace never learns which.
Compare runtimes →Runspace’s core is four dependencies. Everything else — a database, document rendering, Redis, a scheduler — is an extra you opt into.
Agents running in-process, with channels, routines and a UI around them.
$ pip install "runspace[agentino,workspace,server]"Neither is on PyPI — the agentino name there belongs to an unrelated project. Both import under their own name either way.
The things you change while tuning an agent — its prompt, its model, how many turns it gets — are configuration, and a colleague who does not write Python can own them. The things you change while building a capability are functions.
agents: reviewer: model: gpt-5.4-codex instructions_file: prompts/reviewer.md tools: [read_file, grep, shell] # auto-discovered knowledge: dir: ./knowledge # TF-IDF + embeddings$ agentino run agents.yml -m "Review PR #42"Declare the agents and Runspace gives you the room they work in: channels with threads and mentions, streaming chat, attachments, an activity feed and a scheduler. It starts with no database — SQLite on disk — and moves to Postgres by setting two variables.
name: Acme Back Officeicon: 🗂brand_color: '#2F5D62'apps: analyst: name: Ada soul: agents/analyst/SOUL.md tools: agents/analyst/tools/ model: gpt-5.4-codex$ python -m runspace.workspace.serve workspace.ymlRunspace is not tied to Agentino. Five adapters ship, and an app picks one with a single line of config. The four CLI adapters shell out to a binary you install, so Runspace depends on none of them — and the workspace never learns which one answered.
type: agentino # in-processtype: codex # codex exec --jsontype: claude_code # claude -p --output-format stream-jsontype: pi # pi --printtype: openclaw # openclaw agent --local --jsonapps: reviewer: name: Rev type: claude_code # the only line that changesAn agent emits a fenced block and the frontend renders it — a chart, a sortable table, KPI cards, a callout. A block with the wrong keys renders as a visible error rather than failing quietly, so the mistake shows up in development instead of in front of someone.
```insight{"kind": "insight", "headline": "Home advantage collapsed in 2020/21", "body": "Home win rate fell 7.6 points the season" " crowds were absent."}``````kpi[{"title": "Home win rate", "value": "37.9%"}, {"title": "Baseline", "value": "45.5%"}]```Both demos are a workspace.yml and a tools directory, served by the same package you would install. Both read live public data — earthquakes and the electricity grid — so they are never the same twice, and the scheduled routines have real work rather than a fixed script.
A desk watching the model landscape on OpenRouter’s public catalogue — 396 models, 105 providers, no key. Ada tracks what launched and what it costs, Rune tracks who serves it and from where, and Ines files the digest on a schedule you can read in routines.yml.
Not a demo. A product running on the same packages, which is the more useful thing to look at — the workspace, the channels and the widget rendering are the ones documented here.
Install, a first agent, a first workspace, then the parts you reach for later — gates, hooks, routines, protocols and the gateway API.
Two years of building agent systems for real businesses, and the argument for why the useful parts belong in the open rather than in one company's repo.
Install both halves, serve a workspace, point an agent at your own tools. Apache-2.0, no hosted plan, nothing to sign up for.
Install