Skip to main content

mngr_forward

Auth + subdomain-forwarding plugin for mngr.

mngr forward runs a local proxy that serves <agent-id>.localhost:<port>/* and byte-forwards each request to a service URL discovered for that agent (--service NAME, the default workflow) or a fixed remote port (--forward-port REMOTE_PORT, manual mode). Remote agents are reached via a per-host SSH tunnel (Unix-domain socket on the local side, paramiko direct-tcpip channel on the SSH side).

The plugin is opt-in:

mngr plugin enable forward
mngr forward --service system_interface

Quick start (browser user)

mngr forward --service system_interface --open-browser

This:

  1. Spawns mngr observe --discovery-only and per-agent mngr event --follow subprocesses. Their lines pass through to stdout as a merged JSONL stream wrapped in a {stream, agent_id?, payload} envelope so consumers can drive their own state from a single stream.
  2. Listens on 127.0.0.1:8421 and prints a one-time login URL to stderr (or emits a login_url JSONL event on stdout in --format jsonl).
  3. After the browser visits the login URL, future navigations to agent-<hex>.localhost:8421/ are byte-forwarded to that agent's resolved system_interface URL through an SSH tunnel.

Reverse tunnels

--reverse <remote-port>:<local-port> (repeatable) auto-sets up reverse SSH tunnels for every known agent on a remote host. The <remote-port> may be 0 to ask sshd for a dynamic assignment; the actual bound port is reported in a forward.reverse_tunnel_established envelope event.

Manual mode

--no-observe --forward-port REMOTE_PORT runs mngr list --format json once and forwards a fixed snapshot. --no-observe is invalid with --service NAME.

Sub-process integration

Consumers (notably minds run) can spawn mngr forward --format jsonl --preauth-cookie <opaque-token>, parse the envelope JSONL stream off stdout, and pre-set the mngr_forward_session cookie in their browser session so the OTP flow is bypassed.

SIGHUP bounces only the mngr observe child subprocess; SSH tunnels, per-agent event subprocesses, browser sessions, and the FastAPI app stay alive. Used by minds run to make a freshly-written [providers.imbue_cloud_<slug>] block in settings.toml take effect.

On-disk state

$MNGR_HOST_DIR/plugin/forward/signing_key (cookie HMAC key, generated once on first run, persisted across restarts so previously-issued cookies still verify).

OTPs are kept in-memory only and do not survive a restart.

Status

Experimental. See specs/mngr-forward-plugin/spec.md.

Metadata

Release files for imbue-mngr-forward 0.1.6

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

Source distribution (sdist)

Source distribution for imbue-mngr-forward 0.1.6
File Size Uploaded
imbue_mngr_forward-0.1.6.tar.gz 88.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for imbue-mngr-forward 0.1.6
File Interpreter ABI Platform
imbue_mngr_forward-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 147.9 kB

Release files / imbue_mngr_forward-0.1.6.tar.gz

Download URL imbue_mngr_forward-0.1.6.tar.gz
Size 88.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a86e035a61f8592459938aedc14208de2b436b75895e23fc64e3c5854d5af97c
BLAKE2b-256 checksum
How to use checksums
3935d28d5f7be35a94bd78058ad2f84be0d95337cba3e63eb69199a41a53d811
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.

Transparency log

Release files / imbue_mngr_forward-0.1.6-py3-none-any.whl

Download URL imbue_mngr_forward-0.1.6-py3-none-any.whl
Size 59.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
357390e5eb925c4c7a816abe05809cdd9e343834b5979e8cdd511dcf76f48a6c
BLAKE2b-256 checksum
How to use checksums
92621c449f33f1d91b9d900c31ef0eee8c36c6dee00811f5e352e42bf07ce07d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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