Observed since 20 Oct, 21:39 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A Jupyter Kernel for Agent Client Protocol using MetaKernel
A Jupyter Kernel for Zed's Agent Client Protocol (ACP) https://agentclientprotocol.com/ .
This kernel allows you to interact with external ACP agents directly from Jupyter notebooks. It acts as an ACP client that connects to coding agents like Codex, providing a seamless notebook interface for AI-powered coding assistance.
This project implements a Jupyter kernel that serves as a client for coding agents via the Agent Client Protocol. The implementation uses MetaKernel as the base class, which provides built-in magics, shell commands, and other useful features.
The kernel spawns and communicates with external ACP agents (such as codex-acp) via stdio, allowing you to interact with AI coding assistants directly from your notebook.
Just use the Dockerfile by opening the devcontainer in GitHub Codespaces or locally.
After JupyterLab starts, open a Terminal and run codex. Follow prompts for API key and authorization then /quit.
Alternatively, install the package, agent, and kernel:
pip install --upgrade uv jupyter-mcp-tools
git submodule update --init --recursive
pip install -e .
python -m agentclientkernel install --user
The kernel spawns a subprocess to run the agent which needs installation and ACP adapter.
Install codex-acp:
npm install -g @openai/codex@latest @zed-industries/codex-acp@latest
Set your OpenAI API key: This can be onitted and codex will prompt for this.
export OPENAI_API_KEY=sk-...
Authorize Codex
codex
It will prompt you through authentication and permission to run stuff.
I think only API auth works in Codespaces because OAuth tries to redirect thru localhost.
This is the error you get when trying to chat with the agent then you probably missed this step.
Error: Authentication required
Make sure the ACP agent is configured correctly.
Current agent: codex-acp
Start Jupyter and use the "Agent Client Protocol" kernel
start-noteboook.py
Set environment variables to configure a different agent:
export ACP_AGENT_COMMAND=path/to/your/agent
export ACP_AGENT_ARGS="--arg1 --arg2"
Then start Jupyter normally. The kernel will use your configured agent.
After installation, create a new notebook and select "Agent Client Protocol" as the kernel.
Type your prompts in cells and execute them to interact with the agent:
Create a Python function to calculate fibonacci numbers
The agent will respond with code, explanations, and can help with:
Adding a Jupyter MCP service for accessing and editing notebooks and cells. The Dockerfile installed the datalayer/jupyter-mcp-server https://github.com/datalayer/jupyter-mcp-server . To add it to the agent's MCP configuration:
%agent mcp add jupyter uvx jupyter-mcp-server@latest
See examples/jupyter-mcp.ipynb.
The kernel provides a unified %agent magic command for all configuration and session management:
MCP Server Configuration:
%agent mcp add NAME COMMAND [ARGS...] - Add an MCP server%agent mcp list - List configured MCP servers%agent mcp remove NAME - Remove an MCP server%agent mcp clear - Remove all MCP serversPermission Configuration:
%agent permissions [auto|manual|deny] - Set permission mode%agent permissions list - View permission request historySession Management:
%agent session new [CWD] - Create a new session%agent session info - Show current session information%agent session restart - Restart the current sessionAgent Configuration:
%agent config [COMMAND [ARGS...]] - Configure the agent command%agent env [KEY=VALUE] - Set agent environment variablesUse %agent without arguments to see all available subcommands.
Use %agent? for detailed help on the magic command.
See the example notebooks in examples/ for demonstrations:
basic_usage.ipynb - Basic agent interactionconfiguration_demo.ipynb - Configuration and session managementjupyter kernelspec remove agentclient
pip uninstall agentclientkernel
BSD 3-Clause License
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.0 | 21 Nov 2025 | 4 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
HTTP 301 · detected 22 Oct 2026
Reported destinationObserved since 20 Oct, 21:39 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6ee8813e12325ce4d38b8f587c576943b4c6d5720ccbafcf36901401d8483145