aiomonitor
Adds monitor and Python REPL capabilities for asyncio applications
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9+ (3.8 dropped in 0.7.1); monitor runs in a separate thread and listens on port 20101 by default.
- 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 · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license; safe for commercial and proprietary use with minimal obligations beyond attribution.
last release 2024-11-11 (641 days) · last repo commit 2026-07-06 · 775 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 297,102 downloads/mo, #7,889 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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.
Requires Python 3.9+ (3.8 dropped in 0.7.1); monitor runs in a separate thread and listens on port 20101 by default.
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
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 packagesattrsaiohttpclickjanusjinja2terminaltablestrafarettyping-extensionsprompt-toolkitaioconsoletelnetlib3backports.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 |
| Classifiers | Development Status :: 3 - AlphaFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: POSIXProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9 |
Evidence: aiomonitor-0.7.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “asyncio task monitoring”
- aiomonitorAdds a concurrent monitor and interactive Python REPL to asyncio…
- opentelemetry-instrumentation-asyncioAdds distributed tracing and metrics to asyncio applications by…
- opentelemetry-instrumentation-exceptionsAutomatically captures uncaught exceptions in your Python process,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also aioconsole · aiosignal · aiotools · aiojobs · aiorun · aa-taskmonitor · aiovlc · aiomultiprocess · nest-asyncio2 · aiocop