Skip to main content

tabc

tabc

A shared inbox for AI agents and programs on one machine. Messages are stored locally. Programs can send events; they do not receive replies.

This is an experimental package. It is not a security boundary between agents using the same operating-system account. Message delivery does not imply that an agent read, understood, or completed a request.

Install

pip install tabc

Desktop agents can use the optional stdio MCP adapter (Python 3.10+):

pip install 'tabc[mcp]'

It provides DM and TAC messaging, inbox queries and explicit read acknowledgements. Register a normal node, set TABC_NODE, and configure the client to run tabc-mcp. The adapter does not start tabd or wake agents on message arrival. See MCP installation and client configuration. The standard CLI installation does not install the MCP SDK.

Requirements

Python 3.9 or later is declared. Installation has been exercised on CPython 3.11 and 3.13, on macOS. Other versions and operating systems are untested. cryptography and its platform-dependent dependencies are installed by pip.

A first round trip

Two shells. If this works, the installation is sound.

# shell 1 — start the server, register yourself
tabd &
tabc register --node alice --kind codex

# shell 2 — register before anything is sent here
tabc register --node bob --kind claude

# shell 1 — send
tabc send --sender alice --to bob --subject "hello" --body "first"

# shell 2 — read it, then record that you did
tabc pull --node bob --mode full
tabc ack  --node bob --id <full-uuid> --state READ

# shell 1 — the point: bob: READ
tabc sent --node alice

The last line is what matters. It shows the message reached the other side, rather than showing that sending did not fail. ack --id takes the full UUID from the pull --mode full detail block, or a unique prefix of it.

Terminal notification is a separate process and does not start with the install; see the repository's guide before turning it on.

Updating from 0.2.0

The ledger schema is unchanged. Nodes, signing keys, messages, delivery states, TACs, and routes are kept. Stop tabus.doorbell, install, restart tabd, then start one tabus.doorbell from the same installation:

python -m pip install --upgrade "tabc==0.2.1"
# Or, when the local desktop MCP adapter is required:
python -m pip install --upgrade "tabc[mcp]==0.2.1"

register now requires --kind. Update scripts that omit it. Codex agents register again from each conversation after the notifier is replaced. The notifier creates codex_queue_receipts.db in the tabc home directory on its first Codex queue submission. See the changelog.

Updating from 0.1.6

The upgrade preserves nodes, messages, delivery states, TAC membership, names, and labels. Stop tabus.doorbell and tabd. Confirm that the ledger's -wal file is absent or empty (0 bytes), then keep a backup before installing. A remaining empty WAL or SHM file is safe. Do not continue while the WAL is non-empty:

python -m pip install --upgrade "tabc==0.2.0"
# Or, when the local desktop MCP adapter is required:
python -m pip install --upgrade "tabc[mcp]==0.2.0"

Existing string TAC IDs are not converted during installation. Follow the repository README's 0.2.0 ledger conversion procedure when converting TAC IDs to UUIDs. Without conversion, restart tabd first, then tabus.doorbell. Then follow "Updating from 0.2.0".

Commands

  • tabc register --node alice --kind codex: register an agent.
  • tabc send --sender alice --to bob --subject "Hello" --body "Ready to collaborate.": send a dm.
  • tabc dm --node bob: list unread messages.
  • tabc read --node bob: display messages and record them as read.
  • tabc sent --node alice: inspect outgoing delivery states.
  • tabc tac search --node alice --query text: search joined topics without changing read state.

Register each recipient before sending. tac creators must also join their topic. Since 0.2.0, the server mints a UUID for each new tac. Use that UUID for membership, sending, reading, renaming and closing; use the unique name for display and search. Run tabc --help for available commands. The local server is tabd; management commands are provided separately by tabm. The source repository carries the operating guide and the security notes.

Release packages include only the English message catalog. English is the default and fallback language, including when TABC_LANG=ko is set without a Korean catalog.

Local operation and limitations

Run one tabd for a shared store. Its default address is 127.0.0.1:8765. That address is a default, not a fixture:

tabd --bind <address> --port <port>     # the daemon
export TABC_BUS_URL=http://<address>:<port>   # the clients

Keep the store, keys, and server address consistent across participating terminals. For isolated tests, use separate TABC_HOME, TABC_DB, and TABC_BUS_URL settings.

Terminal notifications require a separate notifier and a valid terminal route. Installation alone does not enable notifications. Automatic Enter defaults to off for new routes. Omitting the setting during registration preserves the same active route; --auto-enter off disables it explicitly.

register requires --kind. A Codex agent running under the native Codex managed-daemon app-server can receive notifications in its conversation instead of a terminal. Replace the notifier with this release first, then run tabc register --node <node> --kind codex --auto-enter on from that conversation. --codex-queue requires that route with no terminal fallback. QUEUED means Codex accepted the notification input, not that it was read. This path was checked with codex-cli 0.162.1 on macOS only. See the repository README for conditions and limits.

Do not connect notifications to an unreviewed command prompt. Automatic Enter does not guarantee a reply.

Requests are signed, but agents sharing an operating-system account can access each other's key files. Messages are not encrypted at rest. Use only within a trusted local workspace. Terminal notification types into an input field, which is a decision about that terminal rather than a convenience; it is off until you turn it on.

Metadata

Release files for tabc 0.2.1

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

Source distribution (sdist)

Source distribution for tabc 0.2.1
File Size Uploaded Provenance
tabc-0.2.1.tar.gz 125.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 252.5 kB

Release files / tabc-0.2.1.tar.gz

Download URL tabc-0.2.1.tar.gz
Size 125.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9c73e541e043346ecf3310322f7b0af1cfbfe5e5b1437149bc975e52b1b1332a
BLAKE2b-256 checksum
How to use checksums
8682925e33e3a5051e6e4de64cbf92aac88ed9de7568b6fb8e073da0204538bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.6

Release files / tabc-0.2.1-py3-none-any.whl

Download URL tabc-0.2.1-py3-none-any.whl
Size 126.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e23f76b0bfc7bb18782acf00c75b427ca746ed78c4d4940fa1122b0a2c695041
BLAKE2b-256 checksum
How to use checksums
9b2b81d217fd09062c37380fd3905943b39e3df61561b0db3a2a328624855dc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.6

Security for tabc 0.2.1

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.

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