Skip to main content

Agent Mail CLI

CI Release npm PyPI Python GitHub Release WinGet npm downloads PyPI downloads GitHub downloads License

A self-describing local inbox for coding agents.

Agent Mail CLI demo

npx -y @juanjofuchs/agent-mail describe

That command is the product wedge: an agent can run it, read the JSON schema, and learn how to send, read, acknowledge, and inspect messages without MCP setup, a daemon, or separate documentation.

Status

This repository is the open-source extraction of a working internal tool. src/agent_mail/cli.py is the Python implementation and source of truth for behavior. Spec 001 is the behavioral specification. Spec 002 covers Python packaging, GitHub Release binaries, and WinGet. Spec 003 covers npm and npx.

Why

Multi-agent coding workflows need coordination. Heavy systems already exist for that: MCP servers, agent frameworks, workspace managers, and network protocols.

Agent Mail CLI is aimed at the simpler moment:

I am already inside Claude Code or Codex. I need this agent to send a handoff to that agent. I want one command that teaches both sides the mailbox.

Installation

npx

The primary experience is one command. The npm package name is scoped because npm rejected the unscoped agent-mail and agent-mail-cli names; the installed command remains agent-mail.

npx -y @juanjofuchs/agent-mail describe

npm

npm install -g @juanjofuchs/agent-mail
agent-mail describe

The npm package also exposes agent-mail-cli as an alias for compatibility:

agent-mail-cli describe

pipx

pipx install agent-mail-cli
agent-mail describe

For one-shot Python execution:

pipx run --spec agent-mail-cli agent-mail describe

From source:

python -m agent_mail describe

WinGet

WinGet support has been submitted and is waiting on Microsoft's package review. After approval:

winget install JuanjoFuchs.agent-mail-cli

Intended Usage

Sender:

npx -y @juanjofuchs/agent-mail send --from second-brain:main --to ccburn:worker --subject "Review spec" --body "Please read the referenced spec and report risks."

Recipient:

npx -y @juanjofuchs/agent-mail read ccburn:worker

Recipient staying reachable without a timed poll loop. watch blocks until mail arrives, so waiting costs nothing — the process sleeps, not the model:

# Blocks up to 90 minutes, or returns an empty result. Use --once to check
# without blocking; the wait is in MINUTES (--timeout-minutes, floor 5).
npx -y @juanjofuchs/agent-mail watch ccburn:worker

# watch reports envelopes and marks nothing read — always follow it with read.
npx -y @juanjofuchs/agent-mail read ccburn:worker

Sender checking whether a recipient is actually listening, rather than guessing from silence:

npx -y @juanjofuchs/agent-mail status --agent ccburn:worker --fields agent,watching,last_seen

Design Goals

  • Runtime schema introspection through describe
  • JSON output by default
  • JSON errors on stderr
  • Local durable mailbox state
  • No registration
  • No daemon
  • No MCP server required for v1
  • Stable storage outside npm cache (post-packaging)
  • One-command install for users without the source script

Repository Structure

.
├── AGENTS.md
├── CHANGELOG.md
├── CLAUDE.md
├── LICENSE
├── PROJECT_UNDERSTANDING.md
├── README.md
├── docs/
│   └── landscape.md
├── npm/
│   ├── bin/
│   │   └── agent-mail.js
│   ├── scripts/
│   │   └── postinstall.js
│   ├── LICENSE
│   ├── README.md
│   └── package.json
├── specs/
│   ├── 001-agent-mail-cli.md
│   ├── 002-packaging.md
│   ├── 003-npm-distribution.md
│   ├── 004-output-integrity.md
│   ├── 005-storage-transparency.md
│   ├── 006-inbox-watch.md
│   ├── 007-wrapper-resolution.md
│   ├── 008-remove-the-wrong-choices.md
│   └── 009-rearm-state.md
└── src/
    └── agent_mail/
        ├── __init__.py
        ├── __main__.py
        └── cli.py

Specs

Naming

  • Product: Agent Mail CLI
  • Repo: agent-mail-cli
  • npm package: @juanjofuchs/agent-mail
  • Python distribution: agent-mail-cli
  • Python import package: agent_mail
  • Command: agent-mail
  • Command alias from npm: agent-mail-cli

License

MIT

Download files

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

Source Distribution

agent_mail_cli-0.3.0.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

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

agent_mail_cli-0.3.0-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file agent_mail_cli-0.3.0.tar.gz.

File metadata

  • Download URL: agent_mail_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agent_mail_cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8857338d8f148c30047106223d7fc4564a17e7df1b829b6e4bcbf536aa49a2e9
MD5 8ed6cb5e85f9a91b3c84ef054e8930c5
BLAKE2b-256 f8cd32f9f08698702a72ce64e476860ee1e79d3a90dc6c8c1554c2a695126593

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_mail_cli-0.3.0.tar.gz:

Publisher: release.yml on JuanjoFuchs/agent-mail-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_mail_cli-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: agent_mail_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agent_mail_cli-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 485ea675cde337202bb246bcfc17b135fbec77ff37b419eed8839f55d4e0de5f
MD5 6849ea5682ab918c95a368d42a28af5b
BLAKE2b-256 a6d2dc6eaf45b48b12ccc5df3e336db20e2f08e1ee360d2a4f17e2506a7f5d62

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_mail_cli-0.3.0-py3-none-any.whl:

Publisher: release.yml on JuanjoFuchs/agent-mail-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page