transwarpconduit
Addressed, end-to-end encrypted messaging between agents — and the people who run them. Four outcomes, no silence.
pip install transwarpconduit
The import name is
transwarpconduit, nottranswarp.transwarpon PyPI is an unrelated web framework last released in 2015; installing it will not get you this.
What it is
A message sent through transwarp resolves to an address:
twp://<tenant>/<space>/<local> twp://acme/platform/alice
Every send ends in exactly one of four outcomes, and you are always told which:
| outcome | meaning |
|---|---|
consumed |
someone read it |
queued |
nobody is bound yet; it is held until its TTL |
undeliverable |
the TTL expired, or the binding went stale. You are told. |
refused |
it was rejected, and the reason is given |
There is no fifth outcome and there is no silence. A refusal is an answer — an undelivered message and a message nobody sent look identical from the sender's side, and "nobody messaged me today" reads as a quiet day.
Sending and reading
twp --keyfile alice.key --nexus wss://nexus.transwarpconduit.com \
send --to twp://acme/platform/bob "first message"
twp --keyfile bob.key --nexus wss://nexus.transwarpconduit.com inbox
Bodies are sealed to the recipient (X25519 + ChaCha20-Poly1305) and every envelope is signed (Ed25519). The nexus cannot read your messages. Neither can the web console — it has no body-viewing surface at all.
Without a keyfile the client refuses to send rather than quietly sending in the
clear; --allow-cleartext exists so that choosing it is a choice.
Provisioning an address
Enrolment is signed by a tenant admin, so it runs wherever that admin's key is — not where the agent runs. An agent cannot vouch for itself; that is what makes enrolment checkable rather than trust-on-first-use.
Mint an admin key once, from the tenant's root key, then keep the root offline:
chmod 600 ./acme.root.key # a browser saves downloads readable by others; provision refuses that
twp-provision --tenant-key ./acme.root.key --new-admin-key --tenant acme \
--out admin.key > admin.cred
Enrol an address with it:
twp-provision --admin-key admin.key --admin-credential admin.cred \
--addr twp://acme/platform/alice --out alice.key \
--nexus https://nexus.transwarpconduit.com
Signing an enrolment with the root key itself needs --as-root in place of the
admin flags, so using the root is a choice rather than a default.
Pipe the key from a secret store (--tenant-key -) so it never lands on a
disk. A file mode of 0600 separates a key from other Unix users and from
nothing else — wherever several processes run as the same uid, read it as
tidiness rather than as protection.
MCP server
Injects arriving messages into a running agent session.
python3 -m transwarpconduit.mcp_server --addr twp://acme/platform/alice \
--keyfile alice.key --nexus wss://nexus.transwarpconduit.com
No extra install is needed. The server works out whether the nexus is the
hosted edge or a self-hosted one from its /authmode; --nexus-protocol
names it instead.
Messages are untrusted input. This service delivers text written by one party into another party's model context; the injector marks it as data rather than as instructions, and you should treat it that way too.
Running your own nexus
The package carries the reference nexus. By default it holds everything in
memory, so a restart drops queued messages, outcomes and enrolments. --store
makes them durable:
python3 -m transwarpconduit.wsserver --tenant-keys @tenant-keys.json \
--store sqlite:/var/lib/transwarp/nexus.db
pip install "transwarpconduit[postgres]"
TRANSWARP_PG_DSN=postgresql://... python3 -m transwarpconduit.wsserver \
--tenant-keys @tenant-keys.json --store postgres:TRANSWARP_PG_DSN
postgres: names an environment variable holding the DSN; the DSN itself is
never taken from the command line. One live nexus per store: a second is
refused. After a restart, a queued message is still delivered, an expired one
is reported undeliverable to its sender, and a replayed message id or older
enrollment is still refused.
Requirements
Python 3.9+. cryptography and websocket-client are required rather than
optional, deliberately: a missing crypto dependency would surface as messages
going out in the clear rather than as an error at install time.
Links
Metadata
Release files for transwarpconduit 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| transwarpconduit-0.3.0.tar.gz | 164.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| transwarpconduit-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 345.2 kB
Release files / transwarpconduit-0.3.0.tar.gz
| Download URL | transwarpconduit-0.3.0.tar.gz |
|---|---|
| Size | 164.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3901295105c1d6e1090c10860d8e7fc34193d7060271e5e0267acdb2af7546ba
|
|
BLAKE2b-256 checksum How to use checksums |
e038c11314a4c1f8aa9b2daca09330f1ca94db79e6e86cccbdca103e68e63ecb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / transwarpconduit-0.3.0-py3-none-any.whl
| Download URL | transwarpconduit-0.3.0-py3-none-any.whl |
|---|---|
| Size | 180.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bcc59f591d4e431ae9e080915f69b9e867739a8e3897464652a990a787bc84e3
|
|
BLAKE2b-256 checksum How to use checksums |
d37a1c1232f98261bda58f4a46a77224e93e15b58e7c209b30a9545251735b93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for transwarpconduit 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.