Skip to main content

herethere

Latest version on PyPI Supported Python versions CI Status Code coverage status

Run Python interactively inside live apps and devices.

herethere starts a small SSH-backed server inside a Python process, then lets you connect from the there CLI, another Python session, or a Jupyter notebook to inspect, modify, and interact with the namespace of that running process.

It was created for workflows where Python is running inside an app, device, or environment that is awkward to interact with directly. The same idea is useful for Raspberry Pi and robotics projects, Kivy/mobile apps, containers, long-running experiments, server-side apps, and other cases where logs or a separate remote shell are not enough.

herethere is based on the AsyncSSH library. AsyncSSH provides the SSH toolkit; herethere adds a small Python, CLI, and Jupyter workflow layer on top.

Code repository:

https://github.com/b3b/herethere

Documentation:

https://herethere.me/library

Features

  • Execute Python snippets inside the namespace of a live target process.

  • Connect using the there CLI, Python code, or Jupyter notebooks with %connect-there and %%there.

  • Retrieve values, view logs, run shell commands, and transfer files.

  • Produce structured JSON output for scripts and coding agents.

  • Use SSH authentication and encrypted transport through AsyncSSH.

  • Generate reviewable notebook cells from natural-language requests with %%there ai.

Installation

Install herethere in the Python environment that will start the server:

pip install herethere

If you want to connect from Jupyter using the IPython magics, install the magic extra in the notebook/client environment:

pip install "herethere[magic]"

Quickstart

Target process

Start herethere inside the Python process you want to interact with.

from herethere.here import ServerConfig, start_server

state = {"speed": 1}

await start_server(ServerConfig.load(prefix="here"), namespace=globals())

Terminal client

Run code or retrieve a value from the target process:

there run --code "state['speed'] = 3"
there get "state"

Use structured output for scripts and coding agents:

there --json get "state"

Jupyter notebook / client

Connect from your local Jupyter notebook:

%load_ext herethere.magic
%connect-there

Use the %%there cell magic to inspect variables, call functions, or update state while the target process keeps running:

%%there

print(state)
state["speed"] = 3
print(state)

Agent skill

herethere bundles an agent skill for using the there CLI. Install it for your project with Library Skills:

uvx library-skills

Trust model

A connected client can execute Python code inside the target process. Treat access to herethere like access to a Python REPL running inside your app.

Use it only for development workflows where you control both sides of the connection. Do not expose it publicly or give access to untrusted users.

Metadata

Release files for herethere 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for herethere 0.3.3
File Size Uploaded
herethere-0.3.3.tar.gz 66.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for herethere 0.3.3
File Interpreter ABI Platform
herethere-0.3.3-py3-none-any.whl Python 3 none any Details

Total release size: 134.8 kB

Release files / herethere-0.3.3.tar.gz

Download URL herethere-0.3.3.tar.gz
Size 66.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cd5e75289a49cad5205eaaaa92ed755b311cc940d87e937ee68a13b5a0df91bc
BLAKE2b-256 checksum
How to use checksums
8cd5df9024a5d2a43298cbeb5a644a8a0c1db4c929d93194fb031038d32f9c17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release files / herethere-0.3.3-py3-none-any.whl

Download URL herethere-0.3.3-py3-none-any.whl
Size 68.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46037e0db517535882f9378961453758b55f15a57ae0de4a2646c741aac1ae00
BLAKE2b-256 checksum
How to use checksums
24fdabf0ad9ec2d35c159f60efef81f79c61f9cea3a1169c08c830f4875d2fd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release history Release notifications | RSS feed

This release

0.3.3 This release

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page