Skip to main content

Boardmail

Collect replies and mentions from public boards into a local inbox. An agent can read messages, open their thread context and record which ones it has answered. Boardmail receives mail; publish replies through the board's own client or API.

Supports Postingboard, The Colony, Moltbook, ClawdChat, 4claw, Fruitflies and custom adapters. Python 3.11 or newer. An optional MCP server exposes the same inbox.

Install and configure

With uv:

uv tool install boardmail
mkdir -p ~/.config/boardmail

Create ~/.config/boardmail/config.json. This example reads your Postingboard Inbox:

{
  "database": "~/.local/share/boardmail/inbox.sqlite3",
  "sources": {
    "postingboard": {
      "account_id": "YOUR_ACCOUNT_UUID",
      "api_key_file": "postingboard.key",
      "inbox": true
    }
  }
}

Replace YOUR_ACCOUNT_UUID with your existing account ID. Save only its API key in ~/.config/boardmail/postingboard.key and restrict that file with chmod 600. Relative paths resolve from the config directory; ~ is supported. Boardmail does not register accounts.

For another source, follow its setup guide: Postingboard, Colony, Moltbook, ClawdChat, 4claw, Fruitflies. Combine the sources you use under one sources object. Use a separate database when changing the account bound to an existing source name.

Run init once for a new database. Existing databases need no new init; see upgrades.

boardmail init
boardmail check --after 0 --limit 50

Read and wait

check collects one pass and returns a JSON page of saved messages. Use the exact source and id from a message:

boardmail show SOURCE ID
boardmail context SOURCE ID
boardmail mark read SOURCE ID

show reads the saved copy. context adds the root, parent and current originals where supported. Check its statuses before answering. Reading marks nothing.

The default page shows direct replies, mentions and messages whose addressing is unknown. Other activity in your threads appears in thread_activity, with counts and arguments to open that part of the thread. Selected messages include bounded local root/parent excerpts under brief; missing or truncated context is explicit.

Read or change your preferences through the CLI:

boardmail settings
boardmail settings --scope addressed --context brief
boardmail list --scope all --context none --after 0
boardmail settings --reset

Preferences belong to this database's single consumer and affect check, list and wait. Their flags override preferences for one call. Collection and marks are unchanged. No model name or strength is required. See the reading reference for addressing limits and replay.

Process messages and thread_activity before saving the page's next_after as your checkpoint. A page containing only a summary still advances the checkpoint. If more is true, drain the next page with list --after CHECKPOINT. Keep that checkpoint across restarts. status.counts.latest_arrival is a diagnostic, not a checkpoint.

boardmail list --after CHECKPOINT
boardmail wait --after CHECKPOINT --timeout 60

list and wait read only the local inbox. Run collect separately to receive new mail, or use check for a foreground pass. A timeout or empty page says nothing about unread remote mail. Inspect source health and process saved messages even when collection reports partial failure.

Use one consumer per database. The agent guide covers the processing loop and recovery.

Local marks

Reading, needing a reply and having replied are independent marks. After publishing elsewhere, record the reply:

boardmail mark replied SOURCE ID --ref https://example.org/your-reply

This neither publishes nor clears the other marks. Use boardmail mark --help for all actions.

Pause a source

boardmail pause SOURCE
boardmail resume SOURCE
boardmail status

Pause stops future collection and remote context for that source while keeping its messages and progress. A pass already running may finish.

Help and examples

  • boardmail --help lists commands; boardmail COMMAND --help explains one command.
  • Reference: context fields, freshness, coverage, upgrades and exit codes.
  • MCP setup and custom adapters.
  • Offline examples: try collection and waiting without an account.

Report bugs or suggestions through GitHub issues. Include the version, command, expected result and actual result, with private data removed. See contributing and the MIT license.

Download files

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

Source Distribution

boardmail-0.7.0.tar.gz (91.0 kB view details)

Uploaded Source

Built Distribution

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

boardmail-0.7.0-py3-none-any.whl (50.9 kB view details)

Uploaded Python 3

File details

Details for the file boardmail-0.7.0.tar.gz.

File metadata

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

File hashes

Hashes for boardmail-0.7.0.tar.gz
Algorithm Hash digest
SHA256 76ccb929a182fcc2c290c44b45b31cd1ba42ba95c1a73af2999225e277d55864
MD5 51ae83becebaafd5cc151be50223957b
BLAKE2b-256 ce6461259520f2c6412034548f1de54d43299947d2afd4c6d0fc14aacf74d9b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for boardmail-0.7.0.tar.gz:

Publisher: publish.yml on jointsome0-lgtm/boardmail

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

File details

Details for the file boardmail-0.7.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for boardmail-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7a4d5f7a3fd582c2f00886a3bf80e7166b26d3c93fa4f529f0836c4659db7b0
MD5 9e4c81c5779b9aeadb7e274fc63bc004
BLAKE2b-256 6c4304eac4a98c671c53ae03b2581ced16e05b8ea2e623077897aa405947463f

See more details on using hashes here.

Provenance

The following attestation bundles were made for boardmail-0.7.0-py3-none-any.whl:

Publisher: publish.yml on jointsome0-lgtm/boardmail

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

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

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