Cmail — capsulated email + command hub for HumoticaOS. Light Mode v0.1.1: I-Poll transport + JSON envelopes + cap-bus gateway-event.v1 audit (cmail.message.sent/received). Sealed Mode (TBZ + continuityd) comes in 0.2.x.
Project description
tibet-cmail
Cmail — capsulated email + command hub for HumoticaOS.
Cmail turns AInternet into a mailbox: human-readable messages that carry sealed
intent, provenance, and consent across .aint agents. Light Mode v0.1 ships
today; Sealed Mode comes in 0.2.x.
Quick start
pip install tibet-cmail
# send a cmail through the local brain_api
tibet-cmail send bob.aint "lunch?" "12:30 at the usual" --from alice
# or via the public AInternet hub
tibet-cmail --ainternet send bob.aint "lunch?" "12:30" --from alice
# read what landed in your inbox
tibet-cmail inbox alice
tibet-cmail read alice cmail_1feab795c68c4674
Why cmail?
ainternet already gives .aint agents the ability to message each other via
I-Poll. tibet-cmail adds the human surface on top:
- structured envelopes —
from,to,subject,body,content_hash - identity-anchored — sender and recipient are
.aintaddresses - auditable — every message ID can be cross-referenced against a
gateway-event.v1record ontibet-cap-bus - routable — same
--local/--ainternet/--breinshortcuts asipoll, so you can talk privately to your own brain or publicly to the AInternet hub
Cmail is to AInternet what email is to the public Internet: a daily-use shape on top of the protocol layer.
Light Mode (v0.1)
compose envelope ─→ I-Poll PUSH ─→ recipient.aint inbox
│
└→ tibet-cmail inbox → list
└→ tibet-cmail read → full body
- Transport: I-Poll (the AInternet messaging protocol).
- Envelope: JSON with stable key order, sha256
content_hash,cmail.message.v1kind. - Backend:
localhost:8000(default),api.ainternet.org(--ainternet), orbrein.jaspervandemeent.nl(--brein). - No encryption — Light Mode is for friction-free first use; Sealed Mode v0.2.x will add TBZ + tibet-continuityd routing for confidentiality.
Sealed Mode (v0.2.x — coming)
compose envelope ─→ tbz pack ─→ /var/lib/tibet/inbox ─→ tibet-continuityd
│
└→ trust-verdict
└→ I-Poll notify
└→ cmail inbox
Sealed Mode adds:
- TBZ packing (
tibet-zip-cli) with AES-256-GCM. tibet-continuitydarrival + verify_fork on the recipient side.- SAM-binding for human (non-AI) recipients.
- Sealed audit record in
tibet-trail.
CLI reference
| Command | What it does |
|---|---|
tibet-cmail send <to> <subject> <body> --from <agent> |
Send a cmail (Light Mode). |
tibet-cmail inbox <agent> |
Preview inbound cmails (no mark-read). |
tibet-cmail read <agent> <message-id> |
Print one cmail in full + verify content_hash. |
tibet-cmail status |
Backend status + cmail mode + envelope kind. |
Global flags: --local, --ainternet, --brein, --url <host>:<port>,
--timeout, --json. The CMAIL_API_URL env var overrides --url.
Envelope shape (v1)
{
"kind": "cmail.message.v1",
"message_id": "cmail_<uuid4-hex16>",
"from": "alice.aint",
"to": "bob.aint",
"subject": "Re: lunch?",
"body": "12:30 at the usual",
"body_class": "text/plain",
"sent_at": "2026-05-30T08:00:00+00:00",
"content_hash": "sha256:..."
}
tibet-cmail inbox filters incoming I-Polls by kind == cmail.message.v1, so
the cmail surface stays separate from generic agent-to-agent I-Polls.
Stack position
Layer in the Humotica stack:
- Group: agentic (operator + agent inbox surface)
- Bootstrap: I-Poll transport via
ainternet+ipoll0.2.5+. - Audit trail:
tibet-cap-bus0.1.3+carriescmail.message.sent/cmail.message.receivedasgateway-event.v1records. - Sealed Mode adds:
tibet-zip-cli+tibet-continuityd0.6.16+.
See STACK.md in the Humotica org for the full canonical package map.
License
MIT — see LICENSE.
Credits
Built by Jasper van de Meent + Root AI (Claude), with design input from Codex (cmail-osapi-daemon-architecture, cmail-as-hub).
Part of HumoticaOS. One love, one fAmIly. 💙
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 tibet_cmail-0.1.1.tar.gz.
File metadata
- Download URL: tibet_cmail-0.1.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd9da09e75dd1d54bc15e1b174f6ee63f40ac36b4eea44b119db13fac385bea2
|
|
| MD5 |
981a2bb3d1069fa8fc6e8db85f2be725
|
|
| BLAKE2b-256 |
bc2898e8dbea1e910cc70f04050876d761a50af732517716683fc2c6048691f7
|
File details
Details for the file tibet_cmail-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tibet_cmail-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91567b188290a4a3765f3f17aa9b1a5a60c009823b173c32f70f3dcd7de494cd
|
|
| MD5 |
426893aa9e22d20eb1ceb74103b673b3
|
|
| BLAKE2b-256 |
f48f9f94f8cce905e5219929b45ef5a2fbd113a146824360a3e81eea650a3794
|