Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Install & use

Requires JupyterLab ≥ 4.2 and at least one ACP agent on your PATH — e.g. claude-agent-acp (Claude Code) or opencode — or any agent from the ACP registry, which runs on demand via npx/uvx/downloaded binary.

pip install jupyterlab-acp

The wheel ships the prebuilt labextension, so that’s all you need — launch jupyter lab and you’re set.

From source (development)

JupyterLab is needed at build time to compile the extension.

git clone https://github.com/SchmidtDSE/jupyterlab-acp
cd jupyterlab-acp
pip install jupyterlab hatchling hatch-jupyter-builder editables   # build tooling (jlpm)
jlpm install && jlpm build
pip install -e . --no-build-isolation                              # hook reuses the built JS
jupyter labextension develop --overwrite .

Use

jupyter lab

Configuring agents

Built-in harnesses can be extended or overridden from jupyter_server_config.py:

c.AcpExtension.harnesses = [
    {"id": "my-agent", "display_name": "My Agent",
     "command": "my-agent", "args": ["--acp"], "env": {"API_KEY": "..."}},
]

Develop

python -m pytest        # 47 tests: ACP core, capabilities, binding, handlers
                        # (real-server), serializer, permission, registry
jlpm build:lib          # typecheck the frontend