Skip to main content

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: wraps claude-agent-acp
  • @HubOpenCode: wraps opencode 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-acp for @HubClaude
  • opencode for @HubOpenCode

Behavior

  • always creates a fresh ACP session for each live persona instance
  • never writes metadata.acp_session_ids into .chat
  • never loads metadata.acp_session_ids from .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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter_ai_acp_hub-0.1.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyter_ai_acp_hub-0.1.2-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

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

Hashes for jupyter_ai_acp_hub-0.1.2.tar.gz
Algorithm Hash digest
SHA256 448afddf59d2732fe12460cb249b1c4267593fade290a99700e8f37bab84fba7
MD5 85db811745616c0528cf7b279b1363fd
BLAKE2b-256 bbe9eb76cf690894727aaa6c536feb9d071a707ec28b50d6bd17925bb25f5c78

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jupyter_ai_acp_hub-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_ai_acp_hub-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3ef0ceff1d07ec92491cf0acb3f903790463b7997c9e9482439d67542b5a431a
MD5 3cd0cacb802c30753c7278014e1330db
BLAKE2b-256 3f7bc2f22057675cd39f3e1a09ae9c154d9563c9f8eaabddcac95fa0de649fbb

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page