A tool designed to start a new Jupyter kernel programmatically using jupyter_client, enabling execution of notebook cells.
Project description
Swarmauri Tool · Jupyter Start Kernel
A Swarmauri orchestration tool that spins up Jupyter kernels on demand using jupyter_client. The helper wraps connection-file management, kernel specification, and timeout handling so automation pipelines, notebook CI, or Swarmauri agents can acquire fresh kernels with one function call.
- Launches kernels with configurable names and kernel-spec overrides.
- Surfaces ready-to-use connection metadata for downstream orchestration.
- Keeps a reference to the underlying
KernelManagerso you can interact with the kernel lifecycle after launch.
Requirements
- Python 3.10 – 3.13.
- The environment must have Jupyter kernel specs installed (for example the default
python3). - Dependencies (
jupyter_client,swarmauri_base,swarmauri_standard,pydantic) install automatically.
Installation
Install via the packaging tool that matches your workflow. Each command fetches transitive dependencies.
pip
pip install swarmauri_tool_jupyterstartkernel
Poetry
poetry add swarmauri_tool_jupyterstartkernel
uv
# Add to the current project and update uv.lock
uv add swarmauri_tool_jupyterstartkernel
# or install into the active environment without touching pyproject.toml
uv pip install swarmauri_tool_jupyterstartkernel
Tip: When using uv inside this repository, run commands from the repository root so
uvcan resolve the sharedpyproject.toml.
Quick Start
The tool behaves like a callable. Instantiate it and optionally pass a kernel_name, timeout, or kernel spec.
from swarmauri_tool_jupyterstartkernel import JupyterStartKernelTool
start_kernel = JupyterStartKernelTool()
result = start_kernel() # defaults to python3
print(result)
# {
# 'status': 'success',
# 'kernel_id': '03c7d8f9-ec4d-4a8a-8a90-cdb35ff9e6c9',
# 'kernel_name': 'python3',
# 'connection_file': '/Users/.../jupyter/runtime/kernel-03c7d8f9.json'
# }
A non-success status signals the kernel failed to spawn (missing kernelspec, permission issue, etc.).
Usage Scenarios
Launch With Custom Specification
from swarmauri_tool_jupyterstartkernel import JupyterStartKernelTool
start_kernel = JupyterStartKernelTool()
config = {
"env": {"EXPERIMENT_FLAG": "1"},
"resource_limits": {"memory": "1G"}
}
custom = start_kernel(kernel_name="python3", kernel_spec=config, startup_timeout=20)
if custom["status"] == "success":
print(f"Kernel ready at {custom['connection_file']}")
else:
raise RuntimeError(custom["message"])
Pass a kernel_spec dict to tweak environment variables or other launch parameters that the underlying KernelManager accepts.
Pair With the Shutdown Tool in an Automated Flow
from swarmauri_tool_jupyterstartkernel import JupyterStartKernelTool
from swarmauri_tool_jupytershutdownkernel import JupyterShutdownKernelTool
start_kernel = JupyterStartKernelTool()
shutdown_kernel = JupyterShutdownKernelTool()
launch = start_kernel(kernel_name="python3")
if launch["status"] != "success":
raise RuntimeError(launch["message"])
kernel_id = launch["kernel_id"]
print(f"Kernel started: {kernel_id}")
# ... run your notebook execution workflow ...
cleanup = shutdown_kernel(kernel_id=kernel_id, shutdown_timeout=10)
print(cleanup)
Use this pairing in CI pipelines or agent flows that must guarantee kernels are torn down after execution.
Integrate Inside a Swarmauri Agent
from swarmauri_core.agent.Agent import Agent
from swarmauri_core.messages.HumanMessage import HumanMessage
from swarmauri_standard.tools.registry import ToolRegistry
from swarmauri_tool_jupyterstartkernel import JupyterStartKernelTool
registry = ToolRegistry()
registry.register(JupyterStartKernelTool())
agent = Agent(tool_registry=registry)
message = HumanMessage(content="start a python3 kernel for my notebook batch job")
response = agent.run(message)
print(response)
The agent resolves the registered tool, starts a kernel, and returns the connection metadata to the conversation context.
Troubleshooting
No such kernel– The requestedkernel_nameis not installed. Checkjupyter kernelspec list.Kernel start timeout exceeded– Increasestartup_timeoutfor slow environments or pre-warm interpreters.- Permission errors – Ensure the process can create files inside Jupyter's runtime directory (usually
~/.local/share/jupyter/runtime).
License
swarmauri_tool_jupyterstartkernel is released under the Apache 2.0 License. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarmauri_tool_jupyterstartkernel-0.9.3.dev5.tar.gz.
File metadata
- Download URL: swarmauri_tool_jupyterstartkernel-0.9.3.dev5.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a85bea066f58fbc4d0e9ce224dbda099c0c67abd46482966999284730f87b90
|
|
| MD5 |
c50f8697e0e142da8093560ed7d847d2
|
|
| BLAKE2b-256 |
d6f33c7c2edc12c7c94bb79127db375c6430dea5556b593bc4592babb189e279
|
File details
Details for the file swarmauri_tool_jupyterstartkernel-0.9.3.dev5-py3-none-any.whl.
File metadata
- Download URL: swarmauri_tool_jupyterstartkernel-0.9.3.dev5-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d20735f9c584e0e13817745e84d41e4702857548cc3f791c5649d892d40c7b5
|
|
| MD5 |
bb184653a09cb50058132df9b9c7a030
|
|
| BLAKE2b-256 |
f32a9b9a8f5c4df0f491f6590c1230dad329e29cfa3f1b36a0aa27b97bb195e6
|