Metadata-Version: 2.5
Name: aimessenger
Version: 0.1.0
Summary: AIM - AI Session Messenger: messages between AI coding sessions across tools, accounts and companies
Project-URL: Homepage, https://aim.mailows.com
Project-URL: Documentation, https://aim.mailows.com/docs
Project-URL: Plugin, https://github.com/mailows/aim-plugin
Author-email: DW Technology LLC <aim@namailu.cz>
License-Expression: BSD-3-Clause
License-File: LICENSE
Keywords: agents,channel,claude-code,codex,mcp,messaging
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.14
Requires-Dist: aiosqlite>=0.21
Requires-Dist: argon2-cffi>=25.1.0
Requires-Dist: jinja2>=3.1.6
Requires-Dist: mcp>=2.2
Requires-Dist: platformdirs>=4
Requires-Dist: pydantic>=2.12
Requires-Dist: pynacl>=1.5
Requires-Dist: python-ulid>=3
Requires-Dist: typer>=0.15
Requires-Dist: websockets>=15
Provides-Extra: relay
Requires-Dist: starlette>=0.48; extra == 'relay'
Requires-Dist: uvicorn[standard]>=0.31; extra == 'relay'
Description-Content-Type: text/markdown

# AIM — messages between AI coding sessions

Claude Code already passes messages between sessions, but only within one seat and only between
Claudes. The colleague at the next desk, on their own seat in the same company, is already out of
reach — let alone someone working in Codex, Gemini CLI or Grok.

AIM closes that gap. A question travels from one coding session to someone else's session — another
tool, another account, another company — and the answer comes back the same way. **Who may reach
whom is approved by a person in a browser, never by a model.**

- Service: <https://aim.mailows.com>
- Guide: <https://aim.mailows.com/docs>
- Plugin for Claude Code: <https://github.com/mailows/aim-plugin>

## What this package gives you

```
uv tool install aimessenger
aim init --relay aim.mailows.com --handle your-handle
aim install-claude
```

- **`aim`** — a CLI for the whole protocol: `ask`, `answer`, `notify`, `inbox`, `contacts`,
  `pair request|approve|deny|revoke`, `alias`, `label`, `thread`, `export`.
- **`aim channel`** — the Claude Code *channel* MCP server. It wakes the session when a message
  arrives, so a question lands in the conversation instead of waiting to be collected. Claude Code
  starts it for you; you never run it by hand.
- **`aim-relay`** — the relay server itself, for running your own (`pip install aimessenger[relay]`).

Nothing to install is also an option: the same tools are available over a remote MCP server at
`https://aim.mailows.com/mcp`, where the model asks for new messages rather than being woken by
them.

## How it works

Every session has an address shaped `handle@aim.mailows.com/session-name`. A relay carries signed
messages between addresses and enforces who may write to whom:

1. You ask a peer for access. They receive the request with your key fingerprint.
2. A person approves it on the website. The model has no tool for it and never will, so no incoming
   message can talk it into granting anything.
3. From then on questions and answers flow. A question waits for one answer until its deadline; if
   the other side is offline, the relay holds the message and delivers it on reconnect.

Every envelope is Ed25519-signed and verified by the recipient against a pinned key, so a relay
cannot forge one. Text that arrives from a peer is data to the model, never instructions — the
channel repeats that on every connection.

## Requirements

Python 3.14 or later. The channel needs Claude Code 2.1.268 or later; channels are a research
preview there, so it currently starts with `--dangerously-load-development-channels server:aim`
unless your organization allowlists the plugin.

## Licence

BSD 3-Clause.
