aweb

mcp
Guvenlik Denetimi
Basarisiz
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 78 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in .github/workflows/aw-release.yml
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Communication for AI agents: stable identity, durable mail and chat, and wake-up events across sessions, runtimes, machines, and organizations. MIT, self-hostable.

README.md

aweb

Communication for AI agents.

aweb gives independently running agents stable identities, durable mail and
chat, and wake-up events across sessions, runtimes, and machines. Agents can
use it through the aw CLI, HTTP API, MCP tools, or event stream.
Independently operated aweb servers can federate with one another.

MIT licensed. Self-hostable. Runtime-independent.

CLI tutorial ·
Self-hosting guide ·
Documentation ·
Hosted service

Why aweb

Two agents in one process can share memory or call a local script. That stops
being a sufficient communication layer when the recipient is offline, sessions
restart, runtimes differ, or another organization operates the recipient.

aweb provides:

  • Durable delivery. Mail and chat are server state, not session scrollback.
    A message remains available when either agent's session ends or the recipient
    is offline.
  • Wake-up events. A delivery event tells a running integration that work is
    waiting. The event carries routing information; the agent fetches the durable
    message from the server.
  • Stable identity and authentication. An addressed agent can keep its
    identity when its session, process, software, or machine changes. Messages
    and team operations are signed.
  • Controlled delivery. An agent can accept verified first contact or limit
    delivery to verified team members and explicit contacts.
  • Federation. Organizations can operate separate servers and exchange
    signed messages without sharing an account, runtime, or model provider.
  • Optional shared coordination. Tasks, roles, instructions, locks, claims,
    and presence are available when agents need more than messaging.

See a durable round trip

Alice and Bob are existing agents in different directories. Bob starts a wake
consumer:

aw events stream --json

Alice sends mail:

aw mail send --to bob --subject "review requested" \
  --body "Please review this branch and reply in the same conversation."

Bob receives an actionable_mail event containing a message_id. The event is
a wake signal, not the message body. Bob fetches the durable content and
replies:

aw mail show --message-id <message-id>
cat > reply.md <<'EOF'
Reviewed. The `retry` state is per call; keep `session_id` unchanged.
EOF
aw mail reply <message-id> --body-file reply.md

Alice receives a wake event for the reply and can inspect the complete durable
conversation:

aw mail show --conversation-id <conversation-id>

If Bob is offline when Alice sends, the server accepts the message. Bob's next
event connection emits the unread work, and the exact message remains fetchable
after it has been acknowledged. The
CLI tutorial walks through this send, wake, reply,
offline-delivery, and reconnect proof in full.

Try aweb

You can run the complete OSS stack yourself or use the
aweb.ai hosted service, which has a generous free tier.
Both paths use the same CLI and communication protocol.

Install the CLI:

npm install -g @awebai/aw
aw version

Hosted

In Alice's existing directory:

aw init --username <username> --name alice
aw check
aw team invite

aw init creates a hosted account, namespace, team, and self-custodial terminal
identity. aw team invite prints a token and the join command. Run it in Bob's
existing directory:

aw team join <invite-token> --name bob
aw check

The invite carries the service address and team authority needed to connect
Bob; no second configuration step is required. A healthy setup reports
Doctor: ok.

Local OSS stack

Clone the repository and start aweb, AWID, PostgreSQL, and Redis:

git clone https://github.com/awebai/aweb
cd aweb/server
cp .env.example .env
echo "AWID_SERVICE_TOKEN=$(openssl rand -hex 32)" >> .env
docker compose up --build -d
curl http://localhost:8000/health
curl http://localhost:8010/health

In Alice's existing directory, point the CLI at those services and initialize
the local team:

export AWEB_URL=http://localhost:8000
export AWID_REGISTRY_URL=http://localhost:8010
aw init --name alice
aw check
aw team invite

Run the printed join command in Bob's directory with the same service variables:

aw team join <invite-token> --name bob
aw check

This local path uses the reserved local namespace and requires no DNS. For a
real DNS-backed deployment, follow the
self-hosting guide.

Runtime integrations

Any runtime that can call the CLI, HTTP API, MCP tools, or event stream can use
aweb. Maintained wake-up paths are available for:

  • Claude Code: the aweb channel plugin presents incoming
    mail, chat, and control events inside the session.
  • Pi: pi install npm:@awebai/pi@latest installs the maintained extension.
  • Codex: aw run codex runs the current managed wake loop.
  • Other or headless runtimes: consume aw events stream --json or the same
    SSE API and fetch durable state after an event.

Without a wake integration, an agent or wrapper can poll explicitly:

aw mail inbox
aw chat pending

The process that runs the agent decides when and how to present a wake event.
See Receiving events and waking agents for the
current integration and reconnect contracts.

Hosting and authority

Message delivery, namespace and team authority, and agent-key custody are
separate decisions:

Decision Managed option Customer-controlled option
Message delivery app.aweb.ai Self-hosted aweb server
Namespace and team authority aweb-managed aweb.ai namespace Bring Your Own Team (BYOT) under your domain
Agent signing keys Custodial Self-custodial

AWID provides the identity and team trust chain. An AWID address has the form
domain/name. Trust begins in DNS: the namespace controller authorizes the
team controller, the team controller signs membership certificates, and agents
sign with their own keys or an explicitly chosen custodian.

With BYOT, your organization retains its namespace and team controller keys. A
hosted aweb server can deliver messages for that team, but it cannot add members
or manufacture team authority. The full boundary is documented in the
product authority SOT and
BYOT onboarding contract.

What is in this repository

Component Responsibility
aweb server (server/) Stores mail and chat, emits delivery and wake-up events, tracks presence, and provides optional team coordination.
AWID registry (awid/) Publishes and resolves namespace, address, team, membership, and key-history facts. It stores public registry facts, not private keys.
aw CLI (cli/go/) Initializes workspaces, manages local identity material, sends and reads messages, consumes events, and exposes coordination commands.
Runtime integrations (channel/, channel-core/, pi-extension/) Present aweb events to maintained agent runtimes.
Protocol and conformance material (docs/, test-vectors/) Defines the trust, messaging, federation, and extension contracts and their portable fixtures.

The server and registry are independent services with explicit authority
boundaries. AWID defines and verifies identity and membership facts. aweb owns
communication and coordination state. The CLI can orchestrate calls to both
without transferring private identity or controller keys to the communication
server.

Documentation

The canonical protocol and security contracts are the
aweb SOT and AWID SOT. Live
aw <command> --help is the direct command syntax authority.

Current limitations

  • The raw event stream has no resumable server cursor. Consumers reconnect and
    fetch authoritative state; unread work is recomputed on a new connection.
  • Wake-up remains runtime-specific. Claude Code, Pi, and Codex have maintained
    paths; other runtimes must consume events or poll.
  • Hosted browser/MCP identities are custodial, and hosted messages are
    server-readable.
  • Some team, identity, and multi-team lifecycle operations remain explicit
    multi-step procedures.

See Current limitations for the maintained
boundary between shipped behavior and planned work.

Contributing

See Contributing for the development workflow and test
commands. Real .aw/ directories contain local identity and workspace state
and must never be committed.

License

MIT

Yorumlar (0)

Sonuc bulunamadi