aiomonitor
Adds monitor and Python REPL capabilities for asyncio applications
What it is and what it does
aiomonitor is a development and debugging tool for asyncio applications that runs a monitor server in a background thread, allowing you to inspect and interact with a running event loop without blocking it. The monitor provides a telnet interface (port 20101) and a Python REPL where you can execute async commands, list and cancel tasks, view stack traces, and explore application state—useful when the event loop itself is blocked or unresponsive.
The package depends on aioconsole, click, prompt-toolkit, and several other async/terminal libraries to provide its interactive console and command interface. It is designed as a drop-in addition to existing asyncio or aiohttp applications, with a simple context-manager API. The tool is inspired by curio's monitor and is primarily intended for development and debugging rather than production monitoring.
Use it for:
- Debug a stuck or slow asyncio application by connecting to the monitor and inspecting task state without restarting.
- Explore live application variables and execute async test queries inside a running event loop via the Python console.
- Cancel hung or runaway tasks from a remote terminal without stopping the entire application.
- Inspect task creation and termination chains to understand concurrency flow during development.
- Add custom monitoring commands to your asyncio app by extending aiomonitor with your own console commands.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds a concurrent monitor and interactive Python REPL to asyncio applications, accessible via telnet or a built-in CLI client, allowing inspection and control of running tasks without blocking the event loop.
Yes, if you develop or debug asyncio applications. Low install friction, active maintenance, no known vulnerabilities, and Apache-2.0 licensing make it a safe choice. The tool is mature enough for development workflows but is explicitly designed for that use case, not production monitoring—clarify your intent before relying on it for live systems.
Install
aiomonitor on PyPI
pip
pip install aiomonitoruv
uv add aiomonitorpoetry
poetry add aiomonitorInstalling aiomonitor
Before you install
Low friction: pure Python wheel with 12 runtime dependencies, all common async/CLI libraries. Active maintenance as of July 2026, with recent Python 3.13 support added in November 2024.
License in practice
Apache-2.0 permissive license; safe for commercial and proprietary use with minimal obligations beyond attribution.
Quickstart
import asyncio
import aiomonitor
async def main():
loop = asyncio.get_running_loop()
with aiomonitor.start_monitor(loop):
await asyncio.sleep(10)
asyncio.run(main())
# Then: telnet localhost 20101
Requires Python 3.9+ (3.8 dropped in 0.7.1); monitor runs in a separate thread and listens on port 20101 by default.
Verify before relying
- Whether the monitor thread overhead is acceptable for production workloads or primarily intended for development.
- Performance impact when many tasks are running or event loop is under heavy load.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — attrs, aiohttp, click, janus, jinja2, terminaltables, trafaret, typing-extensions, prompt-toolkit, aioconsole, telnetlib3, backports.strenum |
| Maintenance | actively maintained — 641 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 297,102/month — #7,889 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aiomonitor-0.7.1-py3-none-any.whl
Keywords: asyncio, aiohttp, monitor, debugging, utility, devtool
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
aioconsoleProvides asynchronous equivalents to Python's…
copyleft · top 5,000 on PyPI
aiosignalProvides a Signal class for managing lists of…
permissive · top 100 on PyPI
aiotoolsaiotools provides idiomatic asyncio utilities…
permissive · top 15,000 on PyPI
aiojobsaiojobs provides a scheduler for spawning and…
permissive · top 15,000 on PyPI
aiorunProvides a simplified entry point for asyncio…
permissive · top 15,000 on PyPI
aa-taskmonitorA Django admin plugin for Alliance Auth that…
permissive · top 15,000 on PyPI
aiovlcControl VLC media player over a telnet…
permissive · top 15,000 on PyPI
aiomultiprocessCombines AsyncIO and multiprocessing to run…
permissive · top 5,000 on PyPI
nest-asyncio2Patches asyncio to allow nested event loops,…
permissive · top 1,000 on PyPI
aiocopDetects and logs blocking I/O and CPU calls in…
permissive · top 15,000 on PyPI