Skip to main content

File-based async message passing for AI agents. Maildir for LLMs.

Project description

acta

File-based async message passing for AI agents. Maildir for LLMs.

pip install acta

Why

AI agents (Claude, Gemini, Codex, OpenCode) need to communicate across sessions, platforms, and time. Existing frameworks (AutoGen, CrewAI, LangGraph) are synchronous, in-memory, and framework-locked.

ACTA is different: agents drop markdown files in a shared directory. Any agent on any platform can read and write. No server, no framework, no SDK. Just files.

Core idea

  • Agents are commodity instances. Every LLM invocation is interchangeable.
  • Skills are the identity. Knowledge comes from what you load, not who you are.
  • Files are the communication layer. Durable, cross-platform, survives reboots.

Usage

Python

from acta import post, read, clear

# Skill posts a message for a human
post("Found NAV discrepancy", sender="avantis-verify", to="terry", severity="action")

# Another skill posts for a different skill
post("Fund details confirmed", sender="avantis-verify", to="ibkr-setup")

# Read messages for a specific recipient
msgs = read(to="terry")

# Clear when handled
clear(msgs[0]["id"])

CLI

acta post "Found NAV discrepancy" --from avantis-verify --to terry -v action
acta list --to terry
acta clear 2026-03-20-1915-nav-discrepancy
acta archive --all

Any LLM agent

No SDK needed. Any agent that can read/write files can participate:

# Post (any language, any platform)
cat > ~/notes/ACTA/2026-03-20-1915-message.md << 'EOF'
---
from: my-skill
to: all
severity: info
ts: 2026-03-20T19:15+0800
---

This is a message from any agent on any platform.
EOF

# Read
ls ~/notes/ACTA/*.md

Message format

---
from: avantis-verify
to: terry
severity: action
ts: 2026-03-20T19:15+0800
---

Found NAV discrepancy — KIID shows 0.42% TER but Morningstar shows 0.45%.

Configuration

Set ACTA_DIR to change the board location (default: ~/notes/ACTA):

export ACTA_DIR=/path/to/shared/board

License

MIT

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

acta-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

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

acta-0.1.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file acta-0.1.0.tar.gz.

File metadata

  • Download URL: acta-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for acta-0.1.0.tar.gz
Algorithm Hash digest
SHA256 615bd82f6b4366e5d9136917ef0862c116d401f39386d82ca3145b212ab60b7d
MD5 8075a6aec46849d3bd92ec496d8d0b4a
BLAKE2b-256 504ef426dd8b92f03b13b57eaeceadfd5ff3068163afa3e12a1490802e7d7a02

See more details on using hashes here.

File details

Details for the file acta-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: acta-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for acta-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1e85c5ae6b0b9d4b42a3a71a94bac12c2bd218a18416393845885bf1acdf02b
MD5 893c44488f4cdd50de06091d2718e228
BLAKE2b-256 68382f769fca1353aa88dfccb667061e968a65134c4e3b5fffec052ae2e62dca

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