This release is a pre-release and may not be stable for production use.
runcell
RunCell is an AI-powered JupyterLab extension for working with notebooks, code, and data more efficiently inside JupyterLab.
It allow you to use LLM like Claude/GPT/Gemini, etc to analysis your notebooks and work in your jupyter lab env.
Requirements
- JupyterLab 4.4 or newer
Installation
Install RunCell from PyPI:
pip install runcell
Then start JupyterLab as usual:
jupyter lab
Non-interactive Agent runtime (preview)
Python programs can call the same headless workspace Agent runtime directly:
import asyncio
from runcell_agent_runtime import (
AgentRunRequest,
AgentRuntime,
AgentRuntimeConfig,
resolve_runtime_credential,
)
async def main():
runtime = AgentRuntime(
AgentRuntimeConfig(
workspace_root="/absolute/workspace",
remote_backend_url="https://service.runcell.dev",
credential=resolve_runtime_credential(),
)
)
handle = await runtime.start(AgentRunRequest("Inspect this workspace"))
result = await handle.result(timeout_seconds=900)
print(result.assistant_text)
asyncio.run(main())
Non-Python programs can use the machine-only one-shot process adapter. It reads one JSON object from stdin and writes one JSON result line to stdout; diagnostics go to stderr.
python -m runcell_agent_runtime <<'JSON'
{
"api_version": 1,
"workspace_root": "/absolute/workspace",
"remote_backend_url": "https://service.runcell.dev",
"message": "Reply with exactly: pong",
"result_timeout_seconds": 900,
"permission_preferences": {"global_mode": "ask_every_time"}
}
JSON
Authentication uses RUNCELL_AGENT_USER_TOKEN when explicitly set, otherwise
the existing RunCell OAuth token store (normally ~/.d5m/tokens/current.json).
The token never belongs in the stdin JSON or command arguments.
result_timeout_seconds limits the wait after the run starts; it is not a full
process or Agent wall-clock limit. If the run reaches a permission request,
times out, or pauses for credits, the adapter reports that state and attempts to
cancel the process-local run before exiting. Use explicit permission preferences
for unattended write operations.
Local Agent Development
From packages/d5m-ai, use the dev agent process manager to run the local development stack:
yarn dev:agent:start
This starts four long-running processes:
server:../../d5m_ai_server/venv/bin/python run_d5m_server.pyfrom the repo root when that backend venv exists, otherwisevenv/bin/python run_d5m_server.pyjupyter:venv/bin/jupyter lab --LabApp.extension_manager=readonlywatch:yarn watchtailwind:npx @tailwindcss/cli -i ./style/tailwind.css -o ./style/tailwindDist.css --watch=always
The manager writes logs and PID files under .dev-agent/, which is ignored by git:
.dev-agent/logs/server.log
.dev-agent/logs/jupyter.log
.dev-agent/logs/watch.log
.dev-agent/logs/tailwind.log
.dev-agent/pids/*.pid
Useful commands:
yarn dev:agent:status
yarn dev:agent:logs
yarn dev:agent:logs:follow
yarn dev:agent:restart:server
yarn dev:agent:restart:jupyter
yarn dev:agent:stop
To send a single Agent V2 task through the Jupyter proxy without driving the UI:
yarn dev:agent:send --message "Create a new notebook with a simple scatter plot" --allow-tools
This calls the local-only POST /api/d5m_ai/v2/agent/dev/send endpoint. The
response is JSON with request_id, session/job metadata, streamed events,
assistant text, tool calls, tool outputs, and any notebooks created via
create_notebook. Pass --notebook path/to/file.ipynb to make an existing
notebook the active target. The same request id is forwarded to the remote
Agent V2 server so Jupyter and server logs can be correlated.
Learn More
For documentation, product updates, and the latest setup information, visit www.runcell.dev.
Metadata
Release files for runcell 0.2.6a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runcell-0.2.6a1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / runcell-0.2.6a1-py3-none-any.whl
| Download URL | runcell-0.2.6a1-py3-none-any.whl |
|---|---|
| Size | 7.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
61d52af0250506d26a68aae6bfcdc80a15a173410948f186426044c18e79102a
|
|
BLAKE2b-256 checksum How to use checksums |
f30e4ceef7957f43438b984a3de8ffe9937e1c3ead3c977ba74a5652a1a04708
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.9
|