Skip to main content

Cmail — capsulated email + command hub for HumoticaOS. Light Mode (I-Poll + JSON + audit) + Sealed Mode (AES-256-GCM with AAD). 0.2.2: vangt TimeoutError + OSError op send/pull (was raw traceback), plus opt-in cap-bus runtime POST via CMAIL_CAPBUS_URL env.

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.

PyPI License: MIT

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 envelopesfrom, to, subject, body, content_hash
  • identity-anchored — sender and recipient are .aint addresses
  • auditable — every message ID can be cross-referenced against a gateway-event.v1 record on tibet-cap-bus
  • routable — same --local / --ainternet / --brein shortcuts as ipoll, 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.v1 kind.
  • Backend: localhost:8000 (default), api.ainternet.org (--ainternet), or brein.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-continuityd arrival + 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:

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


Download files

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

Source Distribution

tibet_cmail-0.2.2.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

tibet_cmail-0.2.2-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file tibet_cmail-0.2.2.tar.gz.

File metadata

  • Download URL: tibet_cmail-0.2.2.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_cmail-0.2.2.tar.gz
Algorithm Hash digest
SHA256 01747ea58c72a9ed20c66ef1f689dbfde28842e3e9956cf2ab86a39ac4c45caa
MD5 22484cd70c7bb22316ad1abb3f3300bf
BLAKE2b-256 1a624788ea7ecbd51036d6304ef15153eb5fb2b0d66f276b7044281d01c0a9f3

See more details on using hashes here.

File details

Details for the file tibet_cmail-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: tibet_cmail-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_cmail-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c1c64b650735224b413ad3db104ee6dfa7890d69d53891bedac00573f100cc6
MD5 2965b3463be4109d0d813792b0326dd6
BLAKE2b-256 03723d57b598eb9714c0ac41d7c2054ef87648049aec4899b06b4d4152be8a2f

See more details on using hashes here.

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