Metadata-Version: 2.4
Name: runcell
Version: 0.2.1
Summary: AI Agent for Jupyter - Turn Jupyter into an AI IDE for data science
Project-URL: homepage, https://www.runcell.dev
Author-email: Elwynn Chen <elwynn.c@kanaries.net>
License: Copyright (c) 2025, Runcell, Kanaries Data Inc., Elwynn Chen
        All rights reserved.
License-File: LICENSE
Keywords: jupyter,jupyterlab,jupyterlab-extension
Classifier: Framework :: Jupyter
Classifier: Framework :: Jupyter :: JupyterLab
Classifier: Framework :: Jupyter :: JupyterLab :: 4
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: aiohttp
Requires-Dist: beautifulsoup4<5,>=4.9
Requires-Dist: dill
Requires-Dist: ipython
Requires-Dist: jupyter-server
Requires-Dist: jupyter-server-documents==0.2.0
Requires-Dist: markdownify<2,>=1.2.2
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: openai
Requires-Dist: pandas
Requires-Dist: python-dotenv
Requires-Dist: websockets
Description-Content-Type: text/markdown

# 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:

```bash
pip install runcell
```

Then start JupyterLab as usual:

```bash
jupyter lab
```

## Local Agent Development

From `packages/d5m-ai`, use the dev agent process manager to run the local development stack:

```bash
yarn dev:agent:start
```

This starts four long-running processes:

- `server`: `venv/bin/python run_d5m_server.py` from the repo root
- `jupyter`: `venv/bin/jupyter lab --LabApp.extension_manager=readonly`
- `watch`: `yarn watch`
- `tailwind`: `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:

```text
.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:

```bash
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:

```bash
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](https://www.runcell.dev).
