Jupyter AI ACP personas with JupyterHub-safe session handling.
Project description
jupyter-ai-acp-hub
Jupyter AI ACP personas that treat ACP sessions as ephemeral runtime state.
The visible Jupyter chat history remains in .chat files, but live ACP session
IDs are not persisted into chat metadata and are not loaded after restart. This
avoids stale session/load failures in JupyterHub pods where chat files survive
but agent subprocesses do not.
Personas
@HubClaude: wrapsclaude-agent-acp@HubOpenCode: wrapsopencode acp
These personas are intentionally separate from upstream @Claude and
@OpenCode so they can be tested side by side.
Install
For a running JupyterHub notebook pod, avoid pulling Jupyter server
dependencies into ~/.local:
python -m pip install --user --no-deps jupyter-ai-acp-hub
For a local development checkout:
python -m pip install -e ".[test]"
Restart the Jupyter server process after installation so Jupyter AI reloads the entry points.
jupyter-ai-acp-hub intentionally has no required runtime dependencies. It is
meant to use the Jupyter AI ACP packages already present in the notebook image.
If you are installing into a clean environment, use:
python -m pip install "jupyter-ai-acp-hub[runtime]"
The underlying agents still need to be available in the notebook image:
claude-agent-acpfor@HubClaudeopencodefor@HubOpenCode
Behavior
- always creates a fresh ACP session for each live persona instance
- never writes
metadata.acp_session_idsinto.chat - never loads
metadata.acp_session_idsfrom.chat - returns the live session ID from the current session future
- injects recent chat history once after creating a fresh session, using the
bounded recovery context from
jupyter-ai-acp-client
Verify
python - <<'PY'
import importlib.metadata as metadata
for ep in metadata.entry_points(group="jupyter_ai.personas"):
if ep.name.startswith("hub-"):
print(ep.name, ep.value)
PY
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 jupyter_ai_acp_hub-0.1.2.tar.gz.
File metadata
- Download URL: jupyter_ai_acp_hub-0.1.2.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
448afddf59d2732fe12460cb249b1c4267593fade290a99700e8f37bab84fba7
|
|
| MD5 |
85db811745616c0528cf7b279b1363fd
|
|
| BLAKE2b-256 |
bbe9eb76cf690894727aaa6c536feb9d071a707ec28b50d6bd17925bb25f5c78
|
Provenance
The following attestation bundles were made for jupyter_ai_acp_hub-0.1.2.tar.gz:
Publisher:
publish.yml on kraftaa/jupyter-ai-acp-personas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_ai_acp_hub-0.1.2.tar.gz -
Subject digest:
448afddf59d2732fe12460cb249b1c4267593fade290a99700e8f37bab84fba7 - Sigstore transparency entry: 1588179404
- Sigstore integration time:
-
Permalink:
kraftaa/jupyter-ai-acp-personas@a22f3a86aa1da905464b53a8fdb7413cf261b44a -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/kraftaa
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a22f3a86aa1da905464b53a8fdb7413cf261b44a -
Trigger Event:
push
-
Statement type:
File details
Details for the file jupyter_ai_acp_hub-0.1.2-py3-none-any.whl.
File metadata
- Download URL: jupyter_ai_acp_hub-0.1.2-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ef0ceff1d07ec92491cf0acb3f903790463b7997c9e9482439d67542b5a431a
|
|
| MD5 |
3cd0cacb802c30753c7278014e1330db
|
|
| BLAKE2b-256 |
3f7bc2f22057675cd39f3e1a09ae9c154d9563c9f8eaabddcac95fa0de649fbb
|
Provenance
The following attestation bundles were made for jupyter_ai_acp_hub-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on kraftaa/jupyter-ai-acp-personas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyter_ai_acp_hub-0.1.2-py3-none-any.whl -
Subject digest:
3ef0ceff1d07ec92491cf0acb3f903790463b7997c9e9482439d67542b5a431a - Sigstore transparency entry: 1588179454
- Sigstore integration time:
-
Permalink:
kraftaa/jupyter-ai-acp-personas@a22f3a86aa1da905464b53a8fdb7413cf261b44a -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/kraftaa
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a22f3a86aa1da905464b53a8fdb7413cf261b44a -
Trigger Event:
push
-
Statement type: